Ok Freunde – heute führe ich euch an den heiligen Grahl der lokalen Shopware 6 Installation mit devenv. Wenn ihr diese Lektion meistert, könnt ihr so schnell wie nie zuvor lokal an Shopware arbeiten.
- 1. Vorgeschichte
- 2. Warum Shopware 6 lokal mit devenv
- 3. Was ist devenv genau
- 4. NixOS installieren
- 5. Die Vorteile von NixOS + devenv
- 6. Cachix installieren
- 7. Devenv installieren
- 8. devenv zu einem Projekt hinzufügen
- 9. Shopware Lokal auf Windows (WSL)
- 10. Weiterführende Links
1. Vorgeschichte
Im Herbst 2023 besuchte ich das Developer Meetup von mollie in dem es ein paar interessante Vorträge, unter anderem vom Erfinder von Dockware, Christian Dangl gab. DockWare ist übrigens auch eine spannende Methode um lokal mit Shopware zu entwickeln, aber heute soll es eben um devenv gehen.
Auf dem besagten Meetup traf ich ein paar ambitionierte Shopware Entwickler (Schöne Grüße an der Stelle), die ich bei der Gelegenheit auch nach deren favorisierten lokalen Umgebungen für Shopware 6 ausfragte.
Wie aus der Pistole geschossen, hieß es da von beiden: „mit devenv“. Bis dato hatte ich noch nie davon gehört, doch schon einige Stunden später half mir Stefan dabei auf meinem Laptop die ersten Schritte Richtung dieser neu entdeckten Entwicklungsumgebung zu gehen.
Heute will ich das ganze gemeinsam mit euch auf meinem Desktop Rechner umsetzen und alles Schritt für Schritt für und mit euch durchgehen.
2. Warum Shopware 6 lokal mit devenv
Zeit ist Geld und damit will bedacht umgegangen werden. Die Seiten-Ladezeiten auf einer lokalen Entwicklungsumgebung für Shopware 6 mit devenv kommen an die Geschwindigkeit eines geölten Blitzes ran.
Zu der Zeitersparnis mit den grundsätzlich unglaublich schnellen Front- und Backend-Ladezeiten kommt noch hinzu, dass wir mit der Watcher Funktion (mehr dazu später) nicht mehr nach jeder kleinen Anpassung den Browser aktualisieren müssen. Heißt, sobald wir eine Änderung gemacht haben aktualisiert sich der Seiteninhalte „wie von selbst“ ohne (!) dafür das Browser-Fenster aktualisieren zu müssen.
Seien wir ehrlich: Coden & Debugging kann einem so schon viel Nerven kosten, also warum noch unnötig mehr Zeit verbrauchen als nötig. Es macht auf diese Art auch ganz einfach viel mehr Spaß, an einem Projekt zu arbeiten.
Und gerade als Dienstleister im Bereich Plugin- und Theme-Entwicklung sollte es die Pflicht eines jeden Entwicklers sein, auf Technologien zu setzen, die Zeit einsparen und einfach up-to-date sind.
3. Was ist devenv genau
devenv ist ein leistungsstarkes Entwicklungs-Tool, das entwickelt wurde, um die Prozesse der Softwareentwicklung zu optimieren und die Verwaltung von Abhängigkeiten in einer Entwicklungs- oder CI/CD (Continuous Integration/Continuous Deployment)-Umgebung zu erleichtern. devenv ist zudem die Abkürzung für development environment, das englische Wort für Entwicklungsumgebung.
Anders als einige andere Tools, wie Docker oder Virtualisierungstechnologien, setzt devenv nicht auf Containerisierung oder Virtualisierung. Stattdessen werden Dienste und Abhängigkeiten auf nativem Wege auf Ihrem Rechner ausgeführt. Dies bietet Flexibilität bei der Auswahl und Konfiguration von Diensten, ohne die zusätzliche Komplexität von Containern oder Virtualisierungsschichten.
Entwickler können devenv verwenden, um verschiedene Versionen von Binärdateien (z.B. PHP, Node, npm) auszuwählen und zu installieren, Dienste wie Datenbanken (z.B. MySQL, Redis) zu konfigurieren und laufen zu lassen, und den Status dieser Dienste sowie der Binärdateien auf Projektebene zu verwalten. Dadurch wird eine konsistente und leicht reproduzierbare Entwicklungsumgebung geschaffen, die bei der lokalen Entwicklung und auch in CI/CD-Pipelines von großem Nutzen ist.
CI/CD (Continuous Integration/Continuous Deployment):
Dieser Ansatz automatisiert den Prozess der Integration von Codeänderungen in ein gemeinsames Repository und die anschließende automatisierte Bereitstellung der Anwendung in einer Produktionsumgebung. devenv kann in solchen CI/CD-Pipelines verwendet werden, um sicherzustellen, dass die Entwicklungsumgebung konsistent und reproduzierbar ist, was die Qualitätssicherung und die Effizienz des Bereitstellungsprozesses erheblich verbessert.
4. NixOS installieren
Da „devenv“ auf Nix aufbaut, solltest du zuerst Nix gemäß deinem Betriebssystem mit den folgenden Befehlen installieren. Apropos Betriebssystem: Windows Nutzer müssen zuvor noch WSL2 installieren / aktivieren.
Die folgenden Befehle werden im Terminal / der Konsole eingegeben. Sprich: Wir klicken einfach auf Terminal und kopieren dann diese Zeile rein:
Nix mit MacOs installieren:
sh <(curl -L https://nixos.org/nix/install)
Nix mit Linux installieren:
sh <(curl -L https://nixos.org/nix/install) --daemon
Nix mit Windows(WSL2) installieren:
sh <(curl -L https://nixos.org/nix/install) --no-daemon
Nix mit Docker installieren:
docker run -it nixos/nix
In Folge bekommen wir einige Fragen gestellt, die wir (O-Ton Stefan) „alle mit Ja und Amen beantworten“. In diesem Beispiel installiere ich NixOS also auf dem Mac.
Sprich: Wir geben bei Fragen das y ein und klicken auf Return. Zwischendurch wird auch unser Passwort mal abgefragt. Nach einigen kurzen Momenten ist NixOS auch schon installiert.
Um uns von der erfolgreichen Installation davon zu überzeugen, können wir anschließend in einem neuen Terminal diesen Befehl eingeben:
nix-shell -p nix-info --run "nix-info -m"
Am Ende gibt es also auch noch einen Reminder:
Nix won't work in active shell sessions until you restart them.
… heißt es dort.
Das heißt also ganz konkret, dass Änderungen, die du an deiner Nix-Umgebung vorgenommen hast, in der aktuellen Shell-Sitzung nicht wirksam werden, bis du die Shell-Sitzung neu startest. Wenn du Änderungen an deiner Nix-Konfiguration oder den installierten Paketen vornimmst, werden diese Änderungen erst in neuen Shell-Sitzungen sichtbar. Bereits laufende Shell-Sitzungen verwenden die vorherigen Einstellungen.
Im Allgemeinen ist das Beenden und erneute Starten der Shell-Sitzung die einfachste und sicherste Methode, um sicherzustellen, dass die neuen Nix-Konfigurationen korrekt angewendet werden.
Kapiert? Gut, dann geht’s weiter.
Ach so und wer Oh My ZSH nutzt muss einen etwas anderen Weg gehen, dieser wird in den Shopware Developer Docs (Link s. unten) näher erläutert.
Noch etwas: Wer NixOS jetzt sucht, wird es hier finden:
5. Die Vorteile von NixOS + devenv
Wenn es um die lokale Entwicklung mit Shopware 6 geht, ist eine effiziente und reproduzierbare Entwicklungsumgebung von größter Bedeutung. Hier kommt NixOS ins Spiel, eine Linux-Distribution, die auf deklarativer Systemkonfiguration basiert. Die Kombination von NixOS mit devenv, einem leistungsstarken Entwicklungs-Tool, bietet eine ideale Lösung, um lokale Shopware 6-Projekte zu optimieren.
Deklarative Konfiguration:
Ein Schlüsselmerkmal von NixOS ist die deklarative Systemkonfiguration. Statt unsere Systeme schrittweise zu konfigurieren, beschreiben wir die gewünschte Systemkonfiguration in einer einzigen, leicht verständlichen Konfigurationsdatei. Dies bedeutet, dass wir in dieser Datei festlegen, wie unser System aussehen soll, welche Softwarepakete installiert werden sollen und wie sie konfiguriert werden sollen. Die deklarative Natur bedeutet, dass wir nicht die Schritte zur Konfiguration angeben, sondern das gewünschte Endziel. NixOS sorgt dann dafür, dass die Systemkonfiguration gemäß unseren Vorgaben umgesetzt wird.
Reproduzierbarkeit und Isolation:
NixOS verwendet den Nix-Paketmanager, der Softwarepakete in isolierten Umgebungen verwaltet. Dadurch werden Konflikte und Abhängigkeitsprobleme vermieden. Du kannst Shopware 6 und alle benötigten Abhängigkeiten in einer sauberen, unabhängigen Umgebung installieren und verwalten.
Einfaches Rollback:
Ein weiterer Vorteil ist die Fähigkeit, das System auf vorherige Konfigurationen zurückzusetzen. Wenn Updates oder Änderungen Probleme verursachen, kannst du schnell zu einer stabilen Version zurückkehren.
Die Kombination von NixOS und devenv ermöglicht es uns, unsere lokale Entwicklungsumgebung effizient und reproduzierbar zu gestalten. Dies ist besonders wichtig, wenn es darum geht, Shopware 6-Projekte zu entwickeln, zu testen und zu warten.
6. Cachix installieren
Cachix hat nichts mit dem Cache von Shopware oder so zu tun. Auf Cachix liegen Dinge wie z.B. PHP und andere gebräuchliche Pakete vorgecacht. Andernfalls müssten sie auf dem Rechner erst „gebaut“ werden, sprich dieser Schritt beschleunigt im Grunde die Installation der einzelnen Zutaten unserer lokalen Shopware 6 Suppe.
nix-env -iA cachix -f https://cachix.org/api/v1/install
Die Installation geht, wie der Verzehr eines McDonalds Hamburgers, schnell von statten.
Bevor du devenv installierst, weise Cachix nun noch an, den devenv-Cache zu verwenden, das geht so:
cachix use devenv
Nach der (ersten) Eingabe wird dich diese Warnmeldung begrüßen:
This user doesn't have permissions to configure binary caches.
You can either:
a) Run the same command as root to configure them globally.
b) Run the following command to add your user as trusted
and then try again:
echo "trusted-users = root HIERSTEHT“DEINUSERNMAE | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon
Kopiere nun die letzte Zeile und gebe sie im Terminal ein, also:
echo "trusted-users = root HIERSTEHTDEINUSERNAME | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon
Anschließend musst du noch dein Passwort eingeben.
7. Devenv installieren
Gib einfach kurz das hier ein:
nix-env -if https://github.com/cachix/devenv/tarball/latest
Dieser Befehl lädt und installiert devenv auf deinem System. Beachte, dass es einen Moment dauern kann, bis dieser Vorgang abgeschlossen ist, da die neueste Version von devenv heruntergeladen wird und alle erforderlichen Abhängigkeiten installiert werden. Nachdem der Installationsprozess abgeschlossen ist, hast du devenv bereit zur Verwendung auf deinem System.
Der nächste Befehl ist dann:
cachix use shopware
Mit diesem Befehl weist du Cachix an, den von Shopware bereitgestellten Cache zu nutzen. Dadurch wird der Abruf von Paketen und Abhängigkeiten beim Einrichten deiner Entwicklungsumgebung beschleunigt. Dies stellt sicher, dass Cachix den speziellen Cache von Shopware verwendet, um die Leistung deiner Entwicklungsumgebung zu optimieren.
Die Ausführung des Befehls geht schneller, als du brauchst diesen Satz zu Ende zu lesen.
Bis hierhin haben wir Dinge ausgeführt, die wir nur einmal auf dem Rechner ausführen müssen. Set it and forget it. Wenn du vergessen hast was zu tun ist weißt du wo dir geholfen wird (hier).
Jetzt können wir entweder devenv in ein bestehendes Projekt packen oder ein frisches Shopware installieren.
8. devenv zu einem Projekt hinzufügen
Sofern wir bereits ein bestehendes Projekt mit Shopware 6 auf unserem Rechner liegen haben, an denen wir beispielsweise in MAMP gearbeitet haben, dann ist es möglich hier nachträglich devenv reinzuladen.
Hierzu rufen wir zunächst die Shopware Recipes auf:
https://github.com/shopware/recipes
Falls du (so wie ich) noch kein Flex Setup verwendest klickt du bei den Recipes auf den frosh Ordner:
https://github.com/shopware/recipes/tree//main/frosh
und dann auf devenv-meta, also:
https://github.com/shopware/recipes/tree//main/frosh/devenv-meta
Hier finden wir zwei Ordner:
- 0.1 für Shopware 6.4 und
- 0.2 für Shopware 6.5
Klicke auf die für dich passende Version, meine ist ist diesem Beispiel 0.1 also Shopware 6.4
Als nächstes bewegen wir uns in den root Ordner.
https://github.com/shopware/recipes/tree/main/frosh/devenv-meta/0.1/root
Folgende vier Daten legen wir nun im root Verzeichnis / Im obersten Verzeichnis unserer lokalen Shopware 6 Installation an:
.envrc
devenv.lock
devenv.nix und
devenv.yaml
Anschließend kopieren wir den Code der Dateien von github in die neu angelegten leeren Dateien im Root Verzeichnis von unserem lokalen Shopware 6.
Die wichtigsten Konfigurationen finden wir nun in der devenv.nix Datei. Hier passt du auch die PHP Version deiner Umgebung an, wenn du ein Plugin auch für neuere / ältere Versionen testen möchtest.
Jetzt öffnen wir wieder unser Terminal und navigieren zunächst einmal in das root Verzeichnis der gewünschten lokalen Shopware Installation. Dort angekommen führen wir den Befehl hier aus:
devenv shell
Wenn du devenv shell in deinem Terminal ausführst, startest du eine Shell-Umgebung innerhalb deines devenv-Projekts. Dies bedeutet, dass deine aktuelle Shell-Sitzung in eine Umgebung wechselt, in der alle von devenv definierten Einstellungen und Abhängigkeiten aktiv sind.
Das heißt konkret: Wenn dort in MAMP eigentlich PHP 7.4 genutzt wird, wird nach diesem Befehl alles, was sich von der Konfiguration in der devenv.nix Datei unterscheidet durch diese überschrieben.
Das können wir testen, indem wir noch vor Eingabe des devenv shell Befehl erst einmal die PHP Version mit dem Befehl mit dieser Zeile ausgeben lassen:
php -v
Bei mir habe ich hier also 7.4 ausgespuckt bekommen. Bei erneuter Abfrage nach Aktivierung der devenv Shell war es dann eben 8.1 - was auch grundsätzlich erstmal besser ist.
Beim Versuch die devenv Shell zu starten bin ich bei späteren Versuchen auf diesen Fehler gestoßen:
error: Package ‘nodejs-16.20.2’ in «github:NixOS/nixpkgs/90e85bc7c1a6fc0760a94ace129d3a1c61c3d035»/pkgs/development/web/nodejs/v16.nix:16 is marked as insecure, refusing to evaluate.
In diesem Fall bewegen wir uns in die devenv.nix und suchen die Stelle wo die Version von nodejs bestimmt wird, also hier hin:
languages.javascript = {
enable = lib.mkDefault true;
package = lib.mkDefault pkgs.nodejs-16_x;
};
dann passen wir es so an:
{
languages.javascript = {
enable = lib.mkDefault true;
# package = lib.mkDefault pkgs.nodejs-16_x;
package = lib.mkDefault pkgs.nodejs; # Verweisen Sie nicht auf eine spezifische Version
};
}
Die alte Anweisung wird nun auskommentiert und die neue behebt den Fehler. Welche Node Version schlussndlich verwendet wird, können wir sehen, wenn wir node - v
eingeben
Ob unser Befehl devenv shell gegriffen hat, erkennen wir daran, ob am Anfang der Zeile im Terminal in lila und eckigen Klammern [devenv] steht.
Als nächstes geben wir ein:
devenv up
ACHTUNG: Verwendet um devenv up zu beenden immer CTRL + C
Was noch?
Öffne ein neues Terminal, begebe dich in den Shop-Ordner, und gebe zuerst
devenv shell
ein und anschließend:
bin/console system:install --basic-setup --create-database --force
damit wird die Datenbank angelegt.
Jetzt solltet ihr schon das Backend aufrufen können. Der Username ist admin und das Passwort shopware. Falls zuvor mit MAMP gearbeitet wurde muss die Sales Channel URL angepasst werden von localhost:8888 in localhost:8000
Jetzt sollte auch das Frontend sich schon zeigen.
Was ihr jetzt seht sind alle euren alten Shop-Dateien samt den Plugin-Dateien. Die Plugins sind aber erst einmal noch alle deinstalliert und müssen noch installiert und aktiviert werden. NEU ist jedoch die Datenbank. Falls ihr auch die alte Datenbank verwenden möchtet müsstet ihr diese noch migrieren.
Alle übrigen Services findet ihr hier:
MySQL - mysql://shopware:shopware@127.0.0.1:3306
Caddy - http://localhost:8000 (das ist der Server)
Adminer - http://localhost:9080
Mailhog (SMTP) - smtp://127.0.0.1:1025
Mailhog (Web UI) - http://localhost:8025
Was jetzt noch fehlt um die ganze Sache abzurunden sind (zumindest bei mir)
Aus diesem Ordner:
https://github.com/shopware/recipes/tree/main/shopware/core/6.4/bin
Diese 3 Dateien:
- functions.sh
- console
- build-js.sh
Die kommen in den bin Ordner auf oberster Ebene.
Sowie alle Dateien aus diesen 2 Ordnern:
https://github.com/shopware/recipes/tree/main/shopware/storefront/6.4/bin
https://github.com/shopware/recipes/tree/main/shopware/administration/6.4/bin
nach dieser Anpassung sollte es auch möglich sein, den Watcher zu benutzen. Dieser ermöglicht Anpassungen an den Dateien zu sehen ohne den Browser zu refreshen.
Was habe ich noch von Stefan gelernt:
a) Das Nix Repository ist das größte und am meisten maintainte Paket auf github
b) Wenn man in der Konsole nach oben/unten drückt werden die vorher eingegebenen Befehle angezeigt.
c) Mit PHP 7 kann man in MixOS meist nur die latest oder stable Versio nutzen. Besser man bleibt bei 8
d) devenv nutzt als Webserver caddy anstatt Apache oder Nginx
e) mit php -v kann man sich die PHP Version anzeigen lassen
f) und mit node -v eben die Node Version
9. Shopware Lokal auf Windows (WSL)
Als Vorbereitung müssen wir auf Windows, WSL installieren am besten ruft man dafür den Microsoft Store auf und sucht nach WSL dann sollte man schon einen Blau-Weißen Pinguin sehen mit dem Titel „Windows Subsystem for Linux“ das wars auch schon an Vorbereitung der Rest spielt sich dann im Windows Terminal ab.
Mit einem rechtsklick auf das Windows Icon im Taskbar Bereich öffnet sich ein kleines Menü wo wir Terminal (Administrator) das öffnen wir dann und sehen da schon unser Terminal dort geben wir dann wsl –install ein damit wir Ubuntu installieren können
Dann sollte sowas von der Konsole ausgegeben werden, wenn dies installiert, ist muss man einen user anlegen das kann man dann nach eigenem Ermessen machen Hauptsache man vergisst das Passwort nicht.
Danach wird Ubuntu automatisch gestartet, wenn nicht dann einfach wsl eingeben und schon ist man im Ubuntu/Linux Terminal.
Dort geben wir dann direkt zwei befehle ein, und zwar:
sudo apt update
sudo apt upgrade
Damit aktualisieren wir unsere Linux Distribution auf den aktuellsten Stand.
Danach installieren wir einfach php dafür brauchen wir diesen command:
sudo apt install php
und zwei Erweiterungen fuer php:
sudo apt-get install php-zip
und
sudo apt-get install unzip
Als nächstes installieren wir den composer dafür brauchen wir die folgenden fünf befehle, die man auch auf dieser Seite finden kann:
https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
So wenn dann also composer installiert ist brauchen wir noch devenv, nix und Cachix.
mit dem befehlt installieren wir nix auf linux:
sh <(curl -L https://nixos.org/nix/install) --no-daemon
danach installieren wir mithilfe von nix Cachix:
nix-env -iA cachix -f https://cachix.org/api/v1/install
und sagen ihm das er den Cache von devenv nutzen soll:
cachix use devenv
wenn es den Fehler geben sollte „command not found“ könnt ihr ganz normal mit der Installation fortfahren, ohne cachix zu verwenden.
Dann kommt auch schon die Installation von devenv:
nix-env -if https://github.com/cachix/devenv/tarball/latest
und danach sagen wir nix erneut das es jetzt den Shopware Cache nutzen soll:
cachix use shopware
so dann können wir schon das composer Projekt anlegen in dem unser Shopware laufen wird:
composer create-project shopware/production sw65 --ignore-platform-reqs
sw65 steht dort als Beispiel Name für unser Projekt.
Wenn es dann erstellt ist, wechseln wir in den Projekt Ordner wie folgt:
cd /home/(user name)/(projekt name)z.B. sw65/
dort sagen wir composer dass er devenv gebrauchen wird mit:
composer require devenv --ignore-platform-reqs
danach fuehren wir den Command devenv shell aus, um in die Konsole von devenv zu gelangen, denn dort spielt sich nun alles ab was mit der Shopware Konsole zu tun hat.
Nun also installieren wir endlich Shopware mit:
bin/console system:install --basic-setup
wenn das durchgelaufen ist, brauche wir noch das hier:
composer require --dev dev-tools
so und fertig ist Shopware wir können noch mit nano .env die Shopware Umgebung bearbeiten ob es prod oder dev sein soll und die web IP ändern von 127.0.0.1:8000 auf localhost:8000.
Um es nun zu starten, müssen wir ein neues Terminal aufmachen und mit Linux/Ubuntu in denselben Projekt Ordner navigieren, wo wir devenv shell ausgeführt haben und dort aber nun devenv up auszuführen.
Dann sollte Shopware ganz normal starten, wenn aber ein Fehler auftritt mit der Meldung: Failed to configure LOCALE for invalid locale name.
Dann führet ganz einfach diese paar Commands aus und startet alle Terminals neu damit Ubuntu/Linux neugestartet wird:
apt-get install language-pack-en-base -y
und
sudo dpkg-reconfigure locales
beim zweiten command müsst ihr etwas auswählen ich habe dort das Benötigte ausgewählt namens:
en_US.UTF-8
Wenn das erledigt ist, müsst ihr wie gesagt alle Terminals neustarten damit Ubuntu neugestartet wird danach brauchen wir wieder zwei Terminals, in denen wir in dem Projekt Ordner drinnen sind.
Din einem führen wir denenv up aus was jetzt funktionieren sollte damit starten wir nämlich Shopware und in dem anderen führen wir devenv shell aus, wo wir Commands für Shopware eingeben können.
Unter localhost:8000/admin rufen wir unser backend auf und unter localhost:8000 rufen wir das frontend auf.
Dort muessen wir dann die erste konfiguration vornehmen und danach funktioniert unsere lokale installation von Shopware schon, wie sie sollte.
Bevor wir, aber den befehlt watch ausführen können müssen wir zwei weiter vorher ausführen, und zwar:
build-storefront
und
build-administration
danach können wir watch wie folgt verwenden:
watch-storefront
oder
watch-administration
Dies benötigt man, wenn man z.B. am frontend arbeitet wie Theme Entwicklung oder Plugin Entwicklung.
10. Weiterführende Links
Contabo Blog - WSL2 unter Windows 10 installieren
https://contabo.com/blog/de/wsl-2-unter-windows-10-installieren/
devenv - offizielle Webseite:
https://devenv.sh/
devenc Docs - Getting started
https://devenv.sh/getting-started/
NixOS - Offizielle Webseite
https://nixos.org/
Shopware CLI / Command Line tool package for NixOS:
https://search.nixos.org/packages?channel=23.05&show=shopware-cli&from=0&size=50&sort=relevance&type=packages&query=shopware
Shopware Developer Docs: What is devenv?
https://developer.shopware.com/docs/guides/installation/devenv.html
Blocksi Blog - Local devenv set up - Shopware 6 (english)
https://www.brocksi.net/blog/local-devenv-set-up-shopware-6/
Du brauchst Hilfe bei der Umsetzung mit Shopware? Dann setze dich jetzt mit uns in Verbindung.