Devcontainer und Podman
Die lokale Entwicklung nutzt Podman mit Dev Containers. Starte den Stack mit:
devcontainer up --workspace-folder .Das erzeugt und startet die lokale Container-Umgebung für Entwicklung und Tests. Der Befehl erkennt außerdem automatisch deine Host-Architektur (amd64 vs. arm64) und zieht für zms-web das passende lokale PHP-Basis-Image-Tag.
Wie du Podman auf dem Host vollständig bereinigst und den Stack neu erzeugst, beschreibt Schnelles Zurücksetzen der lokalen Umgebung.
Auf macOS siehe Podman und Dev Containers unter macOS.
Container und lokale Endpunkte
Folgende lokale Container werden bei devcontainer up --workspace-folder . automatisch erzeugt:
zms-web(vorgebautes lokales PHP-Basis-Image), App-Endpunkt:http://localhost:8090zms-refarch-gateway(lokales RefArch-API-Gateway), Endpunkt:http://localhost:8084zms-keycloak(gleiche Keycloak-Image-Familie wie die RefArch-Einrichtung), Endpunkt:http://localhost:8080/authzms-db(MariaDB), DB-Port:3306zms-phpmyadmin, Endpunkt:http://localhost:8036zms-citizenview, Vite-Hot-Reload-Endpunkt:http://localhost:8082zms-mail-viewer, lokaler Mail-Queue-Viewer:http://localhost:8025(Loginsuperuser/vorschau)
Lokaler Mail-Queue-Viewer
ZMS legt ausgehende Mails in der API-Queue (GET /api/2/mails/) ab, bevor zmsmessaging sie versendet. Lokal ist SMTP meist deaktiviert — Mails bleiben in der Queue.
Der Sidecar zms-mail-viewer pollt diese API und zeigt Betreff, Empfänger, HTML-Vorschau und Klartext. Er läuft nur in der lokalen Dev-Container-Umgebung.
- URL:
http://localhost:8025 - Login:
superuser/vorschau(Browser-Basic-Auth; konfigurierbar überZMS_MAIL_VIEWER_USER/ZMS_MAIL_VIEWER_PASSWORD) - API-Auth: lokale Superuser-Zugangsdaten über
ZMS_MAIL_VIEWER_API_USER/ZMS_MAIL_VIEWER_API_PASSWORD(Standardsuperuser/vorschau)
Automatische Einrichtung beim Start
Beim lokalen Start bereitet die Umgebung außerdem den Hauptentwicklungs-Flow vor:
- führt
composer install,npm installundnpm buildinzms-webaus - richtet
zmscitizenviewim lokalen Containerzms-citizenviewmitnpm installundnpm run devein und startet Hot Reload auflocalhost:8082 - installiert in
zms-webWerkzeuge zur Browser-Automatisierung für lokalezmsautomation-Läufe (Firefox/Xvfb sowie WebDriver-Unterstützung für Chrome/Chromium, Edge und Firefox viachromedriver,msedgedriverundgeckodriver)
Damit umfasst devcontainer up --workspace-folder . bereits den Install-/Build-/Bootstrap-Flow inklusive ./cli db full-setup.
Modul-Abhängigkeits-/Build-Befehle kannst du jederzeit erneut ausführen:
podman exec -it zms-web bash -lc "./cli modules loop composer install"
podman exec -it zms-web bash -lc "./cli modules loop npm install"
podman exec -it zms-web bash -lc "./cli modules loop npm build"Datenbank-Initialisierung (./cli db full-setup)
Die lokale Einrichtung führt ./cli db full-setup aus und:
- importiert die Basis-DB aus
.resources/zms.sql - importiert DLDB-Standorte/-Anliegen über den Stunden-Cron-Flow
- importiert produktionsnahe Testdaten aus
zmsautomation-Flyway-Migrationen - führt Datenbankmigrationen aus
- führt den Minuten-Cron aus, um öffnungszeitenbezogene Testdaten zu erzeugen
Du kannst die vollständige Einrichtung jederzeit erneut ausführen:
podman exec -it zms-web bash -lc "./cli db full-setup"Hinweise zur Keycloak-Hostzuordnung und zu Linux-Podman siehe Lokale Keycloak-Einrichtung.