Technology

7 reasons Proxmox is the best OS for your homelab

7 reasons Proxmox is the best OS for your homelab

Starting up a home lab can be a daunting task if you’re doing it for the first time, and knowing the right tools to use can be a challenge in itself. Not that long ago, I was also clueless about this, but I set up my home lab a few months ago now, and I highly recommend it.
Powering my home lab is Proxmox, and if you’re considering starting your own, I highly recommend you choose the same operating system for your machine. Proxmox is a powerful, lightweight, and versatile tool, so let me tell you more about why it’s so great.
It’s extremely lightweight
Proxmox can run on anything
Starting up a home lab means using a lot of containers and/or virtual machines, and the last thing you want is for the host computer to slow down your operations when you’re using those services and VMs. Thankfully, Proxmox is so light it could run on a 2010 potato. It only requires a 64-bit Intel or AMD processor and 2GB of RAM for its basic services in real-life scenarios, though you can theoretically run it on as little as 1GB for testing purposes.
That means you have a whole lot of resources to work with when it comes to all the services you want to set up. For example, you can get a relatively cheap mini PC with 16GB of memory, and that already gives you a lot to work with. Plus, when it’s actually running, Proxmox uses very little resources. Even with my two VMs and one container, CPU usage is usually around 1% when everything is idle, which is impressive. That’s exactly what you want out of something like this.
LXC support is built in
Linux containers ready to go
If you’re setting up self-hosted services, Linux containers (or LXCs) are essential, since that’s how a lot of these services work. LXC provides a virtualization technology that allows Linux systems to run inside the host, in isolation, without requiring a typical virtual machine, which would require a lot more overhead and affect performance.
LXC was actually the backbone for early versions of Docker, which serves much the same purpose, and while the two have split, LXC is still very popular and makes it easy to set up self-hosted services right out of the box. An alternative like VMware ESX (formerly ESXi) could also work, but the latest version doesn’t ship wth a Linux kernel, meaning you need to do a lot more work to set up those containers.
KVM delivers solid VM performance
Lowering virtualization overhead
Aside from containers, one thing you’ll be using a lot in Proxmox is virtual machines. Depending on what you’re setting up, they may be essential to having your home lab the way you want it. Proxmox uses the KVM hypervisor for its virtual machines, and it truly helps deliver solid performance for your VMs.
In my home lab, I have two VMs: one for Home Assistant and one for TrueNAS. And while Home Assistant is certainly a very lightweight operating system, my TrueNAS instance has quite a bit going on, and I’ve never felt like I was being held back by running it in a VM. Even the containers inside TrueNAS perform totally fine.
Proxmox isn’t the only platform of this kind that uses KVM, with another option being Harvester. But Harvester is also built on top of Kubernetes and has comparatively huge system requirements, including a minimum of 16 CPU cores for production workloads and a whopping 64GB of RAM.
Community scripts make things even easier
Set up services in a flash
Setting up a home lab is time-consuming in numerous ways, from installing Proxmox itself to setting up all the services with the appropriate settings and all that. So it’s extremely helpful when you can find a way to easily set up a service, whether it’s a container or a VM, without having to manually set up each part of it, such as allocating an appropriate amount of resources.
That’s where community scripts come in, and there’s a lot of them that work great on Proxmox. In fact, both my Home Assistant VM and Jellyfin container were all set up in one fell swoop using a community script that did all the hard work for me. All I needed to do was then go into each machine and actually configure the service, which saved me a ton of time and headaches. It’s especially helpful for a newbie like I was when I was setting it up for the first time, but it can also save a ton of time if you frequently set up different services to test.
Cluster support
Free of charge
If you get to a certain point in your self-hosting journey, you may want to have more than one physical machine to host your services, but it adds complexity if you need to manage services on different Proxmox nodes. Proxmox can make this much easier thanks to clusters, which let you link up Proxmox nodes so you can more easily manage your services across devices using one unified, interface.
Aside from making management easier, clusters can also be useful for moving one service between nodes more easily so it starts running on a different machine entirely. They also help you achieve higher availability for your services, since you can always have services be powered by a different node if one of them stops functioning correctly.
Clusters aren’t a feature exclusive to Proxmox, but on platforms like ESX, you need a paid license for it to be available. Proxmox supports this for free, giving it yet another point.
Easy snapshots and rollbacks
Never lose access to a service again
Yet another benefit is the ability to easily take a snapshot of one of your virtual machines and roll it back in case something breaks. Hosting a home lab often means a lot of tinkering, and tinkering can mean breaking things, so it’s important to have a backup you can easily revert to a known good state.
Proxmox makes this incredibly easy. Each VM and container has a Snapshots tab in the Proxmox UI, and all you need to do is head there and click Take Snapshot to create a snapshot of the VM. You can name each snapshot and add a description in case you need to identify it more easily later, and also choose to include RAM in the snapshot or not. When you need to restore a snapshot, heading into the same tab gives you a Rollback button so you can easily revert that machine to the selected state.
It’s very easy to use, so you never have to stress when something goes wrong with one of your services.
Support for ZFS pools
Advanced fault tolerance
Finally, Proxmox also benefits from having support for ZFS pools, which come with a few benefits. One you’re probably familiar with is Copy-on-Write, as well as snapshots. In this case, snapshots allow you to restore Proxmox itself to a known good state if you’re using a ZFS pool (though it could also work with Btrfs), so even if your node runs into an issue, you should be able to go back to a stable state.
ZFS also comes with benefits regarding RAID support, going so far as allowing you to mirror the boot drive for Proxmox itself. That means if you have a disk failure on the drive Proxmox lives, you can keep using it just fine and swap the broken drive without starting all over again.
Proxmox is the best for everyone
All of these benefits show that Proxmox is the best option for setting up your home lab, whether you’re new to the idea or have been doing it for a while. The versatility and ease of use make it very easy to get started with Proxmox, while also ensuring that seasoned users have all the features they need to keep their home lab running as intended.