Homelab 📖 35 min read

Proxmox VE Setup Guide

The problem: VMware went from "free hypervisor for everyone" to "call our sales team for pricing" in under a year. Broadcom bought VMware in late 2023, killed the free ESXi license by early 2024, and moved everything to per-core subscriptions. I needed something I could install today without talking to anyone. Proxmox VE is that. It's Debian-based, runs KVM and LXC, has a web UI, and costs nothing. Everything below walks through installation to your first running VM.

What you get for $0:

Live migration between nodes — VMware now charges for vMotion. Built-in backup scheduler with compression and retention — VMware wants you to buy Veeam or pay for vSphere Data Protection. Clustering up to 32 nodes with HA failover, no vCenter license needed. A real web UI that manages VMs, containers, storage, networking, and firewall rules from one place — ESXi's free web client was always half-broken anyway.

Before Proxmox, I had separate physical boxes for everything. pfSense router. TrueNAS. Dev machine. Each pulling power, each a single point of failure. When the NAS motherboard died, rebuilding it took a weekend I didn't have.

I consolidated onto one server running Proxmox. 15+ VMs and containers on a single machine now. Need to test something? New VM in minutes. Broke something? Snapshot rollback in seconds. It replaced ESXi, and I haven't missed it once.

What You Need

  • A dedicated machine (old PC, decommissioned server, anything with decent specs)
  • At least 8GB RAM (16GB+ recommended for running multiple VMs)
  • A CPU with virtualization support (Intel VT-x or AMD-V)
  • At least one SSD for VM storage (spinning disks work but you'll feel it)
  • A USB drive for installation

I started on a $60 Dell Optiplex from eBay. Proxmox doesn't need much. Just confirm your CPU has VT-x or AMD-V enabled in BIOS — it's usually off by default on consumer boards.

Installation

Download and Flash

Get the ISO from proxmox.com/downloads. Use Rufus (Windows) or dd (Linux) to create a bootable USB.

Boot and Install

Boot from USB. The installer is graphical:

  1. Accept the license agreement
  2. Select the disk for installation (warning: this wipes the disk)
  3. Set location and timezone
  4. Create a root password and provide email (for alerts)
  5. Configure networking (use a static IP you'll remember)

Installation takes about 5 minutes. Reboot when prompted, remove the USB.

First Login

Navigate to https://YOUR_IP:8006 in a browser. You'll get a certificate warning - accept it.

Login with:

  • User: root
  • Password: whatever you set during installation
  • Realm: Linux PAM authentication

You're in. Ignore the subscription popup for now (covered below).

Getting Rid of the Subscription Nag

💰 The subscription nag: Every single login, a popup reminds you that you don't have a valid subscription. It does nothing — no features are locked, nothing stops working, it's purely cosmetic guilt-tripping. I get that Proxmox needs revenue, and the enterprise repo is a fair product, but nagging on every login for a product you advertise as free is annoying. The one-liner below patches the JavaScript that triggers it. It survives until the next pveproxy package update, then you run it again. Mildly tedious, but less tedious than clicking "OK" 400 times a year.

To remove the popup:

# SSH into your Proxmox server
ssh root@YOUR_IP

# Edit the subscription check
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

# Restart the web interface
systemctl restart pveproxy.service

This patches out the popup. No features are affected — it's a UI-only change.

You also need to switch repos. The default points to the enterprise repository, which requires a subscription key:

# Comment out enterprise repo
sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list

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

apt update && apt upgrade -y

VMs vs Containers

Proxmox runs two types of guests:

Virtual Machines (KVM)

  • Full hardware virtualization
  • Run any OS (Windows, Linux, BSD, etc.)
  • Completely isolated from host
  • Higher resource overhead

Containers (LXC)

  • OS-level virtualization
  • Linux only
  • Share the host kernel
  • Much lower overhead - faster startup, less RAM

Rule of thumb: Use containers for Linux services where performance matters. Use VMs for Windows, for things that need full isolation, or when you need a different kernel.

Creating Your First VM

Upload an ISO

In the web interface:

  1. Click your storage (usually "local")
  2. Click "ISO Images"
  3. Click "Upload" and select your OS ISO

Create the VM

Click "Create VM" in the top right.

General: Give it a name and ID (Proxmox auto-suggests an ID)

OS: Select your uploaded ISO, set OS type (Linux/Windows)

System: Default BIOS is usually fine. For Windows 11, you need UEFI + TPM

Disks: Size your disk. Use VirtIO SCSI for best performance

CPU: Allocate cores. Don't exceed physical cores. "host" type gives best performance

Memory: Allocate RAM. Enable ballooning if you want dynamic adjustment

Network: Use VirtIO for performance. Bridge to vmbr0 by default

Click create. Start the VM. Open console. Install your OS as you normally would.

Creating a Container

Download a Template

  1. Click your storage → "CT Templates"
  2. Click "Templates"
  3. Download your preferred distro (Ubuntu, Debian, Alpine, etc.)

Create the Container

Click "Create CT" in the top right.

The wizard is similar to VMs but simpler. Key differences:

  • You set a root password (no separate install process)
  • Network is configured during creation
  • Container is immediately usable after creation

Containers boot in under two seconds. I use them for everything that doesn't specifically need a full VM.

Networking Basics

Proxmox creates a bridge vmbr0 by default. This connects VMs/containers to your physical network.

For most homelabs, the default works fine:

  • Each VM/container gets an IP on your LAN (via DHCP or static)
  • They can reach each other and the internet

If you need VLANs or internal-only networks, you can create additional bridges. But start simple.

Storage Configuration

This is where Proxmox is genuinely better than ESXi, not just cheaper. ESXi locks you into VMFS — one filesystem, take it or leave it. Proxmox treats ZFS, LVM, LVM-thin, Ceph, NFS, and plain directories as first-class citizens. You pick the storage backend per use case, not per "what the hypervisor supports." Here's how I organize mine:

Local Storage (local)

Small, on the system SSD. I use it for:

  • ISO images
  • Container templates
  • Snippets (cloud-init configs)

Local-LVM (local-lvm)

Default thin-provisioned storage for VM disks. Works well.

Adding Storage

To add a new drive for VM storage:

  1. Identify the disk: lsblk
  2. Datacenter → Storage → Add
  3. Choose type (Directory, LVM, ZFS, etc.)
  4. Point it at your disk/partition

ZFS is worth the setup time if you have multiple disks — you get redundancy, compression, and snapshots without any extra software. ESXi can't touch this without vSAN licensing.

Backups and Snapshots

This is the part that pays for itself on the first disaster.

Snapshots

Point-in-time state of a VM. Instant to create, instant to restore.

# Create via GUI: Select VM → Snapshots → Take Snapshot
# Or CLI
qm snapshot 100 before-changes

About to do something scary? Snapshot first. If it breaks, rollback. Takes seconds.

Backups

Full exports you can restore to different hardware.

  1. Select VM/container
  2. Backup → Backup Now
  3. Choose storage, compression, mode

Automated Backups

Datacenter → Backup → Add schedule

I backup all VMs weekly, critical ones daily. Stored on a separate drive. When my Proxmox node died once, I was back up in under a hour on new hardware.

Installation Notes

  • USB drive needs to be at least 2GB. Ventoy or Rufus for flashing, dd on Linux.
  • Don't dual-boot. Proxmox wants the whole disk. Give it a dedicated SSD and save yourself the partition headaches.
  • Switch to the no-subscription repo immediately after install unless you're paying for a subscription.
On repeat installs: I've put Proxmox on 5 different machines at this point. The installer takes 5 minutes every time. The post-install setup (repos, storage, networking, first VM) is where the actual time goes — budget an afternoon.

Tips

Use Templates

Set up a base VM or container the way you like it (updates, common packages, SSH keys). Then convert to template. Future VMs can be cloned from it in seconds.

Cloud-Init

For Linux VMs, Cloud-Init presets hostname, SSH keys, and network settings before first boot. Cuts VM setup from 10 minutes of clicking to one template clone.

PCIe Passthrough

You can pass physical hardware (GPUs, network cards, USB controllers) directly to VMs. Requires enabling IOMMU in BIOS and some configuration, but it works well.

High Availability

With multiple Proxmox nodes, you can cluster them for automatic VM migration on node failure. This is the kind of thing VMware charges thousands for with vCenter. Proxmox includes it.

Performance Tuning

  • Use VirtIO drivers for Windows VMs (download from Proxmox's site)
  • CPU type: "host" gives best performance, "kvm64" for maximum compatibility
  • Enable NUMA for multi-socket CPUs
  • SSDs for VM storage — spinning disks are fine for backups and ISOs but painful for OS disks

My Typical Proxmox Setup

For reference, here's what runs on my homelab Proxmox server:

  • pfSense VM - Router/firewall with PCIe NIC passthrough
  • TrueNAS VM - Storage, with HDD directly passed through
  • Docker container - Runs 20+ services via Docker Compose
  • Pi-hole container - DNS-level ad blocking
  • Dev VM - Ubuntu desktop for development
  • Windows VM - For that one piece of software that won't run anywhere else
  • Test containers - Spin up and destroy as needed

Total hardware: one refurbished Dell R720 with 64GB RAM and 6 drives. Power draw sits around 120W idle. About $15/month in electricity.

Migrating from ESXi

If you're coming from ESXi: qm importdisk handles VMDK files. Export your VMs from ESXi as OVA or grab the VMDK files directly from the datastore, upload them to Proxmox, and import. You'll need to recreate the VM shell (CPU, RAM, network settings) but the disk data carries over. Plan a weekend for it. It's less painful than you expect — I moved 8 VMs in about 6 hours, and most of that was waiting on file transfers over the network.

💬 Comments