Skip to content

About

What devhome is

A self-hosted homelab built to practice and document the same platform-engineering patterns used in production enterprise environments: infrastructure as code (Terraform/Packer), configuration management (Ansible), GitOps delivery (ArgoCD), fleet management (Rancher), centralized secrets (Vault), and a hybrid connection to Azure (Arc, private AKS).

Why this documentation exists

Homelab knowledge is easy to lose — a routing workaround, a DHCP quirk, a script that silently swallows an error for months — the moment nobody remembers why something was done a certain way. This site is a deliberate attempt to keep the why, not just the how, attached to every non-obvious decision, so the lab (and anyone setting up something similar) doesn't have to re-derive hard-won lessons from scratch.

How to update this site

Content lives under docs/, organized by subsystem. Navigation order and grouping is controlled entirely by mkdocs.yaml's nav: block — adding a file under docs/ doesn't make it appear in the site unless it's also added there.

pip install -r mkdocs_requirements.txt
mkdocs serve       # live preview at http://127.0.0.1:8000

Self-hosted as a Docker container on truenas-dr — see the README in config/truenas/compose/devhome-docs/docs/ for the deploy command and why it lives on port 8443 rather than 443.

Relationship to the main devhome repo

This site documents the lab; it does not contain the lab's actual Terraform, Ansible, or Kubernetes manifests — those live in the devhome repo. Several pages here link directly to specific files/runbooks in that repo (e.g. config/truenas/asymmetric-routing-fix.md, k8s/dke-mgmt/node-ip-change-runbook.md) as the canonical, most-detailed source — this site summarizes and cross-links rather than duplicating them wholesale, so there's one source of truth per topic, not two that can drift apart.

Where the deeper history lives

Beyond this site and the devhome repo itself, there's a third source: a persistent, per-topic memory store (the devhome-memory MCP server — a small FastMCP server, itself running as a Docker container on truenas-dr, storing one markdown file per lesson learned) that exists specifically so operational knowledge survives a repo relocation or a long gap between sessions. It predates and outlives any single repo location — devhome itself was a from-scratch relocation of an earlier repo (devhome-gitops) that had to be abandoned because secrets were committed to its git history (see Vault Overview), and the memory store carried straight through that move unaffected. A large share of this site's more detailed troubleshooting content (the Supervisor/WCP operations page in particular) was written directly from that store.