security: Härtung der CMS-API + Deployment
App-Level: - Security-Header (secureHeaders) global; /images/* mit strikter CSP+sandbox → bösartiges SVG kann kein JS im Origin ausführen - Body-Limit 256 KB auf /api/*; Login-Rate-Limit (10/5min) gegen Brute-Force - Upload: 8-MB-Limit + Format-Verifikation (sharp-Metadaten, SVG/GIF-Signatur) - Comment-Längenlimit (10k) gegen DB-Bloat - DB-Fehler nicht mehr roh ausliefern (serverError-Helper) - Profil-PUT koalesziert Hugo-Builds (kein Build-Sturm) Infra: - Container läuft non-root (USER node, uid 1000) + Proxmox-Repo-chown - Ports binden per Default auf 127.0.0.1 (BIND_ADDR-Escape-Hatch) - Kong-CORS auf SITE_URL beschränkt statt "*" - README: Härtungs- + Migrationshinweise Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,10 @@
|
||||
# 2. JWT_SECRET + POSTGRES_PASSWORD setzen (openssl rand -hex 32)
|
||||
# 3. node scripts/generate-keys.mjs → ANON_KEY + SERVICE_ROLE_KEY in .env
|
||||
# 4. SITE_URL + API_EXTERNAL_URL auf die LAN-/Domain-Adresse setzen
|
||||
# 5. kong.yml: __CORS_ORIGIN__ durch SITE_URL ersetzen (Browser-Origin)
|
||||
# 6. BIND_ADDR: 127.0.0.1 hinter Reverse-Proxy, 0.0.0.0 für LAN-Direkt
|
||||
#
|
||||
# (Das Proxmox-Script erledigt 1–6 automatisch.)
|
||||
# Dann: docker compose up -d --build
|
||||
#
|
||||
# Abweichung von RAPPORT: realtime + storage weggelassen (nutzt das CMS nicht).
|
||||
@@ -129,8 +132,10 @@ services:
|
||||
volumes:
|
||||
- ./kong.yml:/var/lib/kong/kong.yml:ro
|
||||
ports:
|
||||
- "${KONG_HTTP_PORT:-8000}:8000"
|
||||
- "${KONG_HTTPS_PORT:-8443}:8443"
|
||||
# Standard 127.0.0.1: nur lokal/Reverse-Proxy erreichbar. Für LAN-Direkt-
|
||||
# zugriff ohne Proxy BIND_ADDR=0.0.0.0 in .env setzen.
|
||||
- "${BIND_ADDR:-127.0.0.1}:${KONG_HTTP_PORT:-8000}:8000"
|
||||
- "${BIND_ADDR:-127.0.0.1}:${KONG_HTTPS_PORT:-8443}:8443"
|
||||
|
||||
# ════════════════════════════════════════════════════════════════════════
|
||||
# CMS — Node-API + Hugo-Binary + Admin-SPA, serviert die Site
|
||||
@@ -168,7 +173,8 @@ services:
|
||||
# Repo-Root: api schreibt content/ und baut public/ + preview/.
|
||||
- ..:/site
|
||||
ports:
|
||||
- "${APP_PORT:-8080}:3000"
|
||||
# Wie Kong: standardmäßig nur 127.0.0.1 (hinter Reverse-Proxy).
|
||||
- "${BIND_ADDR:-127.0.0.1}:${APP_PORT:-8080}:3000"
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
|
||||
Reference in New Issue
Block a user