56 lines
2.3 KiB
Markdown
56 lines
2.3 KiB
Markdown
# 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.
|