Setting up a home lab with Proxmox VE
If you self-host anything, you eventually hit the limit of running everything on a single machine. That is when a hypervisor starts making sense. Proxmox VE is the one I landed on, and it has been rock solid.
What Proxmox actually is
Proxmox Virtual Environment is a free, open-source server virtualization platform. It lets you run virtual machines and LXC containers from a single web interface. Think of it as VMware or Hyper-V, but open-source and built on Debian Linux.
The web UI is genuinely good. You can create VMs, manage storage, set up networking, take snapshots, and monitor resources all from your browser. No command line required for day-to-day operations, though it is there when you need it.
Why not just use Docker for everything?
Docker is great for applications, but it shares the host kernel. If you want to run different operating systems, isolate workloads more strictly, or test things that need full OS access, you need actual VMs. Proxmox gives you both: full VMs for heavy isolation and LXC containers for lightweight Linux workloads.
I run Docker inside a Proxmox VM. That gives me the best of both worlds. The VM provides isolation from the host, and Docker inside it handles the application layer.
Getting started
Download the Proxmox VE ISO from the official site and flash it to a USB drive. The installer is straightforward. It wipes the target drive and sets up the entire system, including the web interface.
After installation, access the web UI at https://your-server-ip:8006. The default login is root with the password you set during installation.
First things to configure
Remove the enterprise repository. By default, Proxmox points to a paid enterprise repo that will cause update errors. Switch to the no-subscription repository:
# Edit the sources list
nano /etc/apt/sources.list.d/pve-no-subscription.list
# Add this line:
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscriptionThen comment out or remove the enterprise repo in /etc/apt/sources.list.d/pve-enterprise.list.
Set up storage. Proxmox uses ZFS, LVM, or directory-based storage. For a simple setup, the default local storage works fine. For anything serious, ZFS with mirrored drives gives you data protection and snapshots.
Create your first VM. Click "Create VM" in the top right. Upload an ISO (Ubuntu Server is a good start), allocate CPU and RAM, and boot it up. The whole process takes about 2 minutes.
LXC containers
For Linux workloads that do not need a full VM, LXC containers are the way to go. They boot in seconds, use a fraction of the resources, and are perfect for services like Pi-hole, Home Assistant, or small web apps.
Proxmox has a built-in template library. Download a template (Debian, Ubuntu, Alpine), create a container, and you are running in under a minute.
What I run on mine
My Proxmox server hosts a Docker VM (running Nextcloud, various web apps, monitoring), a dedicated VM for development work, an LXC container for DNS (Pi-hole), and a few test environments that I spin up and tear down regularly.
The ability to snapshot before making changes and roll back if something breaks is worth the setup alone. I have saved myself hours of debugging by just reverting to a known good state.
Sources
Related posts
Uptime Kuma told me everything was fine. It wasn't.
Green checkmarks are not observability. Here is what I learned building a real monitoring stack.
TrueNAS: reliable storage for your homelab
Why I use TrueNAS for network storage in my homelab, how to set it up, and the features that make it worth running over a simple file share.
Proxmox Backup Server: incremental backups done right
Why I use Proxmox Backup Server for my homelab backups, how incremental backups save massive amounts of storage, and how to set it up.
Enjoying the blog? Subscribe via RSS to get new posts in your reader.
Subscribe via RSS