2650913050
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>
42 lines
1.7 KiB
Bash
42 lines
1.7 KiB
Bash
# Kopiere nach .env und ersetze die markierten Werte. Niemals committen.
|
|
|
|
# ═══ Pflicht: Secrets ═══
|
|
# Zufallswerte: openssl rand -hex 32
|
|
POSTGRES_PASSWORD=CHANGE-ME-mindestens-32-zufällige-zeichen
|
|
JWT_SECRET=CHANGE-ME-mindestens-32-zufällige-zeichen
|
|
# Aus JWT_SECRET ableiten: node scripts/generate-keys.mjs
|
|
ANON_KEY=CHANGE-ME-aus-jwt-secret-abgeleitet
|
|
SERVICE_ROLE_KEY=CHANGE-ME-aus-jwt-secret-abgeleitet
|
|
|
|
# ═══ Pflicht: URLs ═══
|
|
# Nur LAN: SITE_URL=http://192.168.1.50:8080
|
|
# Via Proxy: SITE_URL=https://openbureau.ch
|
|
SITE_URL=http://localhost:8080
|
|
# Öffentliche Supabase-Adresse (Browser/Admin erreichen Kong hierüber).
|
|
API_EXTERNAL_URL=http://localhost:8000
|
|
|
|
# ═══ Rechte: wer ist Admin (sieht/bearbeitet ALLE Beiträge)? ═══
|
|
# Komma-getrennte E-Mails. Alle anderen sehen nur Einträge, in denen ihre Mail
|
|
# unter `authors` steht.
|
|
ADMIN_EMAILS=karim@gabrielevarano.ch
|
|
|
|
# ═══ Optional: Ports & Binding ═══
|
|
# Auf welcher Host-Adresse lauschen die veröffentlichten Ports?
|
|
# 127.0.0.1 (Standard) = nur lokal / hinter Reverse-Proxy mit TLS (empfohlen).
|
|
# 0.0.0.0 = direkt im LAN erreichbar (ohne Proxy).
|
|
# Bei 127.0.0.1 muss SITE_URL/API_EXTERNAL_URL über den Proxy laufen, sonst
|
|
# erreicht der Browser :8000/:8080 nicht.
|
|
BIND_ADDR=127.0.0.1
|
|
APP_PORT=8080 # CMS: Site + /admin + /_preview + /api
|
|
KONG_HTTP_PORT=8000 # Supabase-API-Gateway
|
|
KONG_HTTPS_PORT=8443
|
|
DB_PORT=5432
|
|
|
|
# ═══ Optional: Git-Backup beim Publish ═══
|
|
# true = CMS committet generierte MD nach Gitea (History + Notausgang).
|
|
GIT_PUBLISH=false
|
|
GIT_REMOTE=origin
|
|
GIT_BRANCH=main
|
|
GIT_AUTHOR_NAME=OPENBUREAU CMS
|
|
GIT_AUTHOR_EMAIL=cms@openbureau.ch
|