Import aus Monorepo (frischer Start)

This commit is contained in:
Lucas Orth
2026-08-24 12:13:58 +02:00
commit 94e79f12ac
34 changed files with 7438 additions and 0 deletions

57
.env.example Normal file
View File

@@ -0,0 +1,57 @@
# 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
# Signatur-Plotter-Service (intern über das npm-Netz). Default passt zum container_name.
SKRIFT_SIGN_URL=http://skrift-signature-service:8000
# ── 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