homelab-codex-ws/services/narty27/service.yaml
oskar 2e13a7d1bb feat(narty27): statyczny hosting viz.html na PIHA (nginx + named volume)
Nowy serwis services/narty27 — nginx:alpine serwujacy jeden self-contained
plik viz.html z named volume narty27_content (:ro). Port 8240 to nastepny
wolny w bloku 82x0 na PIHA (8210 paperless, 8220 nextcloud, 8230 kb-query).

Content jest personal: zyje wylacznie w volume narty27_narty27_content i w
zrodle na SOLARII (~/narty-2027/saalbach-kb/viz.html). Nigdy w repo, bez
backup joba, bez bindu pod /opt/homelab/data.

Procedura aktualizacji w README uzywa kontenera-pomocnika (alpine z volume
rw), NIE `docker cp` — przy mount :ro docker cp zwraca "mounted volume is
marked read-only", zarowno dla dzialajacego jak i zatrzymanego kontenera
(zweryfikowane empirycznie 2026-07-31). Zapisywane sa dwie kopie tego samego
pliku: viz.html (nazwa kanoniczna) + index.html (zeby golny root dzialal).

Walidacja: docker compose config OK (volume rozwija sie do
narty27_narty27_content), YAML parse OK, bash -n healthcheck.sh OK.
Bez zywego deployu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 16:38:55 +02:00

27 lines
990 B
YAML

service:
name: narty27
owner_node: piha
role: static-html-host # single self-contained viz.html (narty 2027 / Saalbach KB export)
exposure: private # LAN/Tailscale only; no npm vhost, no public ingress
dependencies: [] # nginx serving a local volume — nothing else required
ports:
- container: 80
host: 8240
protocol: tcp
healthcheck:
type: http
endpoint: http://192.168.31.5:8240/viz.html # PIHA LAN IP; content must be loaded first (see README)
interval: 30s
timeout: 10s
retries: 5
restart_policy: unless-stopped
persistence:
# Docker named volume narty27_narty27_content (compose project prefix), NOT
# a bind under /opt/homelab/data. Content is personal, lives only here, and
# is deliberately outside the repo — see README.md.
paths:
- narty27_narty27_content
runtime:
config_files: [] # no .env — the port bind is static, no secrets
env_vars: []