karim
2650913050
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 >
2026-06-01 22:05:57 +02:00
karim
bd4b470877
cms: Rollen + Kollaboration (Admin sieht alles, Autoren nur eigene/geteilte)
...
- ADMIN_EMAILS (.env) = Admins, sehen/bearbeiten alles
- Autor:innen sehen nur Einträge mit ihrer Mail unter `authors:`; Ersteller wird
beim Anlegen automatisch Autor
- Kollaboration: Feld „Autor:innen" im Editor → mehrere Mails = gemeinsamer Zugriff
- API erzwingt Zugriff bei list/read/save (403 ohne Recht)
- ADMIN_EMAILS in compose + LXC-Script (fragt Admin-Mail ab)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:22:06 +02:00
karim
8662970fe5
cms: Site beim Container-Start bauen (sonst 404 auf / vor erstem Publish)
...
public/ ist git-ignored und fehlt im frischen Clone — Entrypoint baut die
Hugo-Site einmal aus content/. Ausserdem: Script-Output stellt klar, dass
:8000 nur das API-Gateway ist (keine Web-UI).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:09:25 +02:00
karim
5a66c27e02
cms: Repo ist öffentlich — Token aus LXC-Script entfernen, Einzeiler
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 10:53:02 +02:00
karim
2c6caf4373
cms: LXC-Script interaktiv machen (Token/Storage/Bridge abfragen)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 00:28:52 +02:00
karim
60e5ef6844
cms: headless CMS vor Hugo (Supabase + Node-API + React-Admin)
...
All-in-One docker-compose-Stack (Muster von RAPPORT-SERVER gespiegelt):
db/auth/rest/kong + cms-Service (Node-API + Hugo-Binary 0.161.1 + Admin-SPA).
- DB-backed: posts-Tabelle kanonisch, MD ist generiertes Artefakt
- echte Hugo-Vorschau via draft:true + --buildDrafts → /_preview
- Publish: DB → content/library/<section>/<slug>.md → hugo build → live
- Bild-Upload nach static/images/, Supabase-Auth schützt /api/*
- Proxmox-LXC-Script: legt Container an, generiert Secrets, startet Stack
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 00:21:04 +02:00