Session logi zostaja w docs/sessions/ (decyzja z etapu 1). Dodany wylacznie blok frontmattera: type: session-log, visibility: private, status: active, updated = data ostatniego commita pliku. Tresc nietknieta — kazdy plik to +9/-0 linii. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
64 lines
3.3 KiB
Markdown
64 lines
3.3 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: session-log
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-07-09
|
|
links: []
|
|
---
|
|
|
|
# Sesja 2026-07-09 — KB configi (9 decyzji) + wzorzec dzielenia plikow (Nextcloud twierdza + Gokapi)
|
|
|
|
## Kontekst
|
|
Etap 1 filaru dokumentow KB: dokonczenie configow Paperless/Nextcloud wg decyzji +
|
|
nowy wzorzec publicznego dzielenia plikow. NIC nie zdeployowane — tylko configi w repo.
|
|
|
|
## 9 decyzji Paperless/Nextcloud (rozstrzygniete)
|
|
1. Host Nextcloud = PIHA (KOREKTA wzgl. Fable, ktora dala SOLARIA). Oskar uzywa NC
|
|
aktywnie (telefon, sync, rodzina) -> musi byc always-on. owner_node=piha,
|
|
TRUSTED_PROXIES=172.16.0.0/12 (docker bridge, npm+NC dziela host).
|
|
2. Backup Paperless = SOLARIA (LAN, nocny document_exporter + rsync, retencja 7/4/6);
|
|
offsite jako future-note.
|
|
4. Redis brokera = requirepass (haslo po obu stronach serwis/worker).
|
|
6. Domeny = kapala.org (mesh): paper.kapala.org, cloud.kapala.org. Wildcard *.kapala.org
|
|
JUZ pokrywa oba -> nie trzeba nowych vhostow/DNS (A-record juz -> 100.108.208.3).
|
|
8. Nextcloud pin = nextcloud:34-apache (CC sprawdzil live endoflife.date: stable 34
|
|
z 2026-06-09). Deploy-time reconfirm.
|
|
5. Whoosh fallback-worker: zaakceptowac+obserwowac.
|
|
Deploy-time (nie teraz): #3 porty (ss -tlnp), #7 wylaczenie local login po OIDC,
|
|
#9 sizing OCR przed batch 70k.
|
|
|
|
## Wzorzec dzielenia plikow — decyzja architektoniczna
|
|
Problem: chce czasem wyslac komus link do pliku na zewnatrz, ale Nextcloud ma
|
|
prywatne dokumenty + rodzinne pliki.
|
|
Rozwazone: A/A+C (wystawic NC na okit.pl z ograniczeniem sciezek), D (Cloudflare
|
|
Tunnel), E (osobny share-serwis). WYBRANE E — najczystsze:
|
|
- **Nextcloud = twierdza**: mesh/kapala.org ONLY, zero publicznej powierzchni.
|
|
Zasada KB "ingress mesh-only" nietknieta.
|
|
- **Gokapi = publiczne dzielenie**: osobny lekki serwis, zaprojektowany do tego
|
|
(single-admin upload, wygasanie linkow, E2E).
|
|
|
|
## Gokapi — config (nowy serwis)
|
|
- Host: VPS Hetzner (public na public hoscie, dom nietkniety). owner_node=vps, exposure=public.
|
|
- Obraz: f0rc3/gokapi:v2.2.4 (CC zweryfikowal GitHub releases + Docker Hub 2026-07-09,
|
|
pinowany nie latest). WAZNE: WebSearch blednie zasugerowal GOKAPI_USERNAME/PASSWORD env —
|
|
CC sprawdzil docs/setup.rst: nie ma headless setup, admin przez wizard /setup.
|
|
- Domena: share.okit.pl. Storage: lokalny dysk VPS. E2E: ON.
|
|
- Bind: TAILSCALE_BIND_IP (nie 0.0.0.0!) — surowy port NIE istnieje na publicznym IP
|
|
Hetznera; npm@VPS jedynym wejsciem, siega przez Docker hairpin NAT (wzorzec jak
|
|
fleet-prometheus/nextcloud). Defense-in-depth.
|
|
- Disk-protection: GOKAPI_MAX_FILESIZE + GOKAPI_MIN_FREE_SPACE (VPS ma malo miejsca).
|
|
- Backup note: config/ (config.json + klucz E2E master) backupowac; data/ ulotne (wygasa).
|
|
|
|
## Stan
|
|
Wszystkie configi (Paperless, paperless-worker, Nextcloud, Gokapi) gotowe, zwalidowane
|
|
docker compose config, w repo. ZERO deployu.
|
|
|
|
## TODO deploy (nastepne sesje, osobno, etapami)
|
|
- Paperless (modul 2): NFS export PIHA, serwis, OAuth Forgejo, weryfikacja portow ss -tlnp.
|
|
- OCR-worker (modul 3): SOLARIA, NFS mount, celery.
|
|
- Nextcloud (modul 4): PIHA, OAuth user_oidc.
|
|
- Gokapi: VPS — A-record share.okit.pl -> 135.181.153.108, wildcard *.okit.pl na npm@VPS
|
|
(token npm-dns01-all-zones, sprawdzic czy VPS-npm juz ma), vhost, wizard /setup.
|
|
- okit.pl Faza 2 (z poprzednich sesji): mesh/public reorg, audyt martwych vhostow, drugi npm VPS.
|