feat: Security CSRF Fix, Logout optimierung, Footer Anpassung, Rechtstexteanpassung
Docker Image bauen und veroeffentlichen / build-and-push (push) Failing after 1m33s

This commit is contained in:
Nick Szaunig committed 2026-09-03 13:51:50 +02:00
1 parent 0753a3bc8a
commit 4d3100e9ba
28 files changed
+802 -121

No files matched your search

+77
View File
@@ -80,3 +80,80 @@ SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM="Wabenhain <[email protected]>"
# ApiCore-Ernten-Synchronisierung (optional, admin/ernten -> "ApiCore-
# Synchronisierung"). Ohne diese drei Werte zeigt der Sync-Button einen
# Konfigurationsfehler statt eines Ergebnisses. ApiCore ist ein separates
# Projekt (NestJS-Backend) mit reinem E-Mail/Passwort-Login (kein API-Key-
# Mechanismus) — hier IDEALERWEISE die Zugangsdaten eines dedizierten,
# MFA-freien Service-Kontos mit ausschliesslich den Berechtigungen
# "harvests:read" (und optional "apiaries:read") eintragen, nicht die eines
# echten Admin-Zugangs. Details siehe src/lib/apicore-client.ts.
APICORE_API_URL=
APICORE_SYNC_EMAIL=
APICORE_SYNC_PASSWORD=
# DHL Parcel DE Shipping API ("Post & Parcel Germany", developer.dhl.com) —
# ermoeglicht das Erstellen von DHL-Versandmarken per Knopfdruck im
# Admin-Bestelldetail (siehe src/lib/dhl.ts). Ohne diese fuenf Werte zeigt
# der Button dort nur den Hinweis "DHL ist noch nicht konfiguriert".
#
# So kommt ihr an die Werte:
# 1. Account anlegen auf https://developer.dhl.com und eine App registrieren,
# die die API "Parcel DE Shipping" (Post & Parcel Germany) einbindet.
# Die App liefert DHL_API_KEY (Consumer Key) und DHL_API_SECRET
# (Consumer Secret). Fuer den Sandbox-Test reichen diese beiden Werte
# plus die DHL-Testzugangsdaten unten.
# 2. Fuer den PRODUKTIV-Betrieb zusaetzlich einen DHL-Geschaeftskundenvertrag
# ("DHL Paket" Versandvertrag) abschliessen — Ansprechpartner ist der
# DHL-Vertrieb bzw. https://www.dhl.de/de/geschaeftskunden/paket.html.
# Darueber bekommt ihr:
# - Zugangsdaten zum Geschaeftskundenportal (GKP) -> DHL_GKP_USERNAME/
# DHL_GKP_PASSWORD (dieselben Zugangsdaten, mit denen ihr euch auf
# dhl.de/geschaeftskundenportal einloggt).
# - Die EKP (10-stellige Kundennummer) plus Verfahren/Teilnahme fuer
# das gebuchte Produkt (Standard-Inlandspaket V01PAK) -> zusammen
# ergibt das die 14-stellige DHL_ACCOUNT_NUMBER (billingNumber).
# 3. DHL_ENVIRONMENT auf "sandbox" lassen, bis alles funktioniert, dann auf
# "production" umstellen (unterschiedliche Basis-URLs, siehe lib/dhl.ts).
#
# DHL-Sandbox-Testzugangsdaten (Stand der Recherche, koennen sich aendern —
# im Zweifel im DHL-Developer-Portal unter der App nachschauen):
# DHL_GKP_USERNAME=user-valid
# DHL_GKP_PASSWORD=SandboxPasswort2023!
DHL_API_KEY=
DHL_API_SECRET=
DHL_GKP_USERNAME=
DHL_GKP_PASSWORD=
# 14-stellig: EKP (10-stellig) + Verfahren (2-stellig) + Teilnahme (2-stellig)
DHL_ACCOUNT_NUMBER=
DHL_ENVIRONMENT=sandbox
# Microsoft Entra ID SSO ("Mit Microsoft anmelden", siehe
# src/app/api/auth/entra/). Ohne diese vier Werte zeigt der Button auf
# /konto einen Hinweis, dass SSO noch nicht konfiguriert ist, statt
# abzustuerzen.
#
# So richtet ihr es ein (Owner-Aufgabe im Azure-Portal, https://entra.microsoft.com):
# 1. Entra ID -> App registrations -> "New registration".
# - Name frei waehlbar, z.B. "Wabenhain Kundenlogin".
# - "Supported account types": i.d.R. "Accounts in this organizational
# directory only" (Single Tenant) fuer eine reine Firmen-SSO-Anbindung.
# - Redirect URI: Plattform "Web", URL = <eure Domain>/api/auth/entra/callback
# (lokal: http://localhost:3000/api/auth/entra/callback).
# 2. Nach dem Erstellen: "Application (client) ID" -> ENTRA_CLIENT_ID,
# "Directory (tenant) ID" -> ENTRA_TENANT_ID (beide auf der Overview-Seite
# der App-Registrierung sichtbar).
# 3. "Certificates & secrets" -> "New client secret" erzeugen -> der
# angezeigte WERT (nicht die Secret-ID!) -> ENTRA_CLIENT_SECRET. Nur
# einmal sichtbar, bei Verlust ein neues Secret erzeugen.
# 4. ENTRA_REDIRECT_URI = exakt dieselbe URL wie die in Schritt 1 hinterlegte
# Redirect-URI (muss zeichengenau uebereinstimmen).
# 5. "Enterprise applications" in Entra ID zeigt die App danach automatisch
# als Unternehmensapplikation (wird beim App-Registration-Schritt
# automatisch mit angelegt) — dort laesst sich optional der Nutzerkreis
# (z.B. nur bestimmte Gruppen) einschraenken.
ENTRA_TENANT_ID=
ENTRA_CLIENT_ID=
ENTRA_CLIENT_SECRET=
ENTRA_REDIRECT_URI=http://localhost:3000/api/auth/entra/callback