2026-08-04 14:56:25 +02:00
|
|
|
---
|
|
|
|
|
okf: "0.1"
|
|
|
|
|
type: session-log
|
|
|
|
|
visibility: private
|
|
|
|
|
status: active
|
|
|
|
|
updated: 2026-06-30
|
|
|
|
|
links: []
|
|
|
|
|
---
|
|
|
|
|
|
2026-06-30 16:23:57 +02:00
|
|
|
# 2026-06-30 — Migracja kapala.org → Cloudflare + wildcard DNS-01, HA i Immich na mesh
|
|
|
|
|
|
|
|
|
|
## Cel
|
|
|
|
|
Trwałe rozwiązanie problemu zdalnego dostępu do HA (i innych usług domowych)
|
|
|
|
|
przez Tailscale. Odejście od HTTP-01 per-host (wygasające certy przy mesh DNS)
|
|
|
|
|
na rzecz wildcard cert przez DNS-01.
|
|
|
|
|
|
|
|
|
|
## Co zrobiono
|
|
|
|
|
|
|
|
|
|
### Migracja DNS kapala.org: 42.pl → Cloudflare
|
|
|
|
|
- Eksport strefy z 42.pl (AXFR, 13 rekordów) jako siatka bezpieczeństwa
|
|
|
|
|
- Dodanie kapala.org do Cloudflare (Free), import + ręczne uzupełnienie
|
|
|
|
|
- KRYTYCZNE: CF auto-proxuje rekordy na import — wszystkie A/CNAME
|
|
|
|
|
przełączone na "DNS only" (szara chmurka). DKIM CNAME proxied = zepsuty
|
|
|
|
|
podpis maila. Wszystkie 9 rekordów zweryfikowane 1:1 z eksportem.
|
|
|
|
|
- NS w VipoWer: fns1/fns2.42.pl → dom.ns.cloudflare.com / katja.ns.cloudflare.com
|
|
|
|
|
- Propagacja ~45 min. Mail (Fastmail MX/DKIM/SPF) bez przerwy przez całą migrację.
|
|
|
|
|
|
|
|
|
|
### Wildcard cert DNS-01
|
|
|
|
|
- CF API token (Zone:DNS:Edit, scope kapala.org)
|
|
|
|
|
- NPM → SSL → Let's Encrypt via DNS → Cloudflare → *.kapala.org + kapala.org
|
|
|
|
|
- Cert #49 (npm-49) wydany, auto-renew przez DNS-01 potwierdzony (renew zadziałał)
|
|
|
|
|
- Expires 2026-09-28, odnawia się sam
|
|
|
|
|
|
|
|
|
|
### Usługi przeniesione na kapala.org (mesh-only)
|
|
|
|
|
- ha.kapala.org → 192.168.31.7:8123 (cert wildcard, WS ON)
|
|
|
|
|
- immich.kapala.org → 192.168.31.5:2283 (cert wildcard, WS ON)
|
|
|
|
|
- DNS w CF: rekordy A → 100.108.208.3 (Tailscale PIHA, DNS only/reserved IP)
|
|
|
|
|
|
|
|
|
|
## Bugi rozwiązane
|
|
|
|
|
|
|
|
|
|
### "unrecognized name" na ha.kapala.org mimo dobrego certu (root cause)
|
|
|
|
|
Objaw: cert OK (npm-49), DNS OK, host "Online" w UI, ale curl → TLS
|
|
|
|
|
unrecognized name. Plik proxy_host/4.conf nie istniał.
|
|
|
|
|
Przyczyna: custom Advanced config zawierał `proxy_http_version 1.1;`,
|
|
|
|
|
a NPM dodaje tę dyrektywę SAM przy Websockets Support = ON.
|
|
|
|
|
Duplikat → `nginx -t` odrzucał cały 4.conf → plik się nie generował.
|
|
|
|
|
Diagnoza przez `strings /data/database.sqlite | grep kapala`:
|
|
|
|
|
nginx_err: "proxy_http_version directive is duplicate in 4.conf:68"
|
|
|
|
|
Fix: usunięcie `proxy_http_version 1.1;` z Advanced. Plik się wygenerował.
|
|
|
|
|
|
|
|
|
|
### immich.okit.pl 403 Forbidden (red herring → nie ruszany)
|
|
|
|
|
403 od openresty = Access List "Local" blokuje mesh, NIE cert (cert żył do 9/28).
|
|
|
|
|
Decyzja: zamiast zmieniać Access List — przeniesiono na immich.kapala.org
|
|
|
|
|
(mesh-only, wildcard cert). immich.okit.pl zostaje do migracji okit.pl.
|
|
|
|
|
|
|
|
|
|
## Wzorzec migracji usługi na kapala.org (mesh)
|
|
|
|
|
1. CF: rekord A <usługa> → 100.108.208.3 (DNS only)
|
|
|
|
|
2. NPM proxy host: forward wewn. IP:port, Access List = Publicly Accessible,
|
|
|
|
|
cert *.kapala.org, Advanced PUSTE (zero proxy_http_version!)
|
|
|
|
|
3. Weryfikacja: grep conf (plik istnieje) + curl (cert *.kapala.org + 200/302)
|
|
|
|
|
4. Zmiana URL w apce/kliencie
|
|
|
|
|
|
|
|
|
|
## Stan końcowy
|
|
|
|
|
- ha.kapala.org, immich.kapala.org — działają przez mesh, zielona kłódka
|
|
|
|
|
- Mail kapala.org (Fastmail) — bez przerwy, MX/DKIM/SPF OK
|
|
|
|
|
- Wildcard *.kapala.org — auto-renew DNS-01 potwierdzony
|