Files
Nick SzaunigandClaude Opus 5.5 8a85bfaed4
Docker-Images bauen und veroeffentlichen / lint (push) Successful in 1m30s
Docker-Images bauen und veroeffentlichen / typecheck (push) Successful in 1m48s
Docker-Images bauen und veroeffentlichen / test (push) Successful in 1m33s
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 7m20s
docs: Doku-Abgleich mit origin/main (Stand 2026-10-16)
README mit Projektstand (Links auf Issues #33, #32), fehlenden Befehlen und
CI-Gate. BETRIEB: sha-gepinnte Manifeste, DB-Sicherung, Rollout per set image,
Label-Selector im pg_dump-Befehl, Storage Box. k8s/README: Schritt 09,
Warnung vor delete namespace. TESTS, OFFENE-PUNKTE, ARCHITEKTUR (ADR-8, ADR-9)
aktualisiert; Kommentare in .env.example und Worker-CronJob korrigiert.

Refs #31

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-16 07:57:43 +02:00

64 lines
2.9 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 und
# fuer die Folgeraten (Stripe Billing) zusaetzlich Products, Subscription
# Schedules, Subscriptions, Invoices (docs/BETRIEB.md, Abschnitt 4).
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=