Fachartikel

Mein neues Entwicklungssetup mit Ubuntu, Docker und DDEV

Meine Entwicklungsumgebung lief bisher unter Windows 10 in einer virtuellen Maschine. Demnächst hätte dort der Wechsel auf Windows 11 angestanden. Ich war neugierig auf Linux und habe es als Testballon ausprobiert. Geblieben ist ein Setup, mit dem ich heute deutlich flexibler arbeite.

Ubuntu-Desktop mit geöffnetem Startmenü, PhpStorm und einem Terminal mit Claude Code. Angeheftet sind unter anderem PhpStorm, Beyond Compare, DDEV Manager, TickTick, GitKraken, ChatGPT und Visual Studio Code.
Ubuntu-Desktop mit Startmenü, PhpStorm und Claude Code im Terminal. Angeheftet sind unter anderem PhpStorm, Beyond Compare, DDEV Manager, TickTick und GitKraken.

Vorher habe ich unter Windows mit MAMP gearbeitet. Apache, PHP und MySQL waren damit schnell da, und in PhpStorm habe ich meine Projekte bearbeitet. Das hat funktioniert, große Probleme hatte ich damit nicht.

Auf verschiedenen Veranstaltungen, zum Beispiel auf der Entwicklerkonferenz BASTA!, habe ich gesehen, dass viele Entwickler ganz selbstverständlich mit Docker-Containern arbeiten. Das hat mich zusätzlich neugierig gemacht.

Heute arbeite ich unter Ubuntu mit Docker und DDEV. Docker ist die Basis: Jedes Projekt läuft in eigenen Containern, getrennt von den anderen. DDEV sitzt darüber und organisiert diese Projektumgebungen. Ich muss mich nicht selbst um Container, Netzwerke und Konfiguration kümmern. Ich lege fest, was das Projekt braucht, und DDEV richtet die Umgebung ein und betreibt sie. So kann ich Kundenprojekte schnell als eigene Entwicklungs- oder Testumgebung aufsetzen.

Um den Überblick über Docker zu behalten, nutze ich Portainer. Das ist eine Weboberfläche, in der ich sehe, welche Container gerade laufen. Ich finde das eine gute Lösung, um mir Docker und die Container anzuschauen, ohne alles über die Kommandozeile zu machen. Witzig finde ich, dass Portainer selbst auch nur ein Docker-Container ist. Irgendwie eine charmante Lösung.

Für DDEV nutze ich den DDEV Manager als grafische Oberfläche. Damit muss ich für meine Projekte nicht einmal mehr Befehle in die Konsole eingeben. Trotzdem mache ich unter Linux sehr viel über die Konsole, gerade im Zusammenspiel mit Claude Code. Claude Code arbeitet selbst in der Konsole und kann dort direkt mit der Umgebung arbeiten.

Für jedes Projekt die passende Umgebung

Was mich wirklich begeistert, ist die Auswahl. Ich kann für jedes Projekt die passende PHP-Version nehmen. Bei der Datenbank kann ich zwischen MySQL, MariaDB und PostgreSQL wählen, beim Webserver zwischen Apache und Nginx, je nachdem, was das Projekt braucht oder was beim Kunden live läuft. Ein älteres Projekt kann so neben einer aktuellen Anwendung laufen, ohne dass sich beide in die Quere kommen.

Das funktioniert genauso mit WordPress. DDEV stellt die Umgebung bereit, also Webserver, PHP und Datenbank. WordPress selbst installiere ich dann ganz normal in dieser Umgebung. Damit kann ich eine Kundenseite lokal nachbauen oder schnell eine Testinstallation hochziehen. Ich habe gesehen, dass DDEV WordPress auch direkt mit bereitstellen kann. Das habe ich noch nicht getestet, will ich aber demnächst ausprobieren.

Außerdem gibt es für DDEV sehr viele Add-ons. Damit kann ich zum Beispiel einfach ein phpMyAdmin dazuschalten, wenn ich direkt in die Datenbank schauen will.

Wie gut das im Alltag läuft, habe ich an unserem eigenen Goldfaden-Backend gemerkt. Ich habe das Backend mit Website und Datenbank in einer Docker-Umgebung aufgesetzt und eine Kopie der Live-Datenbank importiert, damit ich mit echten Daten arbeiten kann. Die Anpassungen an der Anwendung habe ich mit Claude Code umgesetzt und direkt in der Umgebung getestet. Danach habe ich die Änderungen deployt. Ich war ehrlich überrascht, wie schnell und einfach das ging.

Meine Tools unter Linux

Vor dem Umstieg war meine Sorge, dass mir meine gewohnten Tools fehlen. Das war unbegründet. Fast alles, womit ich täglich arbeite, gibt es auch unter Linux.

PhpStorm ist weiterhin meine Entwicklungsumgebung, dort schreibe ich den Code. Für Git nutze ich GitKraken, in dem ich Branches und Historie auf einen Blick sehe. Beyond Compare nutze ich für das Deployment: Damit kann ich sehr einfach lokale Verzeichnisse mit dem Webserver synchronisieren und mir bei Bedarf oder zur Kontrolle die Unterschiede anschauen.

Auch außerhalb der Entwicklung fehlt mir nichts. TickTick, mit dem ich meine Aufgabenverwaltung mache, gibt es ebenfalls unter Linux. Meine Aufgaben und Zeitblöcke plane ich dort genauso wie vorher.

Dazu kommt, dass sich viele Tools einfach synchronisieren. TickTick habe ich auf dem Entwicklungsrechner, auf dem MacBook und auf dem iPad, egal wo ich gerade bin. Genauso kann ich überall in meine Claude- oder ChatGPT-Sessions hineinschauen, und Coding-Agenten kann ich über entsprechende Tools sogar fernsteuern. Welches Betriebssystem auf dem Entwicklungsrechner läuft, spielt dabei kaum noch eine Rolle.

Als Coding-Agenten nutze ich zwei Lösungen. Claude Code nehme ich für die anspruchsvolleren Aufgaben, die Qualität ist dort für mich ein Stück besser. Ich stoße aber recht häufig an die Guthabengrenze. Daneben nutze ich GitHub Copilot Desktop mit Modellen aus Ollama Cloud. Mit guten Modellen komme ich auch dort zu guter Qualität. Günstiger ist das nicht, aber ich habe mehr Token zur Verfügung und kann länger damit planen. Welchen Agenten ich nehme, entscheide ich je nach Aufgabe.

Positiv überrascht hat mich Snap. Viele Programme lassen sich darüber einfach installieren. Insgesamt ist die Auswahl an Software unter Ubuntu deutlich besser, als ich erwartet hatte.

Auch VPN ist kein Problem. Ich habe teilweise Verbindungen in Kundennetzwerke, um dort Software-Updates zu machen. Ist es zum Beispiel eine OpenVPN-Verbindung, geht das einfach mit den Bordmitteln von Ubuntu.

Fazit

Angefangen hat alles mit der Frage, was nach Windows 10 kommt. Heute habe ich ein Setup, das gut zu meiner Arbeit passt. Ich kann für jedes Projekt schnell eine eigene Umgebung aufsetzen, mit genau der PHP-Version, Datenbank und dem Webserver, die gebraucht werden. Meine gewohnten Tools habe ich trotzdem behalten. Zurück will ich gerade nicht.

Mich würde interessieren: Wie sieht deine lokale Entwicklungsumgebung aus? Arbeitest du auch schon mit Docker, oder läuft bei dir noch alles klassisch?

Das könnte dich auch interessieren

Tutorial

KI versteht Hand-Skizzen

Screenshot mit eingezeichneten Pfeilen und Kreisen in den Coding-Agenten kopieren: So gelingen kleine Layout-Änderungen ohne lange Beschreibung.

Weiterlesen
Fachartikel

Einfach mal vibe coden

Erfahrungen mit Claude Code: parallele Agenten, Review, Projektregeln, Randfälle und Spezifikation vorab. Die Arbeit verschiebt sich vom Schreiben zum Steuern.

Weiterlesen