Skip to main content
Back to blog

Setting up a home lab with Proxmox VE

·3 min readHomelab

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-subscription

Then 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

Enjoying the blog? Subscribe via RSS to get new posts in your reader.

Subscribe via RSS