Zum Inhalt springen

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.yaml im jeweiligen Repository. Coolify baut und deployt darüber.
  • Kein Host-Port-Mapping (ports: in compose) für deployte Services. Container deklariert seinen Port über expose: (oder EXPOSE im 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 -p oder ein docker-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 oder healthcheck: 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.

Verwandte Dokumente