# Sesja 2026-07-07 — okit.pl Faza 1 (wildcard cert) + przepiecie 9 hostow

## Kontekst
Kontynuacja migracji okit.pl 42.pl -> Cloudflare. Faza 0 (strefa) zrobiona wczesniej.
Dzis: Faza 1 (wildcard cert) + przepiecie zywych vhostow.

## Wykonane

### Weryfikacja Fazy 0 (propagacja)
- dig NS okit.pl = dom.ns/katja.ns.cloudflare.com (spropagowane).
- Autorytatywnie (dig @dom.ns.cloudflare.com): rekordy 1:1 z AXFR, poczta OK.
- WAZNE: Pi-hole split-horizon — Local DNS nadpisuje ~15 okit.pl na 192.168.31.5
  (LAN). dig z hosta pokazuje LAN IP, nie Cloudflare. To NIE blad. Cloudflare
  autorytatywny ma poprawne IP. Przy Fazie 2 pamietac o OBU warstwach.

### FAZA 1 — wildcard *.okit.pl
- Nowy token Cloudflare "npm-dns01-all-zones" (Zone:DNS:Edit, All zones — obejmuje
  kapala + okit + przyszle). Stary "Edit zone DNS" byl tylko 1 zone (kapala).
- npm@PIHA: cert *.okit.pl + okit.pl przez Cloudflare DNS-01 (cert #51 w npm).
  Wazny do 2026-10-05, samoodnawialny. Pulapka: literowka ".okit.pl" zamiast
  "okit.pl" dawala Internal Error; propagation 5->30s tez pomaga.

### Przepiecie 9 zywych hostow na wildcard (bulk-SQL)
Metoda: keinos/sqlite3 --user root (brak sqlite3 na hoscie i w kontenerze npm).
- Backup bazy npm: /data/database.sqlite.bak-20260707-2210 (w wolumenie).
- UPDATE proxy_host SET certificate_id=51 WHERE id IN (7,16,3,11,1,6,5,10,20).
- KLUCZOWE: sam UPDATE bazy NIE wystarcza! npm generuje .conf per host ze sciezka
  certu; baza mowi 51 ale nginx laduje stary. Trzeba sed sciezek w .conf + reload:
  sed 's|/live/npm-[0-9]*/|/live/npm-51/|g' na 9 plikach + nginx -t + nginx -s reload.
- Zweryfikowane: openssl pokazuje CN=*.okit.pl do 2026-10-05 dla wszystkich 9.
Przepiete: grafana, home, immich, wiki, pihole, prometheus, zigbee, ngpm, owntracks.

## LEKCJA
Przepinanie certow npm bulk-SQL = DWA kroki (UPDATE bazy + sed .conf + reload),
bo npm nie regeneruje configow z bazy. UI-klik robi to jednym Save (regeneracja).
Przy <15 hostach UI prostsze; bulk oplaca sie dopiero przy duzej skali.
Kontener keinos/sqlite3 --user root do edycji bazy npm (gdy brak sqlite3).

## NIE ruszone (swiadomie)
- forgejo, vikunja, foty, ha, immich.kapala -> juz na *.kapala.org (cert 49)
- owntracks-frontend -> czeka na mesh (Faza 2)
- outline, joplin, agents -> NIE na PIHA! Zyja na VPS-npm (drugi npm do sprawdzenia)

## TODO nastepne sesje
- FAZA 2: mesh/public reorg, owntracks-frontend->mesh, audyt martwych vhostow
  (dysk vault portainer hai audiobooks budget tasmota node-red printer router
  code-server ap slzb hagc ha-embed — 000/502, sprawdzic zywe/usunac).
- Drugi npm na VPS (outline/joplin/agents tam) — analogiczny wildcard *.okit.pl?
- Sprzatanie starych certow okit.pl w npm (npm-2..48) — wygasna same, kosmetyka.
- 9 decyzji Paperless/Nextcloud (DECYZJE-do-podjecia.md) -> deploy modulow 2-5 KB.
