Problem: node and cross-cutting narratives lived at the repo root
(containers/, vms/, infrastructure/, host .md files), interleaved with the
machine-readable substrate.
Change:
- Move containers/ -> knowledge/wiki/containers/, vms/ -> knowledge/wiki/vms/,
infrastructure/ -> knowledge/wiki/infrastructure/, hosts/{hubris,strong}.md ->
knowledge/wiki/hosts/, infrastructure/references/ -> knowledge/sources/references/,
GLOSSARY.md -> knowledge/GLOSSARY.md.
- Add knowledge/{index.md,log.md,sources/index.md} scaffolding.
- Rewrite all relative links repo-wide via a path-resolving mapper (inbound +
outbound + between-moved-files), including .hermes/, runbooks, operations,
investigations, plans, README, AGENTS.
- Repoint inventory.yaml doc_page fields and regenerate hosts/*.yaml (which
embed doc_page); update oikos/gen-topology.py output path, candidate doc
paths, and footer links; update code-comment doc paths.
Substrate untouched in place: inventory.yaml, hosts/*.yaml (regenerated,
idempotent), oikos/ code, mcp/, secrets/, bin/.
Verification:
- Logical broken-link set identical to pre-move baseline (net 128 -> 127; the
topology regen fixed one, introduced none). Remaining are pre-existing refs
to destroyed/archived nodes, out of scope for this move.
- gen-topology.py --check exit 0 (in sync); cards carry knowledge/wiki/ doc paths.
- build_host_files.py idempotent; all inventory doc_page targets resolve.
- MCP contract verified: get_page/search_docs/get_changelog resolve moved pages.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.8 KiB
YAML
43 lines
1.8 KiB
YAML
# Generated by mcp/build_host_files.py from inventory.yaml.
|
|
# Do NOT edit by hand — your changes will be overwritten.
|
|
# Source of truth: ../inventory.yaml
|
|
name: teddycloud
|
|
kind: lxc
|
|
os: linux
|
|
role: teddycloud
|
|
state: active
|
|
host: hubris
|
|
pve_id: 131
|
|
lan_ip: 192.168.8.150
|
|
mesh_globals:
|
|
primary: netbird
|
|
accepted:
|
|
- netbird
|
|
- tailscale
|
|
mounts:
|
|
- /mnt/library
|
|
public_host: teddy.hubris.network
|
|
runs:
|
|
- teddycloud
|
|
services_hosted:
|
|
- name: teddycloud
|
|
url: https://teddy.hubris.network
|
|
backend: teddycloud
|
|
doc_page: knowledge/wiki/containers/131-teddycloud.md
|
|
note: self-hosted TeddyCloud (Toniebox cloud reimplementation), docker compose
|
|
risk_notes: "no Caddy forward-auth gate (unlike sab.hubris.network on the same Caddyfile) \u2014 reachable\
|
|
\ to anyone on the LAN/mesh who can resolve teddy.hubris.network; undocumented in inventory.yaml until\
|
|
\ 2026-07-06 (drift-caught)"
|
|
notes:
|
|
- Docker host for TeddyCloud (ghcr.io/toniebox-reverse-engineering/teddycloud), a self-hosted reimplementation
|
|
of the Toniebox cloud backend. Debian 12 (bookworm).
|
|
- 1 core / 1 GiB RAM / 512 MiB swap / 16 GiB rootfs (local-lvm).
|
|
- "Predates the client-enrollment convention \u2014 undocumented in inventory.yaml until 2026-07-06, when\
|
|
\ Oikos's drift detector (oikos/drift.py) caught pve_id 131 live on hubris (`pct list`) with no inventory\
|
|
\ entry. Static IP assigned 2026-07-05 during the strong migration (was picking up 192.168.8.243 via\
|
|
\ DHCP before that \u2014 see hosts/strong.md's 2026-07-05 changelog)."
|
|
- "No age_pubkey / homelab-context enrollment \u2014 not a homelab CLI client, just a docker-compose app\
|
|
\ container. Not a required follow-up unless it needs secrets."
|
|
mcp_endpoint: https://mcp.hubris.network/mcp
|
|
secrets_issuance_endpoint: https://secrets.hubris.network/issue
|