2.0 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| python-runner | Docker kontejner na Unraidu s email pipeline — architektura, závislosti, scheduling, hlášení |
|
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 attachments4— Unwrap S/MIME5— Enrich fulltext → PostgreSQL
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.