- _shutting_down Flag: sperrt enqueue() bei Shutdown → User bekommt
"Server wird neu gestartet" statt stilles Einreihen in tote Queue
- graceful_shutdown wartet NUR auf processing-Jobs (nicht ganze Queue)
- Queued-Jobs bleiben in DB als stale → User kann nach Restart re-triggern
- Timeout 15 min (900s) — ein LLM-Call dauert max ~120s
- stop_grace_period: 15m in docker-compose
- get_queue_status() meldet shutting_down für UI-Feedback
caddy-gitea-pages verworfen — dessen URL-Schema ({owner}.{domain}/{repo})
passt nicht für Single-Project-Hosting ohne DNS-Wildcards auf Sub-Sub-
Domains. Stattdessen simples nginx:alpine mit statischem Volume-Mount.
URL: https://docs.toppyr.de/gwoe-antragspruefer/
Der nginx-Container mounted docs-site/ nach
/usr/share/nginx/html/gwoe-antragspruefer/ — Traefik routet alles auf
Host docs.toppyr.de an den Container, nginx served den Pfad 1:1.
Skaliert für weitere Repos: einfach ein zweites Volume-Mount für
/usr/share/nginx/html/anderes-repo/ einrichten.
SSL: Traefik, nicht nginx/caddy.
DNS: *.toppyr.de Wildcard deckt docs.toppyr.de ab.
Update-Workflow:
cd webapp && mkdocs build
scp -r site/* vserver:/opt/gwoe-antragspruefer/docs-site/
Caddyfile.docs entfernt (war caddy-gitea-pages-spezifisch).
Refs: #62
mkdocs Material-Theme konfiguriert (mkdocs.yml). Build-Output wird in
den gh-pages-Branch gepusht, von dort served caddy-gitea-pages den
statischen Content als separater Container unter docs.gwoe.toppyr.de.
Neuer docker-compose-Service gwoe-docs:
- Image: ghcr.io/d7z-project/caddy-gitea-pages:nightly
- Liest automatisch aus dem gh-pages-Branch via Gitea-API
- Traefik-Labels für docs.gwoe.toppyr.de (SSL via Let's Encrypt)
- Token via GITEA_TOKEN in .env (bereits auf dem Server hinterlegt)
Wildcard-DNS *.toppyr.de zeigt bereits auf den VServer — kein
DNS-Eingriff nötig, Traefik + Let's Encrypt erledigen den Rest.
Doku-Update-Workflow:
1. ADR oder docs/ editieren
2. `mkdocs build` lokal
3. `git checkout gh-pages && cp -r site/* . && git add -A && git commit && git push`
4. caddy-gitea-pages refreshed automatisch
.gitignore: site/ ausgeschlossen (Build-Artefakt).
Refs: #62 (Phase 2)