Files
skrift-programme/Docker/directus/.env.example
Lucas Orth 3cb93d078e Unterschriftenservice, Extern-Modus, Adressmodell, Alt-Mail, Team-Mails
skrift-app (Konfigurator):
- Datei-Produkte (Unterschriftenservice): Mehrfach-Upload (PDF/Word/Excel),
  komplett preisfrei (keine Preisleiste/Aufpreise/Kostenübersicht/Zahlung)
- Extern-/Etsy-Modus (?extern=1&versand&kuvert&beschriftung&menge): vom Betreiber
  vorkonfiguriert, Kunde füllt nur Empfänger/Text/Rechnungsdaten/Übersicht,
  keine Preise/Zahlung; Menge greift immer (auch >25 / ohne Empfänger); eigener
  Danke-Text
- Adressmodell: zwei feste Adressen (Rechnung/Lieferung) ohne Namen statt
  Dropdown; Auto-Vorbefüllung; Lieferadresse nur bei Sammelversand; abweichende
  Lieferadresse per Default aus; Pflichtfelder erzwungen
- Platzhalter-Tabelle immer im Text-Schritt (auch Sammelversand ohne Kuvert) +
  Excel; Tabellen-Eingabe nur bis 25, „Ab 26"-Hinweis entfernt
- Stammdaten: zwei Adressblöcke + Erfolgsmeldung

Directus/Backend:
- Signatur-Endpunkte /signature-preview + /signature-render (Proxy zum
  signature-service, Marker + Konto-Offsets), Modul-Reiter „Unterschriften"
  (aus Auftrag oder manuell), Tabelle über volle Breite
- Generierung läuft bei jeder Bestellung; Kuverts immer (Datei-Produkt: nur
  Kuvert, DIN Lang als Default); source_files am Auftrag
- Produktions-Board: „Dateien"-Button (hochgeladene Originale, keine SVGs)
- Alt-Mail-Login: Zweit-Mails melden im selben Konto an (skrift-auth)
- Team-Mails schlank + konfigurierbar (email_settings.team_email) für
  Bestellung/Muster/Anfrage; keine Bestellbestätigung bei Datei-Produkten,
  separate Vorlagen unterschriften_eingang/extern_eingang
- Rechnungsadresse wird ins Konto übernommen, wenn dort noch keine steht
- Kunden-Policy: directus_files create/read (Upload); Bootstrap: users
  billing_address/shipping_address/alt_emails, orders.source_files/source=extern,
  signatures marker/offsets, unterschriftenservice input_mode=datei/pricing_mode=formel

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-26 14:52:09 +02:00

58 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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