Genau hier setzt devenv an und verändert grundlegend, wie du lokal mit Shopware entwickelst. Statt auf träge Container-Lösungen zu setzen, bringt devenv alle Dienste nativ auf deinem System zum Laufen – mit einer Geschwindigkeit, die dich begeistern wird.
Was macht devenv zu einer besonderen Entwicklungsumgebung?
devenv steht für "development environment" und ist ein modernes Entwicklungs-Tool, das auf dem Nix-Paketmanager basiert. Anders als Docker oder andere Virtualisierungstechnologien verzichtet devenv komplett auf Container und führt stattdessen alle Dienste nativ auf deinem Betriebssystem aus.
Das Besondere: devenv erstellt für jedes Projekt eine isolierte Umgebung, ohne dabei die Performance zu beeinträchtigen. PHP, MySQL, Redis und alle anderen Komponenten laufen mit voller Systemgeschwindigkeit, während trotzdem jedes Projekt seine eigenen, spezifischen Versionen nutzen kann.
Die Vorteile von devenv auf einen Blick
| Aspekt | devenv | Docker/MAMP |
|---|---|---|
| Startzeit | 2-3 Sekunden | 30-60 Sekunden |
| Performance | Native Systemgeschwindigkeit | Virtualisiert, langsamer |
| Ressourcenverbrauch | Minimal | Hoch (Container-Overhead) |
| Hot Reloading | Automatisch ohne Browser-Refresh | Manuelles Neuladen nötig |
| Versionsverwaltung | Pro Projekt unterschiedlich | Global oder komplex konfigurierbar |
Schritt-für-Schritt: devenv für Shopware einrichten
Vorbereitung: Das Fundament schaffen
Bevor du mit devenv durchstarten kannst, benötigst du Nix als Grundlage. Auf macOS und Linux installierst du Nix mit einem einzigen Befehl:
sh <(curl -L https://nixos.org/nix/install) --daemon
Windows-Nutzer müssen zuerst WSL2 (Windows Subsystem for Linux) aktivieren und können dann über das Ubuntu-Terminal die gleichen Schritte durchführen.
Nach der Installation startest du ein neues Terminal und verifizierst die Installation:
nix --version
Cachix konfigurieren: Geschwindigkeit von Anfang an
Um die Installation zu beschleunigen, konfigurierst du Cachix – einen Service, der vorgefertigte Pakete bereitstellt:
nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use devenv
cachix use shopware
Zusätzlich trägst du deinen Benutzernamen in die Nix-Konfiguration ein:
echo "trusted-users = root DEINBENUTZERNAME" | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon
devenv installieren
Jetzt installierst du devenv selbst:
nix profile install --accept-flake-config github:cachix/devenv/latest
devenv in ein bestehendes Shopware-Projekt integrieren
Falls du bereits ein laufendes Shopware-Projekt hast, das bisher mit MAMP, XAMPP oder Docker lief, kannst du devenv nahtlos integrieren. Dazu erstellst du im Hauptverzeichnis deines Shopware-Projekts vier neue Dateien:
Die Konfigurationsdateien
devenv.nix – Das Herzstück der Konfiguration:
{ pkgs, ... }:
{
packages = [
pkgs.php81
pkgs.php81Packages.composer
pkgs.nodejs
];
services.mysql = {
enable = true;
package = pkgs.mysql80;
};
services.nginx = {
enable = true;
};
scripts.setup.exec = ''
composer install
php bin/console system:install --create-database --basic-setup
'';
}
devenv.yaml – Projektspezifische Einstellungen:
inputs:
nixpkgs:
url: github:NixOS/nixpkgs/nixpkgs-unstable
.envrc – Automatische Umgebungsaktivierung:
use devenv
devenv.lock – Versionsfixierung (wird automatisch generiert)
Das Projekt starten
Nach dem Erstellen der Konfigurationsdateien navigierst du im Terminal in dein Projektverzeichnis und aktivierst die devenv-Umgebung:
devenv shell
Du erkennst eine aktive devenv-Umgebung daran, dass am Anfang jeder Terminal-Zeile [devenv] in lila Schrift erscheint. Innerhalb dieser Umgebung nutzt du automatisch die projektspezifisch konfigurierten PHP-, Node.js- und MySQL-Versionen.
In einem zweiten Terminal startest du die Dienste:
devenv up
Schon nach wenigen Sekunden ist dein Shopware-Shop unter http://localhost:8000 erreichbar – das Backend findest du unter http://localhost:8000/admin mit den Zugangsdaten admin/shopware.
Ein frisches Shopware-Projekt mit devenv aufsetzen
Wenn du komplett neu startest, kannst du direkt ein Shopware-Projekt mit devenv-Integration erstellen:
composer create-project shopware/production mein-shop-projekt
cd mein-shop-projekt
Dann fügst du die devenv-Konfiguration hinzu und installierst die Abhängigkeiten:
devenv init
devenv shell
composer install
bin/console system:install --create-database --basic-setup
Die Watcher-Funktion: Entwickeln ohne Unterbrechung
Eines der beeindruckendsten Features von devenv ist die Watcher-Funktion. Sie überwacht automatisch Änderungen an deinen Dateien und lädt das Frontend und Backend in Echtzeit neu – ohne dass du den Browser manuell aktualisieren musst.
Um den Watcher zu aktivieren, führst du in der devenv-Shell folgende Befehle aus:
bin/console theme:compile
bin/console asset:install
bin/console cache:clear
bin/watch storefront
Ab sofort siehst du Änderungen an Templates, Styles oder JavaScript-Dateien sofort im Browser – ein enormer Produktivitätsgewinn beim Entwickeln von Themes oder Frontend-Funktionen.
Performance-Vergleich: devenv vs. traditionelle Lösungen
Die Geschwindigkeitsunterschiede zwischen devenv und container-basierten Lösungen sind dramatisch:
Startzeiten im Vergleich
- devenv: 2-5 Sekunden bis zur Einsatzbereitschaft
- Docker Compose: 30-90 Sekunden für alle Container
- DDEV: 20-60 Sekunden je nach Projektkomplexität
- MAMP/XAMPP: 10-30 Sekunden, aber global für alle Projekte
Shopware-Backend Ladezeiten
- devenv: 0,8-1,2 Sekunden für typische Admin-Seiten
- Docker: 2-4 Sekunden durch Virtualisierungs-Overhead
- MAMP: 1,5-3 Sekunden je nach Systemlast
Speicherverbrauch
devenv nutzt deutlich weniger RAM, da keine Container-Virtualisierung stattfindet. Während Docker-basierte Entwicklungsumgebungen schnell 2-4 GB RAM verbrauchen, benötigt devenv nur den Speicher für die tatsächlich laufenden Dienste.
Häufige Herausforderungen und ihre Lösungen
Problem: Node.js-Versionskonflikte
Wenn du eine Fehlermeldung wie "Package 'nodejs-16.20.2' is marked as insecure" erhältst, passt du die devenv.nix an:
# Statt einer festen Version
packages = [ pkgs.nodejs ]; # Nutzt die aktuelle stabile Version
Problem: PHP-Versionen wechseln
Für verschiedene Shopware-Projekte benötigst du unterschiedliche PHP-Versionen. In devenv änderst du einfach die entsprechende Zeile:
packages = [
pkgs.php82 # Für Shopware 6.5+
# pkgs.php81 # Für ältere Shopware-Versionen
];
Problem: Datenbankmigrationen
Wenn du von MAMP oder Docker zu devenv wechselst, möchtest du vermutlich deine bestehenden Datenbanken übernehmen:
# Export aus der alten Umgebung
mysqldump -u root -p shopware_db > backup.sql
# Import in devenv (in der devenv shell)
mysql -u root shopware < backup.sql
devenv-Workflows für verschiedene Entwicklungsszenarien
Theme-Entwicklung optimieren
Für die Entwicklung von Shopware-Themes bietet devenv mit dem Watcher perfekte Bedingungen:
# Terminal 1: devenv-Services
devenv up
# Terminal 2: Theme-Entwicklung
devenv shell
bin/console theme:compile --sync
bin/watch storefront
Änderungen an SCSS-Dateien oder Twig-Templates werden automatisch kompiliert und im Browser angezeigt.
Plugin-Entwicklung beschleunigen
Beim Entwickeln von Shopware-Plugins unterstützt devenv durch schnelle Neuinstallationen:
# Plugin refreshen
bin/console plugin:refresh
bin/console plugin:install --activate MeinPlugin
bin/console cache:clear
Die nativen Geschwindigkeiten von devenv machen diese Zyklen deutlich angenehmer als in virtualisierten Umgebungen.

Multi-Projekt-Setup
Du kannst problemlos mehrere Shopware-Projekte parallel mit devenv betreiben. Jedes Projekt läuft in seiner eigenen Umgebung auf unterschiedlichen Ports:
# In devenv.nix verschiedene Ports konfigurieren
services.nginx = {
enable = true;
virtualHosts."localhost" = {
listen = [ { addr = "127.0.0.1"; port = 8001; } ]; # Projekt 1
};
};
Troubleshooting: Typische Stolpersteine vermeiden
macOS-spezifische Anpassungen
Auf macOS mit Apple Silicon (M1/M2) kann es hilfreich sein, Rosetta-Kompatibilität zu aktivieren:
# In devenv.nix für bessere Kompatibilität
nixpkgs.config.allowUnsupportedSystem = true;
Windows/WSL2-Optimierungen
Unter Windows mit WSL2 solltest du darauf achten, dass deine Projektdateien im Linux-Dateisystem liegen, nicht auf dem Windows-Laufwerk:
# Gut: /home/username/projects/shopware
# Schlecht: /mnt/c/Users/username/projects/shopware
Speicherplatz-Management
devenv kann über die Zeit viele Pakete akkumulieren. Mit diesen Befehlen räumst du auf:
# Nicht mehr benötigte Pakete entfernen
nix-collect-garbage -d
# Ältere Generationen löschen
nix-collect-garbage --delete-older-than 30d
Integration in bestehende Workflows
Git-Integration
Füge die generierten devenv-Dateien zu deiner .gitignore hinzu:
# devenv
.devenv/
devenv.lock
.direnv/
Die Konfigurationsdateien devenv.nix, devenv.yaml und .envrc sollten dagegen versioniert werden, damit das ganze Team die gleiche Umgebung nutzt.
CI/CD-Pipelines
devenv eignet sich auch hervorragend für Continuous Integration. In GitHub Actions oder GitLab CI nutzt du die gleiche Umgebung wie lokal:
# .github/workflows/test.yml
- name: Setup devenv
uses: cachix/install-nix-action@v20
- name: Install devenv
run: nix profile install --accept-flake-config github:cachix/devenv/latest
- name: Run tests
run: devenv shell -- bin/phpunit
Erweiterte devenv-Konfigurationen für Shopware
Redis für Session-Handling
Für professionelle Shopware-Entwicklung konfigurierst du Redis als Session-Store:
services.redis = {
enable = true;
port = 6379;
};
Elasticsearch für bessere Suche
Auch Elasticsearch lässt sich nahtlos einbinden:
services.elasticsearch = {
enable = true;
package = pkgs.elasticsearch7;
};
Mailpit für E-Mail-Tests
Um ausgehende E-Mails während der Entwicklung zu testen:
services.mailpit = {
enable = true;
uiListenAddress = "127.0.0.1:8025";
};
Performance-Monitoring und Optimierung
Profiling mit devenv
devenv macht es einfach, Xdebug für Performance-Analysen zu nutzen:
services.php = {
enable = true;
extensions = [ "xdebug" ];
extraConfig = ''
xdebug.mode = profile
xdebug.output_dir = /tmp/xdebug
'';
};
Datenbankoptimierung
MySQL-Performance lässt sich projektspezifisch optimieren:
services.mysql = {
enable = true;
settings = {
mysqld = {
innodb_buffer_pool_size = "256M";
query_cache_size = "32M";
};
};
};
Migration bestehender Teams zu devenv
Schrittweise Einführung
Wenn du devenv in einem bestehenden Entwicklungsteam einführst, gehst du am besten schrittweise vor:
- Pilotprojekt: Starte mit einem kleineren Projekt oder Feature-Branch
- Dokumentation: Erstelle eine teamspezifische Setup-Anleitung
- Schulung: Führe eine kurze Einführungssession durch
- Support: Sei in der ersten Woche für Fragen verfügbar
Kompatibilität mit bestehenden Tools
devenv spielt gut mit anderen Entwicklungstools zusammen:
- PhpStorm/VS Code: Funktionieren normal, erkennen automatisch die aktiven PHP-Versionen
- Composer: Läuft nativ und schneller als in Containern
- npm/yarn: Nutzen die projektspezifischen Node.js-Versionen
- Git: Keine Änderungen nötig
Kostenaspekte und ROI-Betrachtung
Zeitersparnis quantifiziert
Ein typischer Entwickler startet seine lokale Umgebung 5-10 Mal pro Tag. Bei einer Zeitersparnis von 30-60 Sekunden pro Start summiert sich das auf 15-30 Minuten täglich. Das entspricht bei einem 5-köpfigen Team etwa 6-12 Stunden pro Woche – Zeit, die für wertschöpfende Entwicklungsarbeit genutzt werden kann.
Reduzierte Frustration
Schnellere Feedback-Zyklen führen zu weniger Unterbrechungen im Entwicklungsflow. Entwickler bleiben länger "im Flow" und sind produktiver und zufriedener.
Einheitliche Umgebungen
Mit devenv arbeiten alle Teammitglieder mit exakt denselben Tool-Versionen. Das reduziert "funktioniert bei mir"-Probleme und verkürzt Debugging-Zeiten erheblich.
Warum devenv die Zukunft der Shopware-Entwicklung ist
Die Entwicklung moderner E-Commerce-Lösungen erfordert Geschwindigkeit, Flexibilität und Zuverlässigkeit. devenv bietet all das in einem Tool, ohne die Komplexität von Container-Orchestrierung oder die Limitierungen globaler Entwicklungsumgebungen.
Die native Performance, kombiniert mit der Flexibilität projektspezifischer Konfigurationen, macht devenv zur idealen Lösung für professionelle Shopware-Entwicklung. Teams, die auf devenv setzen, berichten von deutlich gesteigerter Produktivität und weniger technischen Problemen.
Besonders die Watcher-Funktion revolutioniert die Frontend-Entwicklung: Änderungen an Templates oder Styles werden ohne Verzögerung sichtbar, was iterative Design-Prozesse erheblich beschleunigt.
Der Unterschied in der Praxis
Stell dir vor, du entwickelst ein neues Shopware-Theme. Mit traditionellen Setups bedeutet jede CSS-Änderung: Speichern, zum Browser wechseln, Seite neu laden, prüfen, zurück zum Editor. Mit devenv und dem Watcher siehst du Änderungen sofort – der kreative Flow wird nicht unterbrochen.
Bei der Plugin-Entwicklung ermöglichen die schnellen Neuinstallations-Zyklen ein viel iterativeres Vorgehen. Statt lange über Code nachzudenken, testest du schnell verschiedene Ansätze und findest so oft elegantere Lösungen.
devenv transformiert die Art, wie du mit Shopware entwickelst – von einer manchmal trägen, frustrierenden Erfahrung hin zu einem schnellen, flüssigen Workflow, der Spaß macht und produktiv ist. Die initiale Lernkurve amortisiert sich bereits nach wenigen Tagen durch die gesparte Zeit und reduzierte Frustration.
Wenn du bereit bist, deine Shopware-Entwicklung auf das nächste Level zu heben, ist devenv der Schlüssel dazu. Die Technologie ist ausgereift, die Community wächst, und die Vorteile sind sofort spürbar. Deine Kunden werden die schnelleren Entwicklungszyklen zu schätzen wissen, und du wirst nie wieder zu trägen Container-Setups zurückkehren wollen.
