A reproducible NixOSโbased homelab stack.
flake.nix- Entry point, defines toggles and shared module logichosts/- All hardware and machine configurationsvms/- All MicroVM configurationssecrets/- Ageโencrypted secrets for each service
- Ideally, each host acts like a hypervisor, and manages VMs which contain the relevant NixOS service or relevant NixOS Containers.
- Each MicroVM should only handle 1 given service - keep them as separated as possible.
- Secrets are stored in
secrets/, decrypted at runtime withagenix, then shared with KVM. - The shared module defines toggles (
enableDb,enableAuth, etc...) so you can split workloads across machines.
- Harden secrets management (I don't like passing decrypted secrets)
- Fix and clean up SSH (use declarative SSH config aliases instead of
ssh default@192.168.100.4each time) - Improve support for multi-host systems (more
lib.options) - Beg NetBird to approve my PR so I can remove my overlay
- Many