Files
janssen/claude-memory/project_python_runner.md
T
2026-06-13 21:45:28 +02:00

38 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: python-runner
description: "Docker kontejner na Unraidu s email pipeline — architektura, závislosti, scheduling, hlášení"
metadata:
node_type: memory
type: project
originSessionId: ec13e72a-c0a8-4862-93d9-6da9b29b82f3
---
Email pipeline běží v Docker kontejneru `python-runner` na Unraidu (192.168.1.76).
Skripty jsou v `/mnt/user/Scripts/` (volume → `/scripts/`).
**Pipeline** spouštěna 2× denně cronem (`0 6,18 * * *`) přes `run_pipeline.sh`:
- `1b` — Graph delta sync (nové/změněné emaily → MongoDB)
- `3` — Download attachments (`3_download_attachments_v1.5.py`)
- `4` — Unwrap S/MIME
- `5` — Enrich fulltext → PostgreSQL
**Přílohy → SeaweedFS (2026-06-13):** krok 3 (v1.5) krom uložení na disk `/mnt/Emails/<mbox>/Attachments/` zároveň pushne každou novou přílohu do SeaweedFS přes sdílený `/scripts/seaweed_store.py`; do `emaily.attachments_index` (dedup SHA-256=_id) zapíše `seaweed_path/seaweed_url/seaweed_synced_at`. Výpadek SeaweedFS pipeline neshodí (jen warning, doplní backfill). Jednorázový backfill již stažených: `seaweed_attachments_backfill_graph.py` (batch+resume). Globální dedup s mailstore větví. Viz [[project-seaweedfs]].
**Wrapper:** `0_run_pipeline_v1.0.py`
- Na začátku auto-install: `pip install -q -r /scripts/requirements.txt` — odolné vůči recreate kontejneru
- Na konci email report: HTML tabulka výsledků z `reports@buzalka.cz``vladimir.buzalka@buzalka.cz`; při chybě přiloží log selhavšího kroku
**Závislosti:** `requirements.txt` v `/scripts/` + v repo `Python-runner/requirements.txt`
Klíčové: `msal`, `asn1crypto`, `pymongo`, `psycopg`, `extract-msg`, `beautifulsoup4`
**Incident 2026-06-05:** kontejner byl recreated → ztraceny balíčky → pipeline padala 24h (kroky 1b/3/4 FAIL s ModuleNotFoundError). Opraveno auto-installem.
**Knihovna pro odesílání emailů:** `Knihovny/EmailMessagingGraph.py` (kopie na serveru `/scripts/EmailMessagingGraph.py`)
- SENDER: `reports@buzalka.cz`, tenant TrialHelp s.r.o.
**Logy:** `/mnt/user/Scripts/logs/pipeline_YYYYMMDD_HHMM.log`, symlink `pipeline_latest.log`, retence 30 dní.
**Centrální logging (2026-06-09):** wrapper `0_run_pipeline` posílá do Grafana Loki (přes [[central-logging]] gateway) **každý řádek konzole** každého kroku — `app="email_pipeline"`, pole `logger=step.<id>`. Klient `central_logging*.py` zkopírován do `/scripts/`. Token+gateway NEjsou v kontejneru — dány přes `os.environ.setdefault` přímo ve wrapperu (kroky je dědí jako subprocesy). Grafana dotaz: `{app="email_pipeline"}`.
Souvisí s [[graph-email-import]], [[project-mcp-emaily]].