homelab-codex-ws/kb/decisions/paperless-split-ocr.md
oskar 01db57ab82 fix(kb): przepiecie wszystkich odwolan wewnetrznych po migracji
126 plikow (md, yaml, sh, py) odwolywalo sie do sciezek sprzed migracji.

  15  markdown-linkow [..](..) -> policzona sciezka WZGLEDNA wobec pliku
      odsylajacego (wczesniej czesc z nich byla repo-root-relative i nie
      rozwiazywala sie z katalogu, w ktorym lezala)
 200  odwolan tekstowych (backticki, proza, yaml, importy w kodzie)
      -> nowa sciezka repo-root-relative, zgodnie z konwencja repo
   5  linkow rodzenstwa (gole nazwy plikow, np. "](DEPLOY.md)") — dzialaly
      tylko w starym katalogu; przeliczone recznie

Objete m.in.: CLAUDE.md (scripts/onboard/README.md -> kb/runbooks/
node-onboarding-tool.md, docs/backlog.md -> kb/phases/backlog.md),
README.md, .claude/skills/, 20 session logow, kod jobow.

Ostatnie 5 odwolan pochodzi z tresci wciagnietej rebasem z origin/master
(session log 2026-07-31, override node-agenta na SOLARII, dwie pozycje
backlogu) — wskazywaly na docs/incidents/, docs/kb/modules/ i
services/narty27/README.md sprzed migracji.

Dodany wzajemny link miedzy kb/services/control-plane.md (stub kodu)
a kb/subsystems/control-plane.md (opis, deprecated) — dwa dokumenty o tym
samym systemie, latwe do pomylenia.

Weryfikacja na 790 plikach: 0 odwolan do starych sciezek,
0 martwych linkow markdown. Lint OKF: 190/190 plikow ZGODNE.

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) — kb/services/paperless-worker.md.