Build a Home Lab with Proxmox VE: A Practical Guide for Beginners

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

The Problem: You Can’t Practice on Production

You’ve landed your first junior sysadmin or DevOps role. The team talks about Kubernetes, Docker, Linux networking, and firewall rules like it’s common knowledge. But you’ve never touched a real server. You want to practice, but you can’t experiment on production systems — one wrong command and you’re the person who took down the website at 2pm on a Friday.

One common answer is to spin up cloud VMs on AWS or GCP. That works, but the costs add up faster than you’d expect. A few forgotten instances and you’re looking at a $40–$80 bill for the month — for a sandbox you used twice. And you don’t get the hands-on feel for hardware, networking, and storage that actually builds confidence.

What you actually need is a home lab — your own physical infrastructure you can break, rebuild, and learn from without consequences.

Root Cause: No Accessible, Affordable Infrastructure

The barrier isn’t knowledge — it’s access. Running several OSes at once used to mean buying enterprise hardware or burning through a cloud budget every month. Most tutorials just assume you’ve already got a server rack in the basement.

Here’s what most people miss: you don’t need much hardware at all. A single old desktop or a used workstation from eBay can comfortably run 5–10 virtual machines at once. That’s a complete lab environment for under $100, sometimes less.

The missing piece is the right hypervisor — software that lets one physical machine act as many virtual ones.

Comparing Your Options

There are a few approaches to home lab virtualization. Here’s how they compare honestly:

VMware Workstation / VirtualBox (Desktop Hypervisors)

These run on top of your existing OS — Windows or Linux. Easy to start with, but they eat your desktop’s resources and won’t run headlessly without your main OS. They also don’t reflect how production environments actually work. Good for a first experiment, not for serious lab practice.

VMware ESXi (Bare-Metal, Enterprise)

ESXi is what many enterprises use. It installs directly on hardware with no host OS underneath. The problem: it’s expensive, VMware’s licensing has gotten complicated since Broadcom’s 2023 acquisition, and community support is shrinking fast. Not the right call for a home lab.

Proxmox VE (Bare-Metal, Open Source)

Proxmox Virtual Environment is a free, open-source Type-1 hypervisor built on Debian Linux. It supports both KVM virtual machines (full VMs) and LXC containers, ships with a clean web UI, and has an active community forum with tens of thousands of members. Storage, networking, backups, and clustering — all managed from the browser.

This is the approach I use. My lab has been running on a 10-year-old Dell OptiPlex with 16GB RAM for over a year — stable throughout, even under heavy testing loads. The same setup handles production-equivalent configurations: firewall rules, reverse proxies, multi-node Kubernetes clusters.

Best Approach: Install Proxmox VE on Bare Metal

Hardware Requirements

You don’t need much to get started:

  • Any x86-64 CPU with virtualization support (Intel VT-x or AMD-V)
  • Minimum 8GB RAM (16GB+ recommended)
  • At least 64GB storage (SSD preferred)
  • A wired Ethernet connection

Check if your CPU supports virtualization:

grep -E 'vmx|svm' /proc/cpuinfo | head -5

If you see output with vmx (Intel) or svm (AMD), you’re good to go.

Step 1: Download and Create the Installer

Grab the latest Proxmox VE ISO from the official site (proxmox.com/downloads). Then flash it to a USB drive using Balena Etcher, or use dd on Linux:

# Find your USB device first
lsblk

# Flash the ISO (replace /dev/sdX with your USB device)
sudo dd if=proxmox-ve_8.x-1.iso of=/dev/sdX bs=4M status=progress && sync

Warning: Double-check the device path. dd will overwrite whatever device you point it at — no confirmation prompt, no undo.

Step 2: Install Proxmox VE

Boot from the USB and follow the graphical installer. Key decisions during install:

  • Target disk: Select your SSD or HDD for the Proxmox OS itself
  • Country/Timezone: Set correctly — this affects NTP sync
  • Password and email: This becomes your root login for the web UI
  • Network config: Set a static IP. Something like 192.168.1.100 works well. Pick an IP outside your router’s DHCP range to avoid conflicts

The installer takes about 5 minutes. When done, remove the USB and let the system reboot.

Step 3: Access the Web Interface

From any browser on your network, navigate to:

https://192.168.1.100:8006

You’ll get a certificate warning — expected, it’s self-signed. Accept it and log in with username root and the password you set during installation.

Step 4: Remove the Subscription Notice

Proxmox is free to use, but shows a subscription nag dialog at every login. To kill it, run this on the Proxmox shell (open via the web UI under Node → Shell):

sed -i.backup "s/data.status !== 'Active'/false/g" \
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

# Restart the web service to apply
systemctl restart pveproxy

No features are affected — this just removes the popup.

Step 5: Update Proxmox Without a Subscription

By default, Proxmox points to its enterprise repository, which requires a paid subscription. Switch it to the free community repo:

# Disable enterprise repo
echo "# disabled" > /etc/apt/sources.list.d/pve-enterprise.list

# Add free community repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-community.list

# Update and upgrade
apt update && apt full-upgrade -y

Step 6: Upload an ISO and Create Your First VM

Download an Ubuntu Server ISO on your local machine, then upload it to Proxmox:

  1. In the left panel, select your storage (usually local)
  2. Click ISO Images → Upload
  3. Select your downloaded ISO

Now create a VM:

  1. Click Create VM in the top-right
  2. Set a VM ID and name (e.g., 101 ubuntu-test)
  3. Select your uploaded ISO as the boot media
  4. Set disk size (20GB is fine for testing)
  5. Allocate CPU cores (2) and RAM (2048 MB)
  6. Confirm and start the VM

Click the VM in the left panel, then open the Console tab to interact with it like a physical screen.

Step 7: Try LXC Containers for Lightweight Services

LXC containers are far lighter than full VMs. They share the host kernel, start in under 5 seconds, and use a fraction of the RAM. Perfect for services like Nginx, Pi-hole, or a small database — without dedicating a whole VM to each one.

# From the Proxmox shell, pull a container template
pveam update
pveam available | grep ubuntu

# Download Ubuntu 22.04 LXC template
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst

Then create a container from the web UI under Create CT, selecting that template. You get a full Ubuntu environment using under 512MB RAM — compared to 1–2GB for a full VM running the same workload.

What to Build in Your Lab

Once Proxmox is running, here are projects that map directly to real job interviews and day-to-day sysadmin work:

  • Nginx reverse proxy VM — practice routing, SSL termination, virtual hosts
  • Docker host VM — deploy containers, write Compose files, practice networking
  • Ansible control node — automate configuration across your other VMs
  • pfSense/OPNsense VM — learn firewall rules, VLANs, and network segmentation
  • Kubernetes cluster — run 3 VMs as a K8s cluster using kubeadm or k3s

Snapshots are your safety net here. Before touching anything risky, take one. If things break, you’re back to a clean state in about 10 seconds.

Final Thoughts

A home lab on Proxmox gives you real, hands-on experience with production-grade infrastructure — for the cost of a used PC and an afternoon of setup. You learn faster when mistakes don’t matter, and this setup is specifically designed for making them.

Start with one old machine. Install Proxmox. Spin up two or three VMs. That’s the whole entry point — and it’s enough to shift from passively watching tutorials to actually building things.

Share: