homelab-codex-ws/kb/runbooks/gokapi-cutover.md
oskar d2401ef566 feat(kb): SPLIT gokapi -> service + decision + runbook
kb/services/gokapi.md (Stack, Backup, Rejestracja w repo)
kb/decisions/gokapi-storage-e2e-siec.md (storage lokalny zamiast S3,
szyfrowanie E2E, bind tylko na Tailscale)
kb/runbooks/gokapi-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:58:46 +02:00

2.5 KiB

okf type visibility status updated links
0.1 runbook private active 2026-07-09
../services/gokapi.md
../decisions/gokapi-storage-e2e-siec.md

Gokapi — cutover checklist

Cutover checklist (przy deployu — NIE teraz, ten PR to tylko config)

  1. git pull na VPS.
  2. mkdir -p /opt/homelab/data/gokapi/{data,config} na VPS.
  3. cp services/gokapi/env.example services/gokapi/.env, potwierdzić TAILSCALE_BIND_IP (tailscale ip -4 na żywym hoście — powinno być 100.95.58.48).
  4. Cloudflare: rekord A share.okit.pl135.181.153.108, DNS only (szara chmurka, bez proxy Cloudflare — spójne z resztą wpisów okit.pl/kapala.org w tym repo).
  5. Wildcard *.okit.pl na npm@VPSNAJPIERW SPRAWDZIĆ, czy już istnieje. Kontekst: wildcard *.okit.pl DNS-01 jest już zrobiony na npm@PIHA (cert #51, ważny do 2026-10-05, token Cloudflare npm-dns01-all-zones — Zone:DNS:Edit, All zones). Sesja docs/sessions/2026-07-07-okit-wildcard.md zostawiła to jako TODO: "Drugi npm na VPS (outline/joplin/agents tam) — analogiczny wildcard *.okit.pl?" — to jest ten moment, żeby to sprawdzić/zrobić. Jeśli brak: npm@VPS → SSL → New Certificate → Let's Encrypt → domeny *.okit.pl + okit.pl → DNS Challenge → Cloudflare → wkleić token npm-dns01-all-zones (ten sam token co PIHA, All-zones więc obejmuje okit.pl). Pułapka z poprzedniej sesji: literówka .okit.pl zamiast okit.pl w drugim polu dawała Internal Error.
  6. vhost w npm@VPS: nowy Proxy Host, domena share.okit.pl, Forward Hostname/IP = 100.95.58.48 (Tailscale IP VPS, TAILSCALE_BIND_IP), port 53842, SSL = cert wildcard *.okit.pl z kroku 5, Force SSL + HTTP/2.
  7. docker compose -f services/gokapi/docker-compose.yml up -d.
  8. Otworzyć https://share.okit.pl/setup i przejść wizard:
    • Database: SQLite (domyślnie, wbudowane).
    • Webserver: potwierdzić public URL https://share.okit.pl.
    • Authentication: Username/Password, ustawić prawdziwe hasło admina (nie ma tu env vara — to jedyny moment, żeby to zrobić w UI).
    • Storage: Local (nie S3 — decyzja Oskara).
    • Encryption: Level 3 / End-to-End (decyzja Oskara — E2E ON).
  9. Przy każdym uploadzie: ustawiać rozsądny expiry/limit pobrań ręcznie (patrz sekcja Storage wyżej — brak globalnego defaultu w Gokapi).
  10. ./healthcheck.sh z hosta VPS, potem z zewnątrz: curl -I https://share.okit.pl/.