---
okf: "0.1"
type: runbook
visibility: private
status: active
updated: 2026-07-09
links:
  - ../services/paperless.md
  - ../decisions/paperless-split-ocr.md
---

# Paperless — cutover checklist

## Cutover checklist (przy deployu — NIE teraz)

1. Moduł 0 (piha-slim) domknięty; `free -g` na PIHA potwierdza zapas.
2. Porty wolne na żywym hoście: `ss -tlnp | grep -E '8210|5434|6380'`.
3. `mkdir -p /opt/homelab/data/paperless/{data,media,consume,export}` na PIHA.
4. `.env` z `env.example` (sekrety + rejestracja OAuth2 w Forgejo).
5. DNS: rekord A `paper.kapala.org` w Cloudflare → `100.108.208.3`
   (Tailscale PIHA, DNS Only) — ten sam wzorzec co `ha.kapala.org` /
   `immich.kapala.org` (`docs/sessions/2026-06-30-kapala-cloudflare-wildcard-mesh.md`);
   wildcard `*.kapala.org` już pokrywa tę subdomenę, nowy cert niepotrzebny.
   Plus vhost w npm@PIHA (HTTPS → `192.168.31.5:8210`, Advanced puste).
6. `docker compose up -d` + `./healthcheck.sh` + testowy login OIDC.
7. Export NFS dla workera (patrz `services/paperless-worker/README.md`) —
   dopiero przy module 3.
8. Wpis w `hosts/piha/services.yaml` (dopiero przy deployu — wcześniej
   supervisor widziałby drift dla nieistniejącego serwisu).
