# hd-commerce — Umgebungsvariablen # --- Datenbank --- # Pfad zur SQLite-Datenbank (wird automatisch angelegt) DB_PATH=./data/hdc.db # --- Admin-Zugang (Session-Login) --- # Initial-Owner, der beim ERSTEN Start angelegt wird (danach im Admin verwaltbar) ADMIN_EMAIL=admin@example.com ADMIN_PASS=admin # Unter welchem Pfad der Admin erreichbar ist (z.B. "admin" -> /admin, "intern" -> /intern) ADMIN_PATH=admin # Geheimnis zum Signieren der Session-Cookies (HMAC). In Produktion UNBEDINGT setzen! SESSION_SECRET=bitte-langes-zufaelliges-geheimnis-setzen # --- KI-/MCP-Admin-API --- # Bearer-Token für /api/admin/* (getrennt von der Session). Leer => API gesperrt. HDC_API_TOKEN= # --- Stripe (optional) --- # Ohne echte Keys läuft der Demo-Checkout-Fallback. STRIPE_PUBLIC_KEY=pk_test_xxxxxxxxxxxxxxxxxxxxxxxx STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxxxxxxxxxxxxxx # --- MCP-Server (mcp/) --- # HDC_BASE_URL=https://shop.example.com # HDC_API_TOKEN= (dasselbe Token wie oben) # --- Zahlung: Provider-Abstraktion (v2.2) --- # Provider explizit wählen: mollie | stripe | demo. Leer => Auto-Wahl nach vorhandenen Keys. PAYMENT_PROVIDER= # Mollie (Default-Anbieter). Test- oder Live-Key. Ohne gültigen Key läuft der Demo-Fallback. MOLLIE_API_KEY= # (Stripe-Keys siehe oben — werden weiterhin unterstützt.) # --- E-Mail-Versand (v2.2) --- # Provider: listmonk | smtp | (leer => Log-Fallback in DB-Tabelle email_log) MAIL_PROVIDER= # Absenderadresse für ausgehende Mails MAIL_FROM=shop@example.com # Listmonk (Transactional-API /api/tx) LISTMONK_URL=https://listmonk.example.com LISTMONK_USER= LISTMONK_PASS= LISTMONK_TX_TEMPLATE_ID= # SMTP (alternativ, via nodemailer) SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= SMTP_SECURE=false # --- Feature-Module (v2.3) --- # Warenkorb-Erinnerung: Token, das den Cron-Endpoint /api/cron/abandoned schützt. # Leer => Endpoint bleibt gesperrt (401). Coolify-Scheduled-Task ruft den Endpoint mit diesem Token. CRON_TOKEN= # Karten, die älter als X Minuten sind und weder bezahlt noch erinnert wurden, werden erinnert. ABANDONED_AFTER_MINUTES=30 # --- Medien / WebP (v2.4) --- # Uploads von JPG/PNG werden automatisch zu WebP konvertiert (Dependency: sharp, prebuilt-Binary). # Im node:22-slim-Image baubar (python3/make/g++ sind im Dockerfile vorhanden). WEBP_QUALITY=82 WEBP_MAX_WIDTH=2000 # --- Backup: Litestream (v2.4, optional) --- # Ohne diese Variablen läuft die App normal OHNE Backup (reiner Node-Start). # Ist LITESTREAM_REPLICA_URL gesetzt, wird die SQLite-DB (DB_PATH) live nach S3/B2 gestreamt # und beim Start bei Bedarf wiederhergestellt. # Backblaze B2 ist S3-kompatibel: s3:/// LITESTREAM_REPLICA_URL= LITESTREAM_ACCESS_KEY_ID= LITESTREAM_SECRET_ACCESS_KEY= # B2-S3-Endpoint, z. B. s3.eu-central-003.backblazeb2.com (für AWS S3 leer lassen) LITESTREAM_ENDPOINT=