I use Proxmox as the basis for my homelab. Proxmox is an open source bare-metal hypervisor with support for a wide array of hardware (if Linux runs on it, it’ll probably run Proxmox…)
Proxmox offers many enterprise-level features, like clustering, backup, advanced networking, certificate management, application support and support for ZFS, NFS and CIFS shares. Proxmox supports KVM virtulization for full emulation of Windows and Linux/BSD hosts, as well as LXC containers with broad support.
Proxmox also offers an open-standard email gateway and backup system.
I use Nutanix and VMWare vSphere at work. Configuring another hypervisor is a learning experience helped by many tutorials on YouTube and online resources. One resource I wanted to call out is a Github page created by user tteckster called Proxmox Helper Scripts. This page has many of the tweaks in one place that I searched for when setting up Proxmox the first time.
From this page, you can find scripts to perform post-installation steps, maintain the kernel list, choose dark mode, and install one of dozens of LXC containers – including running Docker in a container!
I’m running a KVM Ubuntu instance in my homelab running Docker to host many of my services. I’m planning to move the services to dedicated LXC containers, and these scripts will make it easy to do.