# 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: ```bash 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: ```txt 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.