- Full Obsidian vault content - Host configs (ice, grizzley, ubuntu, proxmox, truenas, panda, hyte) - Media stack documentation - Traefik HA setup - Automation scripts - Bachelor party planning
6.9 KiB
title, created, updated, type, tags
| title | created | updated | type | tags | ||
|---|---|---|---|---|---|---|
| Homelab Wiki Schema | 2026-04-28 | 2026-04-28 | meta |
|
Wiki Schema
This wiki follows Karpathy's LLM Wiki pattern — a persistent, compounding knowledge base as interlinked markdown files. Unlike RAG, knowledge is compiled once and stays current. Cross-references already exist. Contradictions are flagged.
Location: WIKI_PATH env var (defaults to ~/wiki). All hosts point to the Obsidian vault at /home/bear/homelabagentroot/obsidian-vault.
Directory Structure
obsidian-vault/ ← WIKI_PATH for all hosts
├── SCHEMA.md ← This file (schema, conventions)
├── log.md ← Append-only action log (rotate yearly)
├── homelab/
│ ├── entities/ ← Layer 2: host and service entities
│ ├── concepts/ ← Layer 2: concepts, techniques, topics
│ ├── comparisons/ ← Layer 2: side-by-side analyses
│ ├── queries/ ← Layer 2: filed Q&A worth keeping
│ └── raw/ ← Layer 1: immutable source material (optional)
└── [other vault dirs] ← ai-assistant/, automation/, agents/, etc.
Layer 1 — Raw Sources: Immutable source material (docs, configs, articles). The agent reads but never modifies these. Layer 2 — The Wiki: Agent-owned markdown files. Created, updated, and cross-referenced by the agent. Layer 3 — The Schema: This file constrains agent behavior and ensures consistency.
Conventions
- File names: lowercase, hyphens, no spaces (e.g.,
ice.md,hermes-gateway.md) - Wikilinks: Use
[[pagename]]for all internal links. Minimum 2 outbound links per page. - Frontmatter: Required on every wiki page (see below).
- Index: Every new page must appear in
homelab/entities/index.md(for entities) or the relevant section index. - Log: Every action (ingest, create, update, query, lint) must be appended to
homelab/log.md. - Provenance markers: On pages synthesizing 3+ sources, append
^[raw/articles/source-file.md]at paragraph ends to trace claims. - Confidence: Set
confidence: mediumorlowfor opinion-heavy, fast-moving, or single-source claims. Don't markhighunless well-supported. - Contradictions: When new information conflicts with existing content, note both with dates/sources, set
contradictions: [page-slug]in frontmatter, flag for review. - Staleness: Pages not updated in 90+ days with newer source info should be refreshed.
- Page size: Split pages over ~200 lines into sub-topics with cross-links.
- Tags: Use the taxonomy below. Add new tags here before using.
Tag Taxonomy
Hosts
hosts— physical or virtual host machinesrpi— Raspberry Pi hardwarehypervisor— VM/container hypervisors (Proxmox)nas— network-attached storagecontrol-plane— primary control node (ice)edge— edge computing node (grizzley)primary— primary instance of a service (ubuntu as main Docker host)vm— virtual machine workloads
Services
services— software services running on hostsnetworking— network services (Traefik, DNS, VPN)media— media streaming services (Jellyfin, Sonarr, etc.)storage— storage services (S3, NFS, ZFS)sso— identity/SSO servicesidentity— identity and authentication servicesgit— Git hosting and CI/CDai— AI/ML servicesgateway— API/gateway servicesmonitoring— observability stackdocker— Docker containerizationreverse-proxy— reverse proxy services (Traefik)jellyfin— Jellyfin media servertraefik— Traefik ingress controllerubuntu— Ubuntu host servicesproxmox— Proxmox hypervisor servicess3— S3-compatible object storageci-cd— continuous integration and deployment
Smart Home / IoT
iot— Internet of Things devices and infrastructuresmart-home— smart home automation and orchestrationhome-assistant— Home Assistant platformmatter— Matter smart home protocolthread— Thread mesh networking protocolzigbee— Zigbee wireless protocolzigbee-device— individual Zigbee end deviceswifi-device— Wi-Fi connected IoT devicesecosystem— vendor/platform ecosystems (Apple Home, Google Home, Alexa)sensor— sensor devices (motion, door, vibration)actuator— actuators (switches, lights, locks)voice-assistant— voice assistant platforms and deviceshub— smart home hub or coordinator hardwareinventory— device inventory and census pagesvlan— VLAN segmentation and network zoningpolicy— formal placement/security/operational policies
Techniques & Roles
concept— architectural patterns, techniquesrunbook— operational procedurescomparison— feature/comparison analysesautomation— automation scripts and workflowsalerting— alerting and notification systemsagents— AI agent configurationswatchdog— watchdog/monitoring patternsha— high availability configurationscli— command-line tools and interfacesscripts— shell/python scriptstools— development and operations toolshomelab— homelab-specific infrastructure patterns
Meta
meta— wiki housekeeping (schema, log, index)
Frontmatter (Required)
---
title: Page Title
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query | summary | meta
tags: [from taxonomy above]
sources: [raw/articles/source-name.md] # optional, list source files
confidence: high | medium | low # optional
contested: true # optional, set when contradictions exist
contradictions: [page-slug] # optional
---
Entity Pages
One page per notable host or service. Include:
- Role, IP/URL, host location
- Overview of what it is/does
- Key facts and relationships
- Troubleshooting notes (known issues, gotchas)
- Source references
Concept Pages
One page per architectural pattern, technique, or topic. Include:
- Definition/explanation
- Current state of knowledge
- Open questions or debates
- Related concepts via
[[wikilinks]]
Update Policy
When new information conflicts with existing content:
- Check dates — newer sources generally supersede older
- If genuinely contradictory, note both positions with dates and sources
- Mark
contradictions: [page-slug]in frontmatter - Flag for user review
Page Thresholds
- Create a page when an entity/concept appears in 2+ sources OR is central to one source
- Add to existing page when a source mentions something already covered
- DON'T create a page for passing mentions, minor details
- Split a page when it exceeds ~200 lines
- Archive a page when fully superseded — move to
_archive/, remove from index