# Datenbank: "postgresql" (Standard) oder "mysql". Nach einer Aenderung # einmal `pnpm db:push` ausfuehren (schreibt prisma/schema.prisma neu und # generiert den passenden Treiber-Adapter-Client) — siehe README, Abschnitt # "Datenbank-Provider wechseln". DATABASE_PROVIDER=postgresql # PostgreSQL (Standard). Fuer docker compose siehe POSTGRES_* unten. DATABASE_URL="postgresql://wabenhain:wabenhain@localhost:5432/wabenhain?schema=public" # MySQL/MariaDB stattdessen: # DATABASE_URL="mysql://wabenhain:wabenhain@localhost:3306/wabenhain" # Postgres-Zugangsdaten fuer docker-compose.yml (Datenbank-Container) POSTGRES_USER=wabenhain POSTGRES_PASSWORD=change-me POSTGRES_DB=wabenhain # Nur noetig, wenn DATABASE_PROVIDER=mysql: Zugangsdaten fuer den # db-mysql-Container ("docker compose --profile mysql up -d db-mysql") MYSQL_USER=wabenhain MYSQL_PASSWORD=change-me MYSQL_DATABASE=wabenhain # Stripe (Test-Keys aus dem Stripe-Dashboard, https://dashboard.stripe.com/test/apikeys) STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxxxxxxxxxxxxxx STRIPE_PUBLISHABLE_KEY=pk_test_xxxxxxxxxxxxxxxxxxxxxxxx # Webhook-Secret aus `stripe listen` bzw. dem Stripe-Dashboard-Webhook-Endpoint STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxxxx # Admin-Zugang: Der interne /admin-Bereich wird NICHT per Basic-Auth # geschuetzt, sondern ueber das normale Kundenkonto-Login (/konto) und die # Rolle "ADMIN" am Konto (siehe README, Abschnitt "Admin-Zugang"). Diese # beiden Werte legt `prisma db seed` als initiales Admin-Konto an, falls es # noch nicht existiert. Eine UNVORHERSEHBARE E-Mail waehlen (nicht # "admin@..." o.ae.) — sonst koennte sich vor dem ersten Seed-Lauf jemand # genau diese Adresse selbst registrieren; prisma/seed.ts befoerdert ein # bereits bestehendes Nicht-Admin-Konto zwar nicht mehr automatisch, ein # unvorhersehbarer Wert ist trotzdem die robustere erste Verteidigungslinie. ADMIN_EMAIL=change-me@example.com ADMIN_PASSWORD=change-me # Geheimer Schluessel zum Signieren der Kundenkonto-JWTs (HS256). # In Produktion MINDESTENS 32 Zeichen (wird beim Start erzwungen). # Erzeugen z.B. mit: openssl rand -base64 32 SESSION_SECRET=change-me-to-a-long-random-string # Basis-URL der Seite (fuer absolute Links, z.B. in E-Mails/Sitemaps). # Lokale Entwicklung (pnpm dev): http://localhost:3000 (Standard hier). # Vollstaendiger Docker-Betrieb: http://localhost (Caddy laeuft auf Port 80, # siehe SITE_ADDRESS/Caddyfile unten) bzw. die echte Domain in Produktion. NEXT_PUBLIC_SITE_URL=http://localhost:3000 # Nur fuer den vollstaendigen Docker-Betrieb (docker-compose.yml, Caddyfile): # die oeffentliche Domain, unter der die Seite erreichbar sein soll. Leer # gelassen laeuft Caddy lokal per HTTP auf Port 80 ohne TLS — fuer eine # echte Domain mit automatischem HTTPS z.B. "wabenhain.com" eintragen. SITE_ADDRESS= # Google Rezensionen (optional). Ohne diese beiden Werte zeigt die Startseite # automatisch die statischen Beispiel-Stimmen als Fallback. # API-Key: Google-Cloud-Projekt mit aktivierter "Places API". # Place-ID: https://developers.google.com/maps/documentation/places/web-service/place-id GOOGLE_PLACES_API_KEY= GOOGLE_PLACE_ID= # Cloudflare Turnstile (optional). Ohne diese beiden Werte wird auf # Registrierung, Newsletter und Firmenanfrage kein CAPTCHA angezeigt und die # serverseitige Pruefung uebersprungen. Site-Key ist oeffentlich (NEXT_PUBLIC_), # Secret-Key bleibt privat. Einrichtung: https://dash.cloudflare.com/?to=/:account/turnstile TURNSTILE_SECRET_KEY= NEXT_PUBLIC_TURNSTILE_SITE_KEY= # SMTP fuer Transaktions-E-Mails (Bestellbestaetigung, Newsletter-Opt-in, # Passwort-Reset). Ohne diese drei Werte werden E-Mails nur geloggt statt # versendet — praktisch fuer lokale Entwicklung ohne Mail-Setup. # Funktioniert mit jedem SMTP-Anbieter (z.B. das E-Mail-Postfach eures # Domain-Hosters wie IONOS/Strato, oder ein Dienst wie Resend/Postmark im # SMTP-Modus). SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASSWORD= SMTP_FROM="Wabenhain "