Overview
This site documents the whole homelab: what hardware exists, how the network is wired, and what runs where — with the reasoning behind each choice.
Layout
Section titled “Layout”- Hosts — one page per node: hardware, OS/kernel, role, addresses, storage, known quirks.
- Network — the WireGuard mesh, anycast, DNS, Cloudflare tunnels, and the k3s load-balancer behaviour that makes mesh addresses answer on 80/443.
- Stack — what lives in k3s versus docker compose, and why.
- Services — one page per service: image, config path, ports, volumes, dependencies, backups, alerting, and how to restart it safely.
- Generated inventory — machine-collected facts (containers, systemd units, ports, versions),
refreshed by
scripts/inventory.mjsand committed so every change is reviewable.
Reading conventions
Section titled “Reading conventions”- Anything under Generated inventory is collected by a script, not typed: it carries the collection timestamp and the commit it was generated at.
- Everything else is hand-written and reviewed.
- Facts that are time-sensitive record when they were last verified.
- No secrets, tokens, or credentials are ever stored here.