homelab-codex-ws/services/kb-site/service.yaml

34 lines
1.4 KiB
YAML
Raw Normal View History

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
# 8250 on the LAN; npm is the sole public entry point.
dependencies: [] # nginx serving a local volume — nothing else required at runtime
ports:
- container: 80
host: 8250
protocol: tcp
healthcheck:
type: http
endpoint: http://127.0.0.1:8250/index.html # content must be loaded first (see runbook)
interval: 30s
timeout: 10s
retries: 5
restart_policy: unless-stopped
persistence:
# Docker named volume kb-site_kb-site_content (compose project prefix), NOT a
# bind under /opt/homelab/data. The content is a pure artifact: regenerate it
# from the repo with scripts/kb/gen_pages.py, no backup job needed.
paths:
- kb-site_kb-site_content
runtime:
config_files: [] # no .env — the port bind is static, no secrets
env_vars: []
content:
# Only kb/ documents with `visibility: public` are published; the generator
# is fail-closed (no frontmatter / no visibility field = private).
generator: scripts/kb/gen_pages.py
leak_check: scripts/kb/gen_pages.py --check # must pass before publishing
source: kb/**/*.md