Laufzeitumgebung
Status: Entwurf · Spec-Kandidat: ja
Anforderungen
- Docker-basierter Betrieb (NFR-009).
- Getrennte Umgebungen für Entwicklung, Test, Produktion.
- Container-Image für Backend / API.
- PostgreSQL als externer Service (managed oder selbstgehostet).
Plattform: Coolify (gesetzt)
Betrieb erfolgt auf Coolify als selbstgehosteter Container-PaaS. Keine zusätzliche Orchestrierung (Kubernetes, Nomad) — Coolify kapselt Docker + Traefik.
Daraus folgt verbindlich:
- Pro Service ein
docker-compose.yamlim jeweiligen Repository. Coolify baut und deployt darüber. - Kein Host-Port-Mapping (
ports:in compose) für deployte Services. Container deklariert seinen Port überexpose:(oderEXPOSEim Dockerfile). Coolifys Traefik-Proxy routet die konfigurierte Domain auf den Container-Port — Host-Ports umgehen TLS/Auth und kollidieren auf dem Host. - Lokales Smoke-Testing kann
docker run -poder eindocker-compose.override.yaml(nicht deployed) verwenden. - TLS-Termination + Domain-Routing übernimmt Coolify (Let’s Encrypt automatisch).
- Secrets werden in Coolify als Environment-Variablen gepflegt — nicht in Images eingebrannt, nicht im Repo eingecheckt.
- Health Checks (
HEALTHCHECK-Direktive im Dockerfile oderhealthcheck:in compose) sind Pflicht, damit Coolify Rolling-Updates korrekt ausführt.
Konfiguration
- Konfiguration ausschließlich über Umgebungsvariablen (12-Factor) — in Coolify pro Service gepflegt.
- Geheimnisse separat aus Secrets-Store, nicht in Images eingebrannt.
- Health Checks für Container und Datenbank-Verbindung verpflichtend.
Offen
- Sizing (CPU, RAM, Replicas) ohne Performance-Zielwerte nicht festlegbar.