---
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
- `4` — Unwrap S/MIME
- `5` — 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í.

Souvisí s [[graph-email-import]], [[project-mcp-emaily]].
