Zum Inhalt

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.