# ===================================================================== # Kita-Planer · Production Environment Template # --------------------------------------------------------------------- # Werte in der Hosting-Plattform als Environment Variables eintragen # oder lokal als `.env.production` / Server-Env verwenden. # Keine echten Secrets committen. # ===================================================================== # PostgreSQL im Coolify-Compose-Stack POSTGRES_DB="kita_planer" POSTGRES_USER="kita_planer" POSTGRES_PASSWORD="[GENERATE_ME]" # Unterschiedliche DB-Rollen für Runtime und Migration. URL-Passwörter müssen URL-kodiert sein. APP_DATABASE_PASSWORD="[GENERATE_ME]" APP_DATABASE_URL="postgresql://kita_runtime:[URL_ENCODED_APP_PASSWORD]@postgres:5432/kita_planer?schema=public" MIGRATION_DATABASE_URL="postgresql://kita_planer:[URL_ENCODED_OWNER_PASSWORD]@postgres:5432/kita_planer?schema=public" # pgAdmin im Coolify-Compose-Stack PGADMIN_DEFAULT_EMAIL="[admin@deine-domain.de]" PGADMIN_DEFAULT_PASSWORD="[GENERATE_ME]" # Auth.js / NextAuth # Generieren mit: openssl rand -base64 32 AUTH_SECRET="[GENERATE_ME]" # Oeffentliche Produktions-URL, ohne Slash am Ende. # Beide Werte setzen, weil bestehender Code und Auth-Tooling beide Namen kennen. AUTH_URL="https://[deine-domain.de]" NEXTAUTH_URL="https://[deine-domain.de]" NEXT_PUBLIC_SITE_URL="https://[deine-domain.de]" # Umami Analytics (optional, cookieless) # In Umami unter Website -> Tracking code auslesen. NEXT_PUBLIC_UMAMI_SCRIPT_URL="https://analytics.[deine-domain.de]/script.js" NEXT_PUBLIC_UMAMI_WEBSITE_ID="[UMAMI_WEBSITE_ID]" NEXT_PUBLIC_UMAMI_DOMAINS="[deine-domain.de],www.[deine-domain.de]" # Mailversand via Resend RESEND_API_KEY="re_[PRODUCTION_API_KEY]" EMAIL_FROM="Kita-Planer <[absender@deine-domain.de]>" ADMIN_EMAIL="[kontakt@deine-domain.de]" # Persistenter Upload-Speicher fuer Anhaenge vom Schwarzen Brett. # Muss auf dem Server dauerhaft erhalten bleiben und darf nicht im Repo liegen. UPLOAD_DIR="/var/lib/kita-planer/uploads/announcements" # Standard: 256 MiB je Kita, 10 GiB insgesamt. Compose verwendet diese Werte. UPLOAD_TENANT_QUOTA_BYTES="268435456" UPLOAD_GLOBAL_QUOTA_BYTES="10737418240" # Compose setzt UPLOAD_DIR fest auf /app/uploads/announcements. # Die Anwendung ergänzt /announcements: bestehende Dateien liegen dort unter # /app/uploads/announcements/announcements. Diesen Pfad beim Backfill beibehalten. # Demo-Seeding ist in Produktion deaktiviert. # Nur hinter einem Proxy setzen, der diesen Header überschreibt: # TRUSTED_CLIENT_IP_HEADER="x-real-ip"