Files
dogfather-universe/server-internal/.env.example
T
DogFatherGitandClaude Opus 5 4b3ec450d5 Webdesign-Bereich: Fundament, oeffentliche Seiten, Zugangsschutz, PayPal
Umsetzung des "Website Masterplan" (16 Seiten) unter /webdesign.

Zugangsschutz mit EIGENER Schranke (server/webdesign-gate.js) statt gate.js:
gate.js laesst seit dem oeffentlichen Start am 21.08.2026 jeden durch, weil
die Pruefung auf SITE_PUBLIC_LAUNCH_AT als allererste Zeile steht. Haette man
/webdesign dahintergehaengt, waere der ausdruecklich nicht-oeffentliche Bereich
inklusive Preisen und spaeteren Kundendaten ab der ersten Sekunde fuer jeden
lesbar gewesen. Eigenes Sitzungs-Cookie, bereich="webdesign" im Token, damit
ein gueltiges Universe-Cookie hier NICHT gilt. 37/37 Tests.

Sieben oeffentliche Seiten in fuenf Sprachen (de, de-CH mit echtem Dialekt, en,
fr, pt). Preise, Zeitrahmen, Paketnamen und die 30-%-Regel stehen an genau
EINER Stelle in wd-core.js -- der Masterplan verlangt "ueberall
widerspruchsfrei", und vier Kopien laufen bei der ersten Preisaenderung
auseinander.

Als App installierbar auf Handy und PC. Der Service Worker speichert bewusst
KEINE HTML-Seite zwischen: nach dem Abmelden wuerden sonst geschuetzte Seiten
weiter ausgeliefert, ohne dass der Server je gefragt wird. 18/18 Tests.

Handy-Abnahme ueber alle Seiten in fuenf Breiten (320-1440) und fuenf Sprachen:
40/40. Der Test fand 35 echte Fehler (Touch-Ziele unter 44px), behoben im
Designsystem statt einzeln pro Seite.

PayPal (Wunsch 22.08.2026 "sofort auf meinem paypal"): Orders API mit
intent=CAPTURE, also sofortiger Einzug statt blosser Reservierung. Gebuehr und
Nettobetrag getrennt gespeichert. Betraege durchgehend als Ganzzahl in Cent.
Gefaelschte Webhooks werden abgewiesen. Fail closed solange Zugangsdaten
fehlen. 28/28 Tests gegen einen nachgebauten PayPal-Server.

Datenbank: 15 Tabellen mit Praefix wd_, fachlich vollstaendig vom Universe
getrennt.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-22 18:06:52 +02:00

88 lines
3.6 KiB
Bash

# Vorlage — echte Werte kommen in eine eigene ".env"-Datei (nie committen,
# nie in den Vault, nie in den Chat). 1:1 die gleichen Werte, die vorher per
# `wrangler secret put` bzw. in wrangler.toml [vars] gesetzt waren.
PORT=4200
DB_PATH=/var/lib/dogfather-internal/dogfather-internal.db
# ---- Owner-Zugang (Postfach/Team-Bereich) ----
# Erst-Login-Code des Hauptadministrators (Dogi). Nach dem ersten Login kann
# er über "Code ändern" durch einen in der DB gehashten Code ersetzt werden
# (siehe routes/auth.js setOwnerCode) — POSTFACH_CODE bleibt dann als reiner
# Fallback bestehen, wird aber nicht mehr benutzt, solange owner_code_hash
# in app_settings gesetzt ist.
POSTFACH_CODE=
# AES-256-Schlüssel (base64, 32 Bytes) für die reversible Team-Code-
# Verschlüsselung. Erzeugen z.B. mit: node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
ENCRYPTION_KEY=
# ---- TikTok-Live-Erkennung ----
TIKTOK_USERNAME=dogfather0804
# ---- Bewerbungen: Ticketanizer ----
TICKETANIZER_API_KEY=
# ---- Bewerbungen: Discord-Benachrichtigungen (3 verschiedene Kanäle) ----
DISCORD_WEBHOOK_MODI=
DISCORD_WEBHOOK_KOOPERATION=
DISCORD_WEBHOOK_SCOUT_MANAGER=
# ---- Supporter-Abo: E-Mail (Resend) ----
RESEND_API_KEY=
RESEND_FROM=Dogfather Team <[email protected]>
# ---- Supporter-Abo: Google-Login ----
# Öffentliche Client-ID (kein Geheimnis), aber bewusst nur per .env gesetzt,
# nicht hart im Frontend-Code, damit sie zusammen mit den anderen Werten an
# einer Stelle verwaltet wird.
GOOGLE_CLIENT_ID=
# ---- Supporter-Abo: PayPal Subscriptions ----
# "sandbox" zum Testen, "live" für echte Zahlungen.
PAYPAL_ENV=sandbox
PAYPAL_CLIENT_ID=
PAYPAL_CLIENT_SECRET=
PAYPAL_PLAN_ID=
PAYPAL_WEBHOOK_ID=
# ---------------------------------------------------------------------------
# PayPal fuer den Webdesign-Bereich (/webdesign), 22.08.2026
# Wunsch: "die gelder sollen auch sofort auf meinem paypal landen" -- deshalb
# wird mit intent=CAPTURE sofort eingezogen, nicht nur reserviert.
#
# Diese Werte kann NUR Filipe selbst erzeugen (PayPal-Business-Konto +
# Developer-App haengen an seiner Identitaet und Bankverbindung).
# Solange sie fehlen, ist die Zahlung sauber GESPERRT statt halb zu
# funktionieren -- eine Zahlung, die "irgendwie durchgeht" ohne dass Geld
# fliesst, waere der schlimmste denkbare Fehler.
# NIEMALS echte Werte hier eintragen, nur in der echten .env!
# ---------------------------------------------------------------------------
# sandbox = Testmodus ohne echtes Geld (Voreinstellung), live = Echtbetrieb
PAYPAL_ENV=sandbox
# Aus dem PayPal-Entwicklerbereich, App vom Typ "Merchant".
# Achtung: Sandbox und Live haben UNTERSCHIEDLICHE Zugangsdaten.
PAYPAL_CLIENT_ID=
PAYPAL_CLIENT_SECRET=
# Webhook fuer den Webdesign-Bereich. Bewusst eine EIGENE Webhook-Kennung,
# getrennt vom Supporter-Abo (PAYPAL_WEBHOOK_ID): sonst laesst sich der eine
# Bereich nicht abschalten, ohne den anderen mit zu treffen.
# Ziel-Adresse beim Anlegen in PayPal:
# https://postfach.dogfather-universe.com/webdesign/paypal-webhook
PAYPAL_WD_WEBHOOK_ID=
# Abo-Plaene fuer die laufende Betreuung (ab 49 EUR/Monat). Ein Plan je Paket,
# weil PayPal den Betrag am Plan festmacht, nicht am einzelnen Abo.
# Nur noetig, wenn Betreuungs-Abos ueber die Seite abgeschlossen werden sollen;
# Anzahlung und Restbetrag funktionieren auch ohne diese Werte.
PAYPAL_WD_PLAN_BASIS=
PAYPAL_WD_PLAN_PLUS=
PAYPAL_WD_PLAN_PREMIUM=
# Zusatz fuer die IP-Hashes im Webdesign-Bereich. Beliebige lange
# Zufallszeichenkette. Wird sie geaendert, passen alte Hashes nicht mehr --
# das ist unkritisch, sie dienen nur der Missbrauchserkennung.
WD_IP_SALT=