Centralize the configuration of your immutable NixOS machines
My personal homelab infrastructure, fully managed with NixOS and Clan. This repository contains all configurations for my servers, desktops, and network devices.
Home | All homelab features | Public Server | Grafana Dashboard
---
What is this?
This is a complete NixOS homelab setup that manages:
- Servers: Public VPS (Hetzner, Infomaniak), physical servers, Raspberry Pi
- Desktops: Personal laptops and workstations
Everything is declarative, reproducible, and version-controlled whenever possible.
Why Clan?
I’m using Clan to simplify infrastructure management:
Backbone of independent infrastructure
Or as I like to say:
Kill the cloud, build your darkcloud ☁️
→ Learn more about Clan and why I use it
Key benefits
- Simple host management: Easy inventory system
- Automatic secrets: Built-in secret generation and management
- Backup made easy: Integrated backup solution
- Declarative: Everything in code, no manual steps
🛠️ Deployment Strategy
I follow a hybrid approach:
- NixOS services first: Most applications run as native NixOS services
- Podman when needed: Some apps use containers to:
- Use plugins or features not well-supported in NixOS (e.g., DokuWiki)
- Avoid service interruptions during system updates
- Maintain stability during version upgrades
- Use plugins or features not well-supported in NixOS (e.g., DokuWiki)
This gives me the best of both worlds: NixOS reproducibility with container flexibility.
🔐 Disk Encryption
Disk encryption is enabled whenever possible across the homelab. It is especially important on laptops because they are mobile devices and therefore more exposed to loss or theft. The same principle also applies to servers, since a stolen machine may still contain sensitive data.
constellation is the main exception to this rule. It is a critical private server and provides core services such as DNS ad blocking for the local network. After a power outage, it must be able to boot automatically without requiring a manual passphrase entry.
📦 Services & Applications
All Available homelab features:
💻 Desktop Environment
My workstations run a customized NixOS setup with i3 window manager and various productivity tools.
Desktop Applications
| Logo | Application | Description |
|---|---|---|
| borgbackup | Deduplication backup tool | |
| Firefox | Web browser | |
| Gimp | Raster graphics editor | |
| i3 | Tiling window manager | |
| Inkscape | Vector graphics editor | |
| LibreOffice | Office suite | |
| Meld | Visual diff tool | |
| Navi | Interactive cheatsheet tool | |
| Neovim | VIDE - My customized Neovim config |
Floating TUI Panels
Quick access to system controls via i3 floating terminals:
🌐 Infrastructure
🚀 Houston Server
My main public VPS running on Hetzner Cloud (CX32: 4 vCPU, 8GB RAM, 80GB SSD).
What it does:
- 🔐 Authentication Hub: Authelia + LLDAP for SSO across all services
- 📊 Full Observability Stack: Grafana, VictoriaMetrics, Telegraf, Vector
- 📱 Self-Hosted Apps: DokuWiki, Linkding, Miniflux, Shaarli, and more
→ See complete service list and details
💻 Gagarin Workstation
My main desktop workstation for daily development and productivity.
Setup:
- 🪟 i3 Tiling WM: Efficient workspace management with custom keybindings
- 🛠️ Full Dev Environment: VIDE (Neovim), VS Code, Git, Docker, and more
- 🎨 Creative Tools: GIMP, Inkscape, LibreOffice
- ⚙️ System Management: TUI panels for quick access to system controls
→ See complete configuration and tools
All Hosts
Complete list of hosts in the homelab (auto-generated with just doc-update):
| Logo | Name | OS | Description |
|---|---|---|---|
| box (192.168.0.1) | Sagem | SFR internet box | |
| router-living (192.168.254.254) | MikroTik | Livingroom mikrotik router | |
| router-ladbedroom (192.168.254.253) | MikroTik | Bedroom mikrotik router | |
| router-homeoffice (192.168.254.252) | MikroTik | Office mikrotik router | |
| sadhome (192.168.254.200) | NixOS | Stephanie’s laptop | |
| rpi40 (192.168.254.101) | NixOS | The RPI 4 server | |
| bootstore (192.168.254.100) | NixOS | HP Microserver N40L server | |
| b4d14 (192.168.254.124) | NixOS | Dell XPS 9560 Latop | |
| badxps (192.168.254.114) | NixOS | Dell XPS 9570 Latop | |
| vm-test (127.0.0.1) | NixOS | qemu VM (SSH on port 2222) | |
| cab1e (84.234.31.97) | NixOS | Wireguard VPN anonymizer server | |
| houston (91.99.130.127) | NixOS | Main public server | |
| gagarin (192.168.254.147) | NixOS | My main desktop workstation |
Network Topology
Common Commands
❤️ Thanks
A big thank to the contributors of OpenSource projects in particular:
- clan project Simplest way to re-enter independent computing with our framework
- doctor-cluster-config from German TUM School of Computation
- Mic92 and for his some nix contributions
- Misterio77 and for his some nix contributions
- longerHV nix configuration file
- wikipedia for logos inventories
Summary
badele’s NixOS homelab + dotfiles (528 stars, GPL-3.0, Nix): everything declarative via NixOS + Clan — Hetzner/Infomaniak VPSes, physical servers, Raspberry Pis, desktops; public Grafana attack dashboard.
Learnings
- The ‘Kill the cloud, build your darkcloud’ school: immutable machines, centralized config, Clan for inventory + automatic secrets. Third school in Homelabs — Nix instead of GitOps/K8s.
Gotchas
- (none yet)
Hands-on
(research only)





