# ───────────────────────────────────────────────────────────────────────────── # RAPPORT-HOST — Konfiguration # Kopiere nach .env (lokal) bzw. setze die Werte in der Hetzner-Umgebung. # .env steht in .gitignore — niemals committen. # ───────────────────────────────────────────────────────────────────────────── # ═══ Server ═══ PORT=8787 # Basis-URL, unter der RAPPORT-HOST erreichbar ist (für Stripe-Redirects). # Lokal: http://localhost:8787 · Prod: https://host.rapport.studio PUBLIC_BASE_URL=http://localhost:8787 # ═══ Auth ═══ # JWT-Signatur-Secret für HOST-Kundenkonten. openssl rand -hex 32 JWT_SECRET=CHANGE-ME-min-32-zeichen # Passwort für den Betreiber-Bereich (/admin), getrennt von Kundenkonten. ADMIN_PASSWORD=CHANGE-ME-admin-passwort # ═══ Postgres (eigene HOST-DB, GETRENNT von Kunden-Rapport-Daten) ═══ DATABASE_URL=postgres://rapport_host:rapport_host@localhost:55432/rapport_host # ═══ Stripe ═══ (solange CHANGE-ME → MOCK-Modus, kein echtes Geld) # Setup wenn du so weit bist: # 1. Stripe-Account, Test-Modus aktivieren # 2. Entwickler → API-Keys: Secret Key (sk_test_…) → STRIPE_SECRET_KEY # 3. Produkte: 3 Stück mit je 1 wiederkehrendem Preis (CHF/Monat) → # Price-IDs (price_…) unten eintragen # 4. Webhook auf https://DEINE-URL/api/billing/webhook, Events: # checkout.session.completed, customer.subscription.updated, # customer.subscription.deleted, invoice.payment_failed # → Signing Secret (whsec_…) → STRIPE_WEBHOOK_SECRET # Lokal testen: stripe listen --forward-to localhost:8787/api/billing/webhook # TWINT: Stripe unterstützt es nur für Einmalzahlung, nicht Abos → Abo läuft # über Karte; TWINT später als separater Einmal-Checkout. STRIPE_SECRET_KEY=sk_test_CHANGE-ME STRIPE_WEBHOOK_SECRET=whsec_CHANGE-ME STRIPE_PRICE_SOLO=price_CHANGE-ME STRIPE_PRICE_STUDIO=price_CHANGE-ME STRIPE_PRICE_BUSINESS=price_CHANGE-ME # ═══ Provisioning (Modell A: geteilter Rapport-Stack) ═══ # Wenn LEER: MOCK-Modus — Instanz wird nur als DB-Eintrag simuliert, der ganze # Flow ist ohne laufenden Rapport-Stack testbar. # Wenn gesetzt: echtes Provisioning gegen den geteilten Rapport-Stack. RAPPORT_API_URL= RAPPORT_SERVICE_KEY= # URL-Template für die fertige Kunden-Instanz. {slug} wird ersetzt. RAPPORT_INSTANCE_URL_TEMPLATE=http://localhost:8080/?studio={slug}