# Directus – kopiere zu .env und fülle die Werte aus. .env NICHT committen. # ── Postgres ──────────────────────────────────────────────── DB_DATABASE=skrift DB_USER=directus DB_PASSWORD=CHANGE-ME-strong-db-password # ── Directus ──────────────────────────────────────────────── # SECRET: langer Zufallswert, z. B. openssl rand -hex 32 DIRECTUS_SECRET=CHANGE-ME-64-hex-random PUBLIC_URL=https://admin.skrift.de # Erster Admin (nur beim ersten Start relevant) ADMIN_EMAIL=admin@skrift.de ADMIN_PASSWORD=CHANGE-ME-strong-admin-password # CORS: URL des Frontends (Portal/Konfigurator). Kommagetrennt möglich. CORS_ORIGIN=https://app.skrift.de # ── E-Mail (SMTP) — für passwortlosen Login-Code + Benachrichtigungen ── # WICHTIG: PORT und SECURE müssen zusammenpassen, sonst schlägt die Verbindung # mit "SSL routines: wrong version number" fehl: # Port 587 → STARTTLS → EMAIL_SMTP_SECURE=false # Port 465 → implizites TLS → EMAIL_SMTP_SECURE=true EMAIL_FROM=noreply@skrift.de EMAIL_SMTP_HOST= EMAIL_SMTP_PORT=587 EMAIL_SMTP_USER= EMAIL_SMTP_PASSWORD= EMAIL_SMTP_SECURE=false # Nur falls der Mailserver ein selbstsigniertes Zertifikat nutzt: # EMAIL_SMTP_TLS_REJECT_UNAUTHORIZED=false # ── Skrift-Backend (Vorschau + finaler Auftrag) ───────────── # Intern über das gemeinsame npm-Netz erreichbar (container_name). SKRIFT_BACKEND_URL=http://skrift-backend:4000 # MUSS exakt dem API_TOKEN aus Docker/skrift-backend/.env entsprechen, # sonst antwortet das Backend mit 401 Unauthorized. SKRIFT_BACKEND_TOKEN=CHANGE-ME-gleich-wie-backend-API_TOKEN # Vorschauen pro Kennung und Tag SKRIFT_PREVIEW_LIMIT=10 # Zieladresse für Angebots-/Musteranfragen SKRIFT_TEAM_EMAIL=hello@skrift.de # Shared Secret für den WordPress-Webhook (JetFormBuilder → /skrift-orders/inbound/*). # Frei wählbarer langer Zufallswert; muss identisch als ?token=... in der # Webhook-URL stehen. Ohne diesen Wert lehnt der Webhook alle Anfragen ab. SKRIFT_WEBHOOK_TOKEN=CHANGE-ME-langer-zufallswert # ── PayPal (server-seitige Zahlungsprüfung) ───────────────── # Client-ID ist öffentlich (auch im Frontend), das Secret bleibt NUR hier. PAYPAL_CLIENT_ID= PAYPAL_CLIENT_SECRET= # sandbox oder live PAYPAL_ENV=sandbox