homelab-codex-ws/services/kb-site
oskar db81cb15d3 feat(kb-site): noindex + robots.txt + obscure subdomain jako domyslny base-url
Warstwa "nie daj sie przypadkiem znalezc" dla publicznej wystawki KB:

- gen_pages.py: <meta name="robots" content="noindex, nofollow"> w <head>
  kazdej generowanej strony (page_shell, wiec takze index).
- gen_pages.py: DEFAULT_BASE_URL -> https://kb-e2a24af3.okit.pl. Slug musi
  zgadzac sie z rekordem DNS i vhostem w npm@PIHA (runbook kb-site-deploy).
- services/kb-site: static/robots.txt (Disallow: /) montowany ro na
  /usr/share/nginx/html/robots.txt. Plik nie jest dokumentem KB, wiec jedzie
  z repo, a nie z wolumenu podmienianego przy kazdej publikacji.
- kb/services/kb-site.md: sekcja "Access" — token w query paramie na warstwie
  nginx/NPM (sekret zyje tylko w NPM, nie w repo) + obscure subdomain +
  noindex. Explicit: to obscurity, nie kontrola dostepu — token w URL laduje
  w access logach, historii przegladarki i naglowku Referer.

Bramka publikacji bez zmian: gen_pages.py --check exit 0 (22 wyciszone
whitelista, jak dotad).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 13:08:13 +02:00
..
static feat(kb-site): noindex + robots.txt + obscure subdomain jako domyslny base-url 2026-08-05 13:08:13 +02:00
docker-compose.yml feat(kb-site): noindex + robots.txt + obscure subdomain jako domyslny base-url 2026-08-05 13:08:13 +02:00
env.example feat(kb-site): serwis nginx na PIHA + manifesty (wzorzec narty27) 2026-08-04 17:59:05 +02:00
healthcheck.sh feat(kb-site): serwis nginx na PIHA + manifesty (wzorzec narty27) 2026-08-04 17:59:05 +02:00
README.md fix(kb-site): dolacz do istniejacej sieci proxy zamiast tworzyc wlasna 2026-08-04 21:28:43 +02:00
service.yaml feat(kb-site): serwis nginx na PIHA + manifesty (wzorzec narty27) 2026-08-04 17:59:05 +02:00

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.

Sieć

Stack nie tworzy własnej sieci — dołącza do istniejącego bridge'a proxy na PIHA (external: true). Powód: Docker na PIHA wyczerpał domyślne pule adresowe (all predefined address pools have been fully subnetted), więc kolejny kb-site_default nie może powstać.

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 do kontenera po opublikowanym porcie hosta 8250.

Dokumentacja: kb/services/kb-site.md