Commit Graph
3 Commits
Author SHA1 Message Date
irrlichtandClaude Opus 5 62e1923a72 Quadlet statt eigener Service-Unit, zwei Umgebungsdateien
Prod fuehrt Phase 1 als Quadlet unter
~/.config/containers/systemd/wurzelwerk-ingest.container; Phase 2 legt
sich daneben. Damit faellt die eigene .service-Unit weg - zwei Wege,
dasselbe zu tun, sind einer zuviel.

Drei Dinge, die dabei nicht offensichtlich sind:

  Type=oneshot          Quadlet setzt sonst Type=notify, und die Unit
                        gaelte als gestartet, sobald der Container
                        laeuft, nicht wenn er durch ist.
  kein RemainAfterExit  Das Handbuch empfiehlt es fuer oneshot, aber bei
                        Timer-Aktivierung bliebe der Auftrag im Zustand
                        "started" und der Timer loeste ihn nie wieder
                        aus.
  --env-file            EnvironmentFile= im Abschnitt [Container] ist
                        nicht systemds EnvironmentFile=. Quadlet reicht
                        die Datei an podman weiter, und podman entfernt
                        keine Anfuehrungszeichen um Werte.

Network=bebop-net steht jetzt direkt in der Unit; P2_NETZ entfaellt.
Type=oneshot schaltet ausserdem die Startzeitgrenze ab, womit der Grund
fuer TimeoutStartSec=1800 wegfaellt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
2026-09-08 16:37:43 +02:00
irrlichtandClaude Opus 5 c18e94e61e Podman-Netz konfigurierbar, Vorgabe pasta, auf Prod bebop-net
Prod laesst Phase 1 und Postgres in einem eigenen Netz laufen; die
Verbindung zeigt dort auf den Rechnernamen "postgres", den nur Podmans
DNS innerhalb von bebop-net aufloest. Die Unit hatte --network=pasta
fest verdrahtet - damit waere der erste Lauf an der Namensaufloesung
gescheitert, nicht an der Anmeldung.

Jetzt ${P2_NETZ}, mit Environment=P2_NETZ=pasta als Vorgabe. Die
Umgebungsdateien werden nach Environment= gelesen und ueberschreiben sie;
p2.env.beispiel setzt bebop-net.

Damit ist auch die Warnung vor host.containers.internal hinfaellig: sie
gilt nur ohne eigenes Netz. Die Checkliste sagt das jetzt so.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
2026-09-08 16:27:43 +02:00
irrlichtandClaude Opus 5 7cecc5c0cd Inbetriebnahme auf Prod: Checkliste und zwei Umgebungsdateien
Die Unit las bisher nur p2.env. Auf Prod steht die Datenbankverbindung
schon in ~/.config/wurzelwerk/database.env und gehoert Phase 1 mit; die
Unit liest jetzt beide, database.env zuerst. p2.env kann DATABASE_URL
ueberschreiben, falls database.env auf 127.0.0.1 zeigt - aus dem
Container heraus laeuft das ins Leere, dort muss
host.containers.internal stehen.

deploy/INBETRIEBNAHME.md haelt die Reihenfolge fest. Zwei Schritte darin
sind nicht offensichtlich und beide teuer, wenn man sie auslaesst:

  lexikon.py --laden   akteure.py liest aus den Tabellen, nicht aus den
                       JSON-Dateien. Ohne diesen Schritt laeuft Modul 4
                       durch und loest nichts auf, ohne zu scheitern.
  Erstbestand von Hand Der erste Lauf laedt 2,2 GB Modellgewichte und
                       kodiert den gesamten Korpus, ~17 min je 5000
                       Items. Aus dem Timer heraus liefe er in
                       TimeoutStartSec=1800.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
2026-09-08 12:32:40 +02:00