Files
2026-05-08 14:32:14 +02:00
..
2026-05-08 14:32:14 +02:00

Kita-Planer Deployment

Dieses Verzeichnis enthaelt die ausfuellbaren Vorlagen fuer das Production-Deployment.

Dateien

  • production.env.example: Vorlage fuer alle benoetigten Environment Variables.
  • production-checklist.md: Checkliste fuer Domain, Datenbank, Auth, Mail, Uploads und Rechtliches.
  • ../Dockerfile: Container-Build fuer Coolify oder andere Docker-Hosts.
  • ../docker-compose.coolify.yml: Compose-Vorlage fuer Coolify mit required Environment Variables.

Empfohlener Ablauf mit Coolify und Gitea

  1. Repository in deine Gitea-Instanz pushen.
  2. In Coolify eine neue Application aus diesem Gitea-Repository anlegen.
  3. Als Build Pack Docker Compose waehlen.
  4. Als Compose-Datei docker-compose.coolify.yml eintragen.
  5. Die bestehende Coolify-Postgres-Datenbank ueber ihre interne DATABASE_URL verbinden.
  6. Environment Variables aus production.env.example in Coolify eintragen.
  7. Domain auf den app-Service mit internem Port 3000 zeigen lassen.
  8. Deploy starten.

Beim Container-Start fuehrt scripts/start-production.sh automatisch aus:

npx prisma db push

Coolify erkennt Variablen aus docker-compose.coolify.yml und zeigt required Variablen wie DATABASE_URL, AUTH_SECRET, AUTH_URL, NEXTAUTH_URL, NEXT_PUBLIC_SITE_URL, RESEND_API_KEY, EMAIL_FROM und ADMIN_EMAIL in der UI an.

Welche Coolify-Postgres-URL?

Wenn die App und die Postgres-DB im selben Coolify-Projekt/Netzwerk laufen, nimm die interne Datenbank-URL aus Coolify, nicht die oeffentliche externe URL. Das ist stabiler und vermeidet unnoetigen Traffic ueber den Host.

Das Format bleibt:

postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=public

Wichtige Hinweise

  • Das aktuelle Projekt nutzt noch prisma db push statt versionierter Prisma-Migrationen. Fuer den ersten MVP-Deploy ist das praktikabel, fuer laengerfristigen Betrieb sollten Migrationen eingefuehrt werden.
  • UPLOAD_DIR muss persistent sein. Die Coolify-Compose-Datei mountet dafuer ein Docker-Volume nach /app/uploads.
  • NEXT_PUBLIC_SITE_URL muss die echte Domain enthalten, damit OpenGraph-Bilder in WhatsApp, LinkedIn und Co. korrekt als absolute URL aufgeloest werden.
  • NEXT_PUBLIC_SITE_URL wird auch als Build-Arg an Docker uebergeben. In Coolify sollte diese Variable deshalb fuer Build und Runtime verfuegbar sein.