# Deployment via Docker auf Hetzner ## Zielzustand * Ein Docker-Container: * enthält statisches Frontend Build * enthält minimalen Node/Express Server * Konfiguration über Environment-Variablen (SMTP + Recipient) * HTTPS Terminierung über Reverse Proxy (z.B. Caddy oder Nginx) oder über Hetzner-Setup ## Container Ports * App hört intern auf einem Port (z.B. 3000) * Reverse Proxy übernimmt 80/443 ## Build-Strategie Multi-stage: 1) Node Build Stage * npm ci * Frontend build * Backend build (TypeScript) 2) Runtime Stage * Nur dist + node_modules prod * Start: node server ## Ops * Health Endpoint (z.B. /healthz) * Structured logs * Rate limit und sensible Daten nicht loggen