Muster wie Wabenhain (Feldmaske, 1 h Cache, 5 s Timeout, Schluessel im Header). Ohne Konfiguration oder bei Fehler null, keine Ersatz-Stimmen. Keine Profilbilder (kein IP-Transfer der Besucherinnen an Google), Quellenlinks nur als https. Neue Variablen GOOGLE_PLACES_API_KEY und GOOGLE_PLACE_ID in .env.example und Secret-Vorlage. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
62 lines
2.8 KiB
Bash
62 lines
2.8 KiB
Bash
# ARTISTA MODELCAMP 2027 — Konfigurationsvorlage
|
|
# Kopieren nach .env (lokal) bzw. in ConfigMap/Secret (Kubernetes, k8s/).
|
|
# Hier stehen KEINE echten Geheimnisse. Werte in <…> ersetzen.
|
|
|
|
# --- Umgebung ----------------------------------------------------------------
|
|
# development | staging | production
|
|
# Nur "production" wird indexiert, blendet Entwicklungs-Platzhalter aus und
|
|
# erlaubt einen Stripe-Live-Schluessel.
|
|
APP_ENV=development
|
|
# Oeffentliche Adresse ohne abschliessenden Schraegstrich.
|
|
APP_URL=http://localhost:3000
|
|
|
|
# --- Datenbank ---------------------------------------------------------------
|
|
# Lokal: pnpm db:dev (Port 54329) oder docker compose up -d db (Port 5432).
|
|
DATABASE_URL=postgresql://artista:artista-dev@localhost:54329/artista
|
|
DATABASE_POOL_SIZE=10
|
|
|
|
# --- Geheimnisse (je mind. 32 Zeichen, z. B. `openssl rand -base64 48`) -------
|
|
# Leitet die Zugangstokens der Buchungsstatusseiten ab und hasht IPs fuer
|
|
# Rate Limits. Wechsel macht alle bisherigen Statuslinks ungueltig.
|
|
APP_SECRET=<zufaelliger-wert-mindestens-32-zeichen>
|
|
# Signiert die Admin-Sitzungen (Better Auth).
|
|
BETTER_AUTH_SECRET=<anderer-zufaelliger-wert-mindestens-32-zeichen>
|
|
|
|
# --- Stripe ------------------------------------------------------------------
|
|
# sk_test_… = Testmodus (Checkout ohne Live-Freigabe moeglich)
|
|
# sk_live_… = Livemodus (nur mit APP_ENV=production UND allen Freigaben)
|
|
# Empfohlen: eingeschraenkter Schluessel (rk_…) mit Schreibrechten fuer
|
|
# Customers, Checkout Sessions, PaymentIntents, PaymentMethods, Refunds.
|
|
STRIPE_SECRET_KEY=<sk_test_…>
|
|
# Signaturgeheimnis des Webhook-Endpunkts (whsec_…), siehe docs/BETRIEB.md.
|
|
STRIPE_WEBHOOK_SECRET=<whsec_…>
|
|
|
|
# --- E-Mail ------------------------------------------------------------------
|
|
# file = sicherer Testausgang: Mails landen als .eml in MAIL_OUTBOX_DIR,
|
|
# nichts wird verschickt (in production gesperrt).
|
|
# smtp = Versand ueber den SMTP-Anbieter unten.
|
|
MAIL_TRANSPORT=file
|
|
MAIL_OUTBOX_DIR=.mail-outbox
|
|
MAIL_FROM=ARTISTA MODELCAMP <[email protected]>
|
|
# Empfaenger fuer "Pruefung noetig"-Hinweise (optional, empfohlen).
|
|
ADMIN_NOTIFY_EMAIL=
|
|
SMTP_HOST=
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
SMTP_USER=
|
|
SMTP_PASSWORD=
|
|
|
|
# --- Medien ------------------------------------------------------------------
|
|
# Persistentes Verzeichnis fuer freigegebene Bilder/Videos, ausgeliefert
|
|
# unter /media/… (Kubernetes: eigenes PersistentVolume).
|
|
MEDIA_DIR=./media
|
|
# Datenschutzkonzept fuer externe Videos: none | youtube-nocookie | vimeo
|
|
# Externe Player laden nur nach Klick und ausdruecklicher Zustimmung.
|
|
EXTERNAL_VIDEO_PROVIDER=none
|
|
|
|
# --- Google-Rezensionen (optional) ------------------------------------------
|
|
# "Places API (New)" aktivieren, Abrechnung an, API-Schluessel (kein OAuth).
|
|
# Ohne Werte wird der Rezensionen-Abschnitt ausgeblendet.
|
|
GOOGLE_PLACES_API_KEY=
|
|
GOOGLE_PLACE_ID=
|