From 67e49a095209f807bf1e2f68440bf5c87eba8d78 Mon Sep 17 00:00:00 2001 From: oskar Date: Wed, 5 Aug 2026 12:34:13 +0200 Subject: [PATCH] docs(kb-site): przepisz nieaktualne kb.okit.pl na kb-e2a24af3.okit.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dociagniecie do zmiany DEFAULT_BASE_URL z 24afb49 — po niej repo w szesciu miejscach dalej podawalo stary adres. - kb/runbooks/kb-site-deploy.md: wszystkie wystapienia + rekord Cloudflare (Name: kb -> kb-e2a24af3). Runbook jest visibility: private, wiec slug moze stac wprost. - services/kb-site/{README.md,service.yaml,env.example,docker-compose.yml} - hosts/piha/services.yaml: komentarz przy exposure kb/services/kb-site.md swiadomie nietkniety — dokument publiczny, slug tam nie wchodzi (opisuje adres jako "non-obvious subdomain"). check_okf.py exit 0, gen_pages.py --check exit 0. Co-Authored-By: Claude Opus 5 (1M context) --- hosts/piha/services.yaml | 2 +- kb/runbooks/kb-site-deploy.md | 30 ++++++++++++++--------------- services/kb-site/README.md | 4 ++-- services/kb-site/docker-compose.yml | 2 +- services/kb-site/env.example | 2 +- services/kb-site/service.yaml | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/hosts/piha/services.yaml b/hosts/piha/services.yaml index 1865d47..2a5c918 100644 --- a/hosts/piha/services.yaml +++ b/hosts/piha/services.yaml @@ -168,7 +168,7 @@ services: kb-site: role: static-html-host # public KB slice generated by scripts/kb/gen_pages.py deployment_model: docker-compose - exposure: public # via npm@PIHA vhost kb.okit.pl; container binds LAN :8250 + exposure: public # via npm@PIHA vhost kb-e2a24af3.okit.pl; container binds LAN :8250 offline_required: false depends_on: local: [] diff --git a/kb/runbooks/kb-site-deploy.md b/kb/runbooks/kb-site-deploy.md index e95bfb2..3befba6 100644 --- a/kb/runbooks/kb-site-deploy.md +++ b/kb/runbooks/kb-site-deploy.md @@ -3,17 +3,17 @@ okf: "0.1" type: runbook visibility: private status: active -updated: 2026-08-04 +updated: 2026-08-05 links: - ../services/kb-site.md - ./npm-api.md - ../phases/okit-cloudflare.md --- -# kb-site — deploy, publikacja treści, ingress (kb.okit.pl) +# kb-site — deploy, publikacja treści, ingress (kb-e2a24af3.okit.pl) Serwis: `services/kb-site/` (nginx:alpine na PIHA, host port **8250**). -Generator: `scripts/kb/gen_pages.py`. Publiczny adres: `https://kb.okit.pl`. +Generator: `scripts/kb/gen_pages.py`. Publiczny adres: `https://kb-e2a24af3.okit.pl`. Kolejność ma znaczenie: **DNS → NPM host → cert**. Certyfikat Let's Encrypt leci challenge'em HTTP-01, więc rekord A musi już wskazywać na łącze domowe, @@ -57,7 +57,7 @@ docker volume ls | grep kb-site # kb-site_kb-site_content Generujemy w checkoucie repo, na węźle z którego pracujesz — nie na PIHA. ```bash -python3 scripts/kb/gen_pages.py --base-url https://kb.okit.pl +python3 scripts/kb/gen_pages.py --base-url https://kb-e2a24af3.okit.pl python3 scripts/kb/gen_pages.py --check echo $? # 0 = czysto, 1 = trafienia ``` @@ -130,7 +130,7 @@ curl -sI http://192.168.31.5:8250/index.html | head -1 ``` Type: A -Name: kb +Name: kb-e2a24af3 Content: # ten sam, co ma vikunja.okit.pl Proxy: DNS only (szara chmurka) TTL: Auto @@ -144,13 +144,13 @@ a nie na krawędź Cloudflare. Włączenie proxy to osobna decyzja, po tym jak c już działa. Split-horizon (patrz `kb/phases/okit-cloudflare.md`): w Pi-hole na PIHA dodaj -Local DNS Record `kb.okit.pl → 192.168.31.5`, żeby klienci w LAN szli prosto do +Local DNS Record `kb-e2a24af3.okit.pl → 192.168.31.5`, żeby klienci w LAN szli prosto do npm, a nie przez hairpin NAT na routerze. Sprawdzenie propagacji (z hosta poza LAN albo przez publiczny resolver): ```bash -dig +short kb.okit.pl @1.1.1.1 +dig +short kb-e2a24af3.okit.pl @1.1.1.1 ``` --- @@ -161,15 +161,15 @@ Wszystkie komendy `npm_api.py` są **dry-run domyślnie**; realna zmiana dopiero z `--apply`. Puść najpierw bez `--apply` i przeczytaj payload. ```bash -# 5a. host: kb.okit.pl -> PIHA:8250 +# 5a. host: kb-e2a24af3.okit.pl -> PIHA:8250 python3 scripts/npm/npm_api.py --npm piha create-host \ - --domain kb.okit.pl \ + --domain kb-e2a24af3.okit.pl \ --forward-host 192.168.31.5 --forward-port 8250 \ --block-exploits --http2-support # ...i to samo z --apply # 5b. cert Let's Encrypt (HTTP-01 — wymaga działającego kroku 4 i 5a) -python3 scripts/npm/npm_api.py --npm piha create-cert --domain kb.okit.pl --apply +python3 scripts/npm/npm_api.py --npm piha create-cert --domain kb-e2a24af3.okit.pl --apply # 5c. podepnij cert pod host i wymuś HTTPS python3 scripts/npm/npm_api.py --npm piha list-hosts # weź HOST_ID @@ -190,12 +190,12 @@ wiersz certyfikatu (szczegóły w `kb/runbooks/npm-api.md`). ## 6. Weryfikacja końcowa ```bash -curl -sI https://kb.okit.pl/ | head -1 # 200 -curl -s https://kb.okit.pl/ | grep -c 'class="cards"' # spis jest -curl -s https://kb.okit.pl/subsystems/observer.html | tail -5 # stopka: data + commit +curl -sI https://kb-e2a24af3.okit.pl/ | head -1 # 200 +curl -s https://kb-e2a24af3.okit.pl/ | grep -c 'class="cards"' # spis jest +curl -s https://kb-e2a24af3.okit.pl/subsystems/observer.html | tail -5 # stopka: data + commit ``` -W przeglądarce: `https://kb.okit.pl` — spis pogrupowany per type, kłódka bez +W przeglądarce: `https://kb-e2a24af3.okit.pl` — spis pogrupowany per type, kłódka bez ostrzeżeń, wejście w dowolną kartę, powrót linkiem „All documents". Kontrola treści (ręczna, jednorazowa po pierwszej publikacji): przejrzyj spis @@ -209,7 +209,7 @@ pilnuje pola `visibility`, ale to człowiek decyduje, co dostaje `public`. Po każdej zmianie w `kb/**/*.md`, która dotyczy dokumentów `public`: ```bash -python3 scripts/kb/gen_pages.py --base-url https://kb.okit.pl \ +python3 scripts/kb/gen_pages.py --base-url https://kb-e2a24af3.okit.pl \ && python3 scripts/kb/gen_pages.py --check \ && tar -czf /tmp/kb-site.tgz -C build/kb-site . \ && scp /tmp/kb-site.tgz piha:/tmp/kb-site.tgz \ diff --git a/services/kb-site/README.md b/services/kb-site/README.md index 7051ec1..0800778 100644 --- a/services/kb-site/README.md +++ b/services/kb-site/README.md @@ -1,6 +1,6 @@ # kb-site -Public slice of the knowledge base (`kb.okit.pl`) — static HTML generated from `kb/**/*.md` by `scripts/kb/gen_pages.py`, served by nginx on PIHA. +Public slice of the knowledge base (`kb-e2a24af3.okit.pl`) — static HTML generated from `kb/**/*.md` by `scripts/kb/gen_pages.py`, served by nginx on PIHA. ## Sieć @@ -15,7 +15,7 @@ Warunek wstępny deployu — sieć musi już istnieć na hoście: docker network ls | grep -w proxy # brak wyniku => docker network create proxy ``` -Ruch publiczny i tak nie idzie przez tę sieć: npm@PIHA (vhost `kb.okit.pl`) trafia +Ruch publiczny i tak nie idzie przez tę sieć: npm@PIHA (vhost `kb-e2a24af3.okit.pl`) trafia do kontenera po opublikowanym porcie hosta `8250`. Dokumentacja: [kb/services/kb-site.md](../../kb/services/kb-site.md) diff --git a/services/kb-site/docker-compose.yml b/services/kb-site/docker-compose.yml index d30af27..660c97e 100644 --- a/services/kb-site/docker-compose.yml +++ b/services/kb-site/docker-compose.yml @@ -7,7 +7,7 @@ services: # PIHA 82x0 static-HTTP block: 8210 paperless, 8220 nextcloud, # 8230 kb-query, 8240 narty27 -> 8250 is the next free slot. # Publicly the site is reached only through the npm@PIHA vhost - # kb.okit.pl; this bind is the proxy's upstream. + # kb-e2a24af3.okit.pl; this bind is the proxy's upstream. - "8250:80" volumes: # Generated output of scripts/kb/gen_pages.py — never committed, never diff --git a/services/kb-site/env.example b/services/kb-site/env.example index 85022ed..5a7759b 100644 --- a/services/kb-site/env.example +++ b/services/kb-site/env.example @@ -7,4 +7,4 @@ # copy to .env. # # The public address is a generator argument, not an env var: -# python3 scripts/kb/gen_pages.py --base-url https://kb.okit.pl +# python3 scripts/kb/gen_pages.py --base-url https://kb-e2a24af3.okit.pl diff --git a/services/kb-site/service.yaml b/services/kb-site/service.yaml index 5cbdc84..00fbacc 100644 --- a/services/kb-site/service.yaml +++ b/services/kb-site/service.yaml @@ -2,7 +2,7 @@ service: name: kb-site owner_node: piha role: static-html-host # public slice of the KB, rendered by scripts/kb/gen_pages.py - exposure: public # public via npm@PIHA (kb.okit.pl). The container itself binds + exposure: public # public via npm@PIHA (kb-e2a24af3.okit.pl). The container itself binds # 8250 on the LAN; npm is the sole public entry point. dependencies: [] # nginx serving a local volume — nothing else required at runtime ports: