5. Deployment und Betrieb¶
5.1. Repository- und Release-Struktur¶
Der Root-Checkout enthält die Betriebsdateien; src/ ist der Laravel-Subtree.
Release- und Produktionsoperationen werden aus dem Root ausgeführt. Der
Laravel-Code darf nicht als unabhängiger Produktionscheckout neben dem
Root-Repository aktualisiert werden.
5.2. Vorgesehener Produktionsweg¶
Ein Release und seine Auslieferung laufen über:
./planer release
./planer backup create
./planer update --ref v2026.15.0 --backup-confirmed
release baut und veröffentlicht das versionierte Image
pfarrtools/pfarrplaner:vVERSION. update zieht dieses Image, führt
Migrationen aus, aktualisiert die öffentlichen Assets und startet App, Horizon
und Scheduler mit Health-Check neu. Der alte Image-Stand bleibt als
Rollback-Grundlage erhalten.
5.3. Docker-Deployment¶
Im Containerbetrieb läuft das Deployment reproduzierbar über das veröffentlichte
Root-Produktionsimage und compose.production.yaml. Entscheidend sind persistente
MariaDB-, Redis- und MinIO-Volumes, konsistente .env-Werte, ein geprüftes
Backup und ein sauberer Umgang mit Migrationen, Horizon und Scheduler.
5.4. Release-Kontext¶
Das Repository enthält Release-Skripte, die neben Versionsständen auch den Neubau und die Auslieferung des Handbuchs berücksichtigen. Manual-Operationen können unabhängig davon ausgeführt werden:
./planer dev manual all
./planer dev manual deploy --dry-run
./planer dev manual deploy
5.5. Health und Monitoring¶
Für Monitoring ist mindestens der Health-Endpunkt sinnvoll:
GET /api/health
Zusätzlich sollten Sie Caddy, den App-Health-Endpunkt, Horizon, Scheduler, MariaDB, Redis, MinIO und – bei aktiviertem Mail-Profil – Postfix überwachen.