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>
63 lines
1.9 KiB
YAML
63 lines
1.9 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: apps
|
|
kind: lxc
|
|
os: linux
|
|
role: docker-apps
|
|
state: active
|
|
host: hubris
|
|
pve_id: 105
|
|
lan_ip: 192.168.8.205
|
|
mesh:
|
|
tailscale:
|
|
ip: 100.121.171.122
|
|
fqdn: apps
|
|
mesh_globals:
|
|
primary: netbird
|
|
accepted:
|
|
- netbird
|
|
- tailscale
|
|
mounts:
|
|
- /mnt/library
|
|
public_hosts:
|
|
- artifacto.hubris.network
|
|
runs:
|
|
- artifacto
|
|
- plantuml
|
|
- homelab-mcp
|
|
- secrets-issuance
|
|
- artifacto
|
|
- homelab_mcp
|
|
- secrets_issuance
|
|
services_hosted:
|
|
- name: artifacto
|
|
backend: apps
|
|
url: https://artifacto.hubris.network
|
|
doc_page: knowledge/wiki/containers/105-apps.md
|
|
config_repo: dtoro/Artifacto
|
|
- name: homelab_mcp
|
|
backend: apps
|
|
port: 9810
|
|
systemd_unit: homelab-mcp
|
|
public_host: mcp.hubris.network
|
|
endpoint: https://mcp.hubris.network/mcp
|
|
doc_page: knowledge/wiki/infrastructure/homelab-context.md
|
|
config_repo: dtoro/Homelab-Docs
|
|
note: MCP server. Read-only context + management. Reachable on the LAN via Caddy and from off-LAN via
|
|
Netbird (192.168.8.0/24 is a network resource routed through hubris).
|
|
risk_notes: "agents' primary read surface \u2014 outage degrades every agent to grepping the clone"
|
|
- name: secrets_issuance
|
|
backend: apps
|
|
port: 9820
|
|
systemd_unit: secrets-issuance
|
|
public_host: secrets.hubris.network
|
|
endpoint: https://secrets.hubris.network/issue
|
|
doc_page: operations/agent-enrollment.md
|
|
config_repo: dtoro/Homelab-Docs
|
|
note: Issues per-client age private keys. Gated at source-IP layer (mesh + LAN subnets in MESH_SUBNETS).
|
|
risk_notes: "identity issuance \u2014 any change is security-sensitive; key operations are destructive-class"
|
|
age_pubkey: age1duyl8mkpgu80uv934dy8q7enqjms6yvdz264hme8uryuxmvvqesq6rusq0
|
|
mcp_endpoint: https://mcp.hubris.network/mcp
|
|
secrets_issuance_endpoint: https://secrets.hubris.network/issue
|