Branding auf Wurzelwerk (SWP) umstellen, Deployment systemagnostisch machen

Ersetzt "Lagebild" durch den Projektnamen Wurzelwerk (Stinkwurzpresse) in
allen Units, Configs und Docs. Entfernt konkrete Hostnamen (Bebop, Pi 5,
Debby) aus README/NOTES zugunsten generischer Rollenbezeichnungen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013vHZCwcCJnz4LKNgvT4bxv
This commit is contained in:
irrlicht
2026-09-04 20:28:57 +02:00
co-authored by Claude Sonnet 5
parent ac7d8c7e69
commit c43d8496bf
9 changed files with 68 additions and 64 deletions
+20 -20
View File
@@ -1,4 +1,4 @@
# Ingest
# Wurzelwerk — Ingest
Stufe 0 und 1 der Pipeline: Quellenregister und Roh-Erfassung. Keine
Kodierung — was hier landet, soll sich beliebig oft neu kodieren lassen.
@@ -10,54 +10,54 @@ Kodierung — was hier landet, soll sich beliebig oft neu kodieren lassen.
| `sources.toml` | Quellenregister, einzige Wahrheit ueber die Quellen |
| `schema.sql` | Postgres-Schema (`quellen`, `raw_items`, `codings`, `poll_laeufe`) |
| `poller.py` | Poller, zwei Senken: Postgres und gzip-JSONL |
| `Containerfile` | Image fuer Bebop |
| `lagebild-ingest.container`, `lagebild.network` | Quadlet-Units, rootless |
| `Containerfile` | Image fuer den Produktivbetrieb |
| `wurzelwerk-ingest.container`, `wurzelwerk.network` | Quadlet-Units, rootless |
| `ingest.env.example` | Vorlage fuer die Zugangsdaten |
## Bebop
## Deploy mit Postgres + Podman/Quadlet (rootless)
```sh
# 1. Schema einspielen
psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f schema.sql
# 2. Image bauen
podman build -t localhost/lagebild-ingest:latest .
podman build -t localhost/wurzelwerk-ingest:latest .
# 3. Konfiguration ablegen
mkdir -p ~/.config/lagebild
cp ingest.env.example ~/.config/lagebild/ingest.env
cp sources.toml ~/.config/lagebild/sources.toml
chmod 600 ~/.config/lagebild/ingest.env
$EDITOR ~/.config/lagebild/ingest.env
mkdir -p ~/.config/wurzelwerk
cp ingest.env.example ~/.config/wurzelwerk/ingest.env
cp sources.toml ~/.config/wurzelwerk/sources.toml
chmod 600 ~/.config/wurzelwerk/ingest.env
$EDITOR ~/.config/wurzelwerk/ingest.env
# 4. Quadlet installieren
mkdir -p ~/.config/containers/systemd
cp lagebild-ingest.container lagebild.network ~/.config/containers/systemd/
cp wurzelwerk-ingest.container wurzelwerk.network ~/.config/containers/systemd/
systemctl --user daemon-reload
systemctl --user start lagebild-ingest
journalctl --user -u lagebild-ingest -f
systemctl --user start wurzelwerk-ingest
journalctl --user -u wurzelwerk-ingest -f
# Damit der Dienst ohne offene Sitzung weiterlaeuft:
loginctl enable-linger "$USER"
```
`sources.toml` ist eingehaengt, nicht ins Image gebacken: eine neue Quelle ist
ein `systemctl --user restart lagebild-ingest`, kein Neubau.
ein `systemctl --user restart wurzelwerk-ingest`, kein Neubau.
## Pi 5 — Schatten-Ingest
## Schatten-Ingest auf einem Zweitgeraet
Ohne Postgres, ohne Container:
```sh
python3 poller.py --sink jsonl:/var/lib/lagebild/schatten
python3 poller.py --sink jsonl:/pfad/zu/deinem/ablageordner
```
Legt `<dir>/YYYYMMDD/YYYYMMDDHHMMSS.jsonl.gz` an, dedupliziert ueber eine
SQLite daneben. Als `systemd --user`-Unit mit `Restart=always` einrichten.
Der Sinn ist nicht Redundanz um ihrer selbst willen: RSS-Feeds haben kein
Archiv. Steht Bebops Poller einen Tag still, ist dieser Tag unwiederbringlich
weg. Kodierungen lassen sich wiederholen, Rohdaten nie.
Archiv. Steht der Produktiv-Poller einen Tag still, ist dieser Tag
unwiederbringlich weg. Kodierungen lassen sich wiederholen, Rohdaten nie.
## Betrieb
@@ -130,5 +130,5 @@ spiegel | derstandard | 0.92 | Niederlage fuer Donald Trump - Gericht in Missou
- Telegram-Fetcher (Telethon/MTProto). Register ist vorbereitet, Eintraege
stehen auf `aktiv = false`. Die Bot-API kann fremde Kanaele nicht lesen.
- Ersatz-URL fuer den BR24-Feed (aktuell 404).
- Quellenpool von 12 auf ~40 erweitern; Regionalzeitungen ueber SearXNG auf
Debby suchen.
- Quellenpool von 12 auf ~40 erweitern; Regionalzeitungen ueber SearXNG
suchen.