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.100works 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:
- In the left panel, select your storage (usually
local) - Click ISO Images → Upload
- Select your downloaded ISO
Now create a VM:
- Click Create VM in the top-right
- Set a VM ID and name (e.g.,
101 ubuntu-test) - Select your uploaded ISO as the boot media
- Set disk size (20GB is fine for testing)
- Allocate CPU cores (2) and RAM (2048 MB)
- 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.

