🏑Home

  • jonpulsifer/infra

  • Living documentation for a homelab managed entirely as code: NixOS bare metal, two Kubernetes clusters, an OpenTofu-managed cloud and network fabric, and GitOps-driven deployments. The source of truth is the infra repository; this wiki is its docs/ Logseq graph, published on every merge to main.

  • Start here

  • The stack in one breath

    • Bare metal β€” Architecture/NixOS configuration for every host, deployed with nixos-rebuild and kept honest by auto-upgrades from main.

    • Kubernetes β€” two fully capable clusters, folly on-site and offsite at the remote site, reconciled by FluxCD. See Architecture/Kubernetes.

    • Cloud and network β€” UniFi, Cloudflare, Tailscale, GCP and Google Workspace under Architecture/Terraform, with applies gated through Atlantis. The network fabric itself is Architecture/Networking.

    • Applications β€” first-party services, packages and OCI images, described in Architecture/Applications.

    • Everything ships the same way: open a PR and let the operators apply it. See Architecture/GitOps.

  • House rules

    • Author desired state in git. Never mutate live infrastructure by hand.

    • Network facts come from the cluster-topology single source of truth. Reference it; never copy values out of it.

    • Secrets are SOPS-encrypted in the repository. This site is public β€” nothing decrypted ever lands here. See Architecture/Secrets and PKI.

  • Editing

    • These pages are the docs/ directory of the repo. Editing is a normal PR; merging to main publishes to wiki.lolwtf.ca.

    • Pages are Logseq outline markdown: key:: value properties at the top, every block starts with - , nesting is tabs, and a / in a page name is ___ in the filename.

    • The renderer supports outline text, wiki-style page links, properties, #tags, tables and code fences β€” not block refs, embeds or queries. Extend apps/wiki/build.ts before reaching for those.

    • Write in the present tense about what is true today. Git history is the record of what changed; these pages are not.