fix(prod): Cache darf ausfallen, ohne die Seite mitzunehmen #94
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/prod-disk-hardening"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #85
Worum es geht
Die Seite war komplett aus, weil ein Cache ausgefallen ist. Redis konnte bei
voller Platte seinen Snapshot nicht schreiben und schaltete daraufhin alle
Schreibbefehle ab. Craft nutzt ihn als Cache-Backend, also scheiterte jeder
Request schon beim Laden der Site-Konfiguration.
Das Aufräumen der Platte war die Erste Hilfe. Die eigentliche Schwachstelle ist,
dass ein Cache die Anwendung überhaupt mitnehmen kann.
Drei Ebenen
--save "" --appendonly no), dasredis_data-Volume entfällt. Er ist ein reiner Cache mitallkeys-lru; einVerlust kostet einen Kaltstart, keine Daten. Damit ist der Ausfallpfad zu.
scripts/deploy/prod.sh— der Ablauf ausdocs/DEPLOYMENT.mdist jetztausführbar statt abgeschrieben. Er bricht unter 10 GB freiem Plattenplatz ab,
räumt den Build-Cache nach jedem Lauf auf und prüft am Ende alle 25 Seiten
live auf HTTP 200.
docker/prod/daemon.jsondeckelt den BuildKit-Cache bei 10 GB.Ein Fund nebenbei, der nicht im Issue stand
Das
static_files-Volume überdeckt das ganzeweb/-Verzeichnis, der alte Ablaufsynchronisierte aber nur
dist/undstatic/hinein. Live lief deshalb seitMonaten eine 86-zeilige
llms.txtmit veralteter Positionierung, während imRepo längst eine 29-zeilige stand. Das ist derselbe Fehler, der 2026-06-23 schon
die Schriften erwischt hat. Das Skript synct jetzt das komplette
web/.Damit ist ein Teil von #84 (Punkt 3) miterledigt: der Text war nie falsch, er kam
nur nie an.
Aufräumen
Acht konkurrierende Deployment-Dokumente und drei Deploy-Skripte im Repo-Root
sind weg. Keines kannte Blitz, den Volume-Drift oder die compiled-templates-Falle.
docs/DEPLOYMENT.mderklärt das Warum, das Skript führt das Wie aus.Gemessen, nicht angenommen
Voller Deploy gelaufen, Ausgabe in dieser Sitzung:
redis-cli CONFIG GET save→ leer,appendonly→no/llms.txtliefert jetzt 29 Zeilen statt 86systemctl reload dockerangewandt, 23 Container liefen durchNicht geprüft: ob eine künstlich vollgeschriebene Platte die Seite jetzt
wirklich stehen lässt. Das würde einen absichtlichen Ausfall auf dem Produktions-
host verlangen; die Redis-Konfiguration ist stattdessen direkt am laufenden
Container ausgelesen.
🤖 Generated with Claude Code
https://claude.ai/code/session_01VyiQJ8BM3hcqH3E3sPvg1N