pieterpel
Category

Homelab

Declarative infrastructure, self-hosted services, and the machines that hold them up.

  1. What I publish and what I don't The dotfiles repo is public and the services repo is not. Where that line is, the three reasons something ends up private, and what pushed pieces across it. 2026·10 · 5 min
  2. Every file the same shape What is actually inside one module: the two parts every file has, why the option is the interface, and how a machine ends up being a list of switches. 2026·10 · 4 min
  3. One flake for every machine My dotfiles repo builds a Raspberry Pi, a Linux laptop, two Macs and a VM, and the machines are not special cases. What the flake looks like, why no file imports another, and what that costs. 2026·10 · 5 min
  4. From .bashrc to Nix The same job done twice: aliases and shell config as loose files, and then the same thing in my repo. For people who keep dotfiles in git and have never touched Nix. 2026·09 · 5 min
  5. Run the toy like prod A headless console fails silently. Its logs and metrics ship to the same Grafana as the server, so a dead service becomes a Telegram message instead of a mystery. 2026·07 · 7 min
  6. Saves follow you Saves and savestates are written to a store on the VM, over the tailnet and conflict-aware. The console holds nothing you would lose, and nothing goes to a third party. 2026·07 · 6 min
  7. The library lives elsewhere The VM owns the ROMs, the metadata and the box art. The console mirrors that library onto its own disk, so a rebuild restores everything and a game never waits on the network to load. 2026·07 · 6 min
  8. It has to feel like a console Installing RetroArch gets you a computer with an emulator on it. The console is everything between the power coming on and the first game starting. 2026·07 · 8 min
  9. The whole picture: a Pi, a Hetzner box, and a tailnet A retro machine shouldn't be a pile of hand-edited configs you're afraid to touch. Here's the system I built so mine rebuilds itself. 2026·07 · 4 min