Summary
- Installation is straightforward but XCP-ng requires you to set up an extra VM for web UI access
- Solid performance with Linux distros, but Windows 11 needs workarounds on the current version
- Limited customization and no native containerization makes it more suitable for production needs
Ask any home lab enthusiast about their preferred virtualization platform, and a majority of home server owners would answer Proxmox without an ounce of hesitation. Having spent the last couple of months covering practical projects and eccentric ideas you can bring to life with Proxmox, it’s the platform I use to manage all my self-hosted services.
But since XCP-ng is often regarded as Proxmox’s biggest rival for business and production environments, I decided to give it a shot. So, here’s my observation log after a week of running it on my dual Xeon CPU system.
A beginner's guide to setting up a home lab with XCP-ng
Want to use XCP-ng for your virtualization projects but don't know where to start? This detailed guide can help you out!
The installation process is fairly straightforward
But you’ll need to deploy an additional VM to access the web UI
As a distro-hopper with many years under my belt, installing XCP-ng involves the same tried-and-tested procedure of flashing the ISO onto a USB drive and using it to set up the platform on a spare PC. Whereas the Proxmox installer groups multiple configuration options into a single page, the XCP-ng setup wizard splits every setting into its own page.
Once the XCP-ng installation was complete, the PC rebooted into the virtualization platform. Unlike Proxmox’s terminal-based interface, XCP-ng provides a menu-like UI. As such, you don’t need to learn terminal commands or open the web UI to deploy a VM or modify the network settings.
Unfortunately, accessing the XCP-ng server over GUI requires you to deploy an extra virtual machine specifically for the Xen Orchestra. Since the quick-deploy feature kept giving errors, I had to manually configure the VM by running the bash -c "$(wget -qO- https://xoa.io/deploy)" command inside PuTTY. Once I’d opened the web UI, I was free to add the IP address of the XCP-ng server and begin my tests.
Rock-solid performance on Linux distros
Running Windows 11 still requires some workarounds on the stable branch
Importing the ISO files of my favorite Linux distros to the XCP-ng server was fairly easy, and so was deploying a virtual machine using most operating systems. The reason why I say "most" is that Windows 11 is as much of a pain to install on XCP-ng as it is on Proxmox, at least on version 8.2. On the latest XCP-ng beta release, you can simply enable vTPM and secure boot, and sit back as the Xen-based platform installs Microsoft’s flagship OS. However, this feature isn’t implemented on XCP-ng 8.2, meaning you’ll have to use additional tools to bypass the TPM 2.0 requirements on Windows 11.
Leaving the Windows 11 hijinks aside, Linux distros ran fairly well. Since this isn’t a comparison post between Proxmox and XCP-ng, I didn’t run any benchmarks. But after allocating four cores and 4 GB memory out of my 2x 12-core, 64 GB RAM setup to a couple of VMs, I didn’t encounter any slowdowns when installing apps or self-hosting a couple of services. While we’re on the subject of self-hosted services…
It lacks native containerization and has limited customization options
But you get the option to deploy a Kubernetes cluster inside the web UI
Since containers are a lot more lightweight than virtual machines, I run most of my self-hosted applications inside LXC containers on Proxmox. As an avid user of containers, I was rather disappointed to see that XCP-ng doesn’t support native containerization. While the platform provides the option to deploy a Kubernetes cluster via the Recipes section of the Hub tab, I was unable to get it working on my setup. Therefore, my only option was to run Docker inside one of my Linux VMs.
Of course, Proxmox also doesn’t natively support Docker containers. Still, the LXC container templates, alongside genius developer tteck’s Proxmox VE Helper-Scripts, are more than enough to self-host essential services on your home lab. Plus, it’s not as customizable as Proxmox.
That’s precisely where XCP-ng loses to Proxmox for my particular needs – it’s not built for home lab owners. Rather, this Xen-based platform is designed for production environments, where you may need to manage hundreds of virtual machines split across multiple hosts and stored inside shared disks. Even leaving the “Xen is dead” argument (which I don’t agree with by any means) aside for a moment, I’d still use Proxmox to power my home lab, mostly because of its larger community, built-in LXC containerization support, and (subjectively) more organized UI.
Nevertheless, XCP-ng is an amazing platform for your virtualization workloads
Although XCP-ng couldn’t convert me to its faction, I have to admit that it’s a solid tool for virtualization experts, especially for users who need to manage multiple clusters. With VMware’s anti-consumer decision to retract the free license for new users, I can imagine switching to XCP-ng if I ever need to run a production environment.
But that doesn’t mean Proxmox is the be-all-and-end-all platform for your self-hosting needs. From running apps on TrueNAS Scale to deploying hundreds of Docker containers on Ubuntu/Debian, there are plenty of ways you can get started on your home lab journey.
7 things you should do to secure your Proxmox home lab
Prevent hackers and malware from tampering with your Proxmox server by following these seven tips
