Hi! 👋 This is how I manage my fleet with NixOS, including a self-hosted homelab running many services with SSO, a reverse proxy, monitoring, and automated off-site encrypted backups (see selfhost-nix and compute's architecture). I hope this helps you!
| Host | Platform | Description |
|---|---|---|
| compute | NixOS | Homelab using my selfhost-nix flake |
| laptop | NixOS | Personal workstation |
| inky | Raspberry Pi | Raspberry Pi Zero 2W connected to Inky Impression and speakers |
Layout:
hosts/: per-host configurations (hardware, services, users)modules/: personal NixOS/home-manager modules (theselfhost.*framework lives in selfhost-nix)profiles/: shared opinionated configuration that sets standard options (imported by hosts)packages/: custom packages and scriptslib/: custom helpers and buildersapps/: runnable scripts (installation, post-install)
Key dependencies:
diskofor declarative disk partitioningstylixfor consistent themingsops-nixfor secretsnixos-anywherefor remote installationsselfhost-nixthat abstracts common concerns around self-hosting (Reverse Proxy, OIDC, and Secrets)dotfiles-privateto store private information (SOPS secrets, personal information, and wallpapers)
Not using flake-utils or impermanence intentionally.
Note
This won't build as-is as it depends on dotfiles-private. Let me know if you need help!
Using a personal wrapper to manage both local and remote machines called dot:
dot . s # build, preview changes, and apply to the current host
dot . b # build and preview changes without applying
dot . u # update flake inputs
dot . c # show changelog between last two local profiles
dot compute s # deploy to the compute host remotely
dot compute c # show changelog for the compute hostAI was used from January 2026 onwards, starting with the compute host to learn and iterate faster. I drive the architecture, review and own every line.
Thanks to everyone sharing dotfiles, maintaining the Arch Wiki and NixOS Wiki, and helping in the NixOS community.



