Home labs, by their very definition, are all about experimenting with different services and gaining new insights into the server side of computing. But in my experience, the learning part mostly comes from accidentally messing things up, troubleshooting the source of the error(s), and restoring the home lab to its healthy state – or starting from scratch while creating a mental memo to never repeat the same mistakes again.
But now that I’ve got an arsenal of containers and virtual machines that neither I nor the other denizens of my house can live without, I can’t afford to be careless with my home lab experiments. Thankfully, I’ve got a handy set of self-hosted services to safeguard my server nodes from their biggest nemesis – my restless brain.
NetBox
To document my network architecture
To this day, network-centric configuration files are the bane of my existence, as a single indentation mistake is all it takes to bring my home lab to its knees. Not to mention, keeping track of all the IP addresses, VLANs, VPN tunnels, routing tables, and other network details is quite a hassle, especially now that I’ve become addicted to turning old machines into server nodes.
Luckily, NetBox serves as a solid (if somewhat complex) documentation tool for my home network. Designed for enterprises and data centers, it’s great for creating detailed records of my network infrastructure and can map every single device in my home lab – including those of the virtual variety.
Trilium Notes
To document everything else
Although NetBox can keep track of the CPU core count, memory, and other non-network metrics of my server nodes, it can’t fulfill my note-taking requirements. And I don’t mean the single line of text I can add to NetBox records for identifying the network components. When I work on my home lab experiments, I often take notes to document the entire process. These can range from simple, concise steps and their associated terminal commands to huge blocks of text for fixing the most obscure errors I’ve encountered while creating the project.
Trilium Notes (previously called TriliumNext before moving back to Trilium this month) was one of the first self-hosted note takers I used when I got into the home lab ecosystem, and it has been a central component of my documentation suite ever since. The Code category is perfect for storing terminal commands as well as YAML, JSON, and Python snippets, while the Excalidraw integration and Mermaid diagrams are great for documenting everything in a pictorial format. Throw in the Note Maps and the nearly-instantaneous search functionality, and it's easy to see why I hold Trilium Notes in such high regard.
Vaultwarden
For the API keys and passwords I create almost every day
Vaultwarden may not seem all that useful for home lab maintenance, but hear me out for a second. Long API tokens and complex access tokens go hand-in-hand with self-hosted services and virtualization platforms, as you’ll often use these codes for authentication when accessing these tools. While certain services like Gotify let you access the tokens as many times as you want, others like Proxmox only let you view the codes once you create them for security purposes.
That's when a password management utility like Vaultwarden becomes extremely useful for storing API keys. Plus, I often tinker with different self-hosted utilities every day, many of which require their own user credentials – and I can safely tuck them away inside a Vaultwarden container.
Uptime Kuma
Hooked up to a Gotify server
Monitoring all the containers, virtual machines, and server platforms in my home lab can be a bit of a challenge. However, keeping a weather eye on the uptime of my servers is just as important, so I can start troubleshooting if (or rather, when) issues arise.
Uptime Kuma is a neat monitoring tool that sends regular heartbeat signals to my self-hosted services to track their operational status. Aside from uptime, this handy tool also checks response times as well as certificate expiry information of my apps and platforms. However, the built-in notification facility is Uptime Kuma’s standout feature, as it allows the monitoring hub to send alerts as soon as a service paired to it goes down. I use Uptime Kuma with a Gotify instance for a completely self-hosted monitoring-cum-notification setup.
Proxmox Backup Server
I’ve paired it with a NAS and an off-site cloud
I’ve been a fan of Proxmox for years, and most of my server nodes rely on this all-powerful virtualization platform for running containers and VMs. While the built-in snapshots and backups are fairly useful, I consider Proxmox Backup Server borderline essential for my home lab. That’s because PBS supports incremental updates and deduplication to save disk space when creating backups. On top of that, its granular restore functionality lets me selectively recover files, thereby speeding up recovery operations when things go awry.
I’ve hooked up my Proxmox Backup Server with my TrueNAS Scale storage server to safeguard my precious LXC and VM snapshots. Since I follow the 3-2-1 backup rule like a holy grail, I’ve also linked this dataset with my Google Drive account, though I plan to switch to a dedicated Backblaze cloud in the future.
Plenty of other ways to protect my home lab
Aside from these useful services, I rely on nested virtualization while working on potentially disastrous home lab experiments. For the uninitiated, it’s a facility that lets you use virtual machines as hosts for other VMs, essentially creating an experimental environment within an already virtualized system. While it requires more processing power and has a higher performance overhead, I suggest looking into nested virtualization if you want to tinker with DIY ideas that have a high possibility of breaking your server.
