- Helmet CSP: upgrade-insecure-requests und HSTS für HTTP-Deployments deaktiviert
(war die Ursache der leeren Seite - Browser versuchte JS über HTTPS zu laden)
- Backend: statische Dateien werden jetzt in allen NODE_ENV-Modi serviert
- Frontend: IS_DEV erkennt auch VITE_TEST_MODE=true (Build-Zeit Variable)
- Dockerfile: VITE_TEST_MODE=true beim Vite-Build, NODE_ENV=development
- docker-compose.yml: NODE_ENV=development, CORS_ORIGIN=*
- Gitea Workflow: Auth-Token für git clone, Build via Portainer API statt lokaler Docker CLI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CSS modules and Vite types not available during tsc check.
Vite build works without prior tsc step.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Multi-stage build: frontend (Vite) + backend (TypeScript) in one container.
Production image based on node:20-alpine with health check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>