# Docker produktiv Letzte Aktualisierung: 2026-02-21 ## Ziel Diese Anleitung beschreibt den Betrieb mit Domain auf Basis von `/docker-compose.prod.yml`. ## Voraussetzungen - DNS zeigt auf den Server (`A/AAAA`) - Ports `80` und `443` sind offen - TLS-Zertifikate vorhanden ## Produktionsdateien - Compose: `/docker-compose.prod.yml` - Nginx: `/docker/nginx/prod.conf` - PHP: `/docker/php/php.prod.ini` - ENV-Vorlage: `/.env.prod.example` ## 1) Umgebung vorbereiten `.env` auf Produktionswerte setzen: - `APP_URL=https://deine-domain.tld` - `APP_ENV=prod` - `APP_DEBUG=false` - stabile `APP_CRYPTO_KEY` - starke DB/SMTP-Passwörter ## 2) Nginx auf Domain/TLS setzen In `/docker/nginx/prod.conf`: - `server_name` auf echte Domain(s) anpassen Zertifikate ablegen: - `/docker/nginx/certs/fullchain.pem` - `/docker/nginx/certs/privkey.pem` ## 3) Produktion starten ```bash docker compose -f docker-compose.prod.yml up --build -d ``` Konfiguration validieren: ```bash docker compose -f docker-compose.prod.yml config ``` ## 4) Betrieb prüfen ```bash docker compose -f docker-compose.prod.yml logs -f nginx php scheduler ``` Prüfen: - App über `https://...` erreichbar - Login funktioniert - Scheduler läuft minütlich (Logausgaben) ## 5) Bestandssysteme Bei bestehender Datenbank: - idempotentes SQL-Update manuell ausführen (Auto-Init über `db/init/init.sql` greift nur beim ersten DB-Setup) ## Hinweise - `phpmyadmin` ist in Prod absichtlich nicht enthalten. - Wenn ein externer Reverse-Proxy TLS terminiert, kann `prod.conf` auf HTTP intern reduziert werden; `APP_URL` bleibt trotzdem `https://...`.