Commit Graph

9 Commits

Author SHA1 Message Date
Dotty Dotter
b4fe3488e0 ops: Dockerfile + docker-compose Anpassungen, ADR-Index aktuell
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
Dotty Dotter
f4b7b000a1 Graceful Shutdown v2: Queue sperren + nur laufende Jobs abwarten
- _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
2026-04-10 23:20:23 +02:00
Dotty Dotter
2dc504ffea Graceful Shutdown: Queue wartet auf laufende Jobs + stop_grace_period 5m 2026-04-10 23:17:46 +02:00
Dotty Dotter
916b0ca643 Debug: JS-Fehler anzeigen + docker-compose version entfernt 2026-04-10 19:55:08 +02:00
Dotty Dotter
2b2a363127 #62 Phase 2: Pivot nginx + docs.toppyr.de/gwoe-antragspruefer/
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
2026-04-10 09:47:06 +02:00
Dotty Dotter
c26c2e7e94 caddy-gitea-pages: Caddyfile mit gitea-Modul + default_owner/repo/branch 2026-04-10 09:45:12 +02:00
Dotty Dotter
52e55e9cca Fix docs domain: gwoe-docs.toppyr.de (Wildcard *.toppyr.de matcht nur 2nd-Level) 2026-04-10 09:43:47 +02:00
Dotty Dotter
1e438a7baa #62 Phase 2: mkdocs + caddy-gitea-pages Hosting auf docs.gwoe.toppyr.de
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)
2026-04-10 09:42:44 +02:00
Dotty Dotter
63de3ca20d Initial commit: GWÖ-Antragsprüfer v1.0
Features:
- GWÖ-Matrix 2.0 Analyse für NRW-Landtagsanträge
- Verbesserungsvorschläge im Redline-Format (Original/Vorschlag/Begründung)
- Wahlprogramm- und Parteiprogrammtreue-Bewertung
- Landtag-Suche via OPAL-API
- Tag-Wolke mit Multi-Select Filter
- Partei-Filter mit Durchschnittswerten
- PDF-Report-Generierung
- Security Headers (CSP, X-Frame-Options, etc.)
- Persistente SQLite-DB via Docker Volumes

Tech Stack:
- FastAPI + Jinja2
- Qwen LLM via DashScope API
- SQLite + aiosqlite
- WeasyPrint für PDF
- Docker Compose mit Traefik
2026-03-28 22:30:24 +01:00