homelab-codex-ws/kb/decisions/paperless-split-ocr.md
oskar a573b7e394 feat(kb): SPLIT paperless -> service + decision + runbook
kb/services/paperless.md (Stack, OIDC, Storage i backup, RAM na PIHA)
kb/decisions/paperless-split-ocr.md (split OCR serwis@PIHA + worker@SOLARIA)
kb/runbooks/paperless-cutover.md (cutover checklist)

Tresc sekcji nietknieta; kontrola multizbioru linii == oryginal.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:53:57 +02:00

1.3 KiB

okf type visibility status updated links
0.1 decision private active 2026-07-09
../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) — services/paperless-worker/README.md.