homelab-codex-ws/kb/decisions/paperless-split-ocr.md

34 lines
1.3 KiB
Markdown
Raw Normal View History

---
okf: "0.1"
type: decision
visibility: private
status: active
updated: 2026-07-09
links:
- ../services/paperless.md
- ../runbooks/paperless-cutover.md
---
# Paperless — decyzja: split OCR serwis@PIHA + worker@SOLARIA
## Split OCR: serwis@PIHA + worker@SOLARIA (wynik badania)
Rozproszony worker **nie jest oficjalnie wspierany** przez Paperless-ngx, ale
jest wykonalny i potwierdzony przez maintainerów (GH discussion #3900): drugi
host odpala ten sam obraz z `command: celery --app paperless worker` i musi
widzieć **ten sam Redis, tego samego Postgresa i te same pliki**. Stąd:
- storage dokumentów leży na PIHA (bind mounty `/opt/homelab/data/paperless/*`)
i jest eksportowany przez **NFS po LAN** (nie Tailscale) do SOLARII;
- ścieżki w kontenerze (`/usr/src/paperless/{data,media,consume}`) muszą być
**identyczne** po obu stronach — payloady zadań i DB niosą ścieżki absolutne;
- pliki mają właściciela **numerycznego UID 1000** (`USERMAP_UID/GID=1000`
po obu stronach) — NFS przenosi numeryczne ID, nie nazwy;
- wbudowany worker na PIHA (nie da się go wyłączyć w stockowym obrazie) działa
jako wolny fallback, gdy SOLARIA śpi; zadania czekają w Redis (AOF włączone,
restart brokera nie gubi kolejki).
Szczegóły NFS (export na PIHA, mount na SOLARIA, ryzyko indeksu Whoosh) —
`kb/services/paperless-worker.md`.