Secrets in git: SOPS + age

Encrypted .env files committed beside the compose files that use them: per-machine keys, per-file recipient rules, the one backup that cannot live inside the lab, and the git-diff habit that catches every near-miss.

February 14, 2026 · 4 min

The GitOps repo: compose, one file per service

A repo layout that scales past 60 services without becoming a junk drawer: the infra/app split, four reusable service-file patterns, and naming conventions that do the remembering for you.

February 1, 2026 · 5 min

Domains & DNS: one canonical domain, many purposes

Domain-per-purpose, two wildcard records that mean you never touch DNS again, and scoped API tokens so no leaked credential can take the whole thing down.

January 18, 2026 · 5 min

A homelab from scratch: what we're building and why

Years of accumulated server cruft, three boxes that each grew their own personality, and the decision to tear it down and rebuild as one git repo. The architecture, the rules, and why.

January 6, 2026 · 6 min