Bisher baute der Server das Image selbst und der Container holte sich
Inhalte per git pull ueber deploy.php. Das war seit jeher kaputt: git
verweigerte wegen "dubious ownership" die Arbeit, die &&-Kette brach ab,
hugo lief nie. Live war stets der Stand des letzten Containerstarts.
Statt das zu flicken faellt der Mechanismus jetzt weg. Das Dockerfile
ist zweistufig: Hugo baut die Seite im Builder, das Laufzeit-Image
enthaelt nur nginx und fertiges HTML. Kein PHP, kein git, kein Hugo mehr
zur Laufzeit - 49 MB statt eines Debian-Images mit vier Werkzeugketten.
Deployen heisst damit: neues Image ziehen, Container neu starten.
Entfernt: deploy.php, entrypoint.sh und .htaccess (Apache-Rest aus der
Kirby-Zeit, unter nginx wirkungslos). Der Ordner kirby/ heisst jetzt
docker/, weil dort nie Kirby lag.
docker-compose.yml zieht das Image aus der Registry. Das Volume-Mount
auf /var/www/html ist weg - es haette die ins Image gebackene Seite
verdeckt.
Lokal geprueft: Build laeuft durch, Container liefert alle Seiten und
Assets mit HTTP 200 aus, Intro-Text kommt aus der Markdown-Datei, alle
sieben Lampenbilder sind enthalten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Der Webhook lief, brach aber sofort ab:
fatal: detected dubious ownership in repository at '/var/www/html'
Das Repo gehoert einem anderen Benutzer als dem, unter dem PHP-FPM
laeuft. Git verweigert daraufhin jede Operation, und weil deploy.php
die Schritte mit && verkettet, wurde hugo nie erreicht. Auf main
gepushte Aenderungen gingen deshalb nie live - die Seite zeigte immer
den Stand des letzten Containerstarts, weil nur der Entrypoint als
root gebaut hat.
Der Entrypoint traegt jetzt systemweit safe.directory fuer das Repo
und das Theme-Submodule ein und uebergibt das Verzeichnis an www-data,
damit git pull und der hugo-Build tatsaechlich schreiben koennen.
Greift erst nach einem Neubau des Containers - der laufende Container
kann sich nicht selbst reparieren.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Einleitungstext und Bildliste standen fest verdrahtet in
layouts/lampe/single.html, die Galerie lief ueber ein hartes
"range seq 1 7". Inhaltliche Aenderungen erforderten damit
Eingriffe ins Template.
Der Text steht jetzt als Fliesstext in lichterei.md und wird ueber
.Content gerendert, die Bilder als Liste "lampen" im Frontmatter mit
optionaler Bildunterschrift. Das Template iteriert ueber die Liste,
statt auf sieben Eintraege festgelegt zu sein.
Leerer text-Wert unterdrueckt die figcaption und laesst den alt-Text
auf "Lampe N" zurueckfallen - die Seite rendert damit unveraendert.
Ausserdem: AGENTS.md als Arbeitsanweisung fuer die lokale
LLM-gestuetzte Bearbeitung, CSS-Regel fuer figcaption ergaenzt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Remove all Kirby/PHP files
- Add Hugo config with Gokarna theme as git submodule
- Add nginx + Hugo Dockerfile replacing PHP/Apache
- Update deploy.php to run hugo after git pull
- Update .gitignore for Hugo output
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>