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>
34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
---
|
|
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) —
|
|
`services/paperless-worker/README.md`.
|
|
|