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>
52 lines
2.5 KiB
Markdown
52 lines
2.5 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: runbook
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-07-09
|
|
links:
|
|
- ../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.pl` → `135.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@VPS** — **NAJPIERW 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/`.
|
|
|