Proxmox VE: A Practical Setup Guide
for Bare-Metal Virtualisation

Proxmox Virtual Environment turns any x86 machine into a fully featured virtualisation platform, running both KVM virtual machines and lightweight LXC containers through a web-based management UI. Here's everything you need to get from bare metal to a running VM - without the enterprise subscription.

Why Proxmox VE?

Proxmox VE is a Debian-based open-source hypervisor that bundles KVM virtualisation, LXC container support, ZFS storage, a built-in backup solution, and a polished web interface - all for free. The subscription model only affects access to the enterprise update repository; the software itself is fully functional without it.

Compared to alternatives: VMware ESXi is being actively killed off since Broadcom's acquisition. Microsoft Hyper-V requires Windows Server licensing. oVirt is significantly more complex to deploy. Proxmox hits the sweet spot of capable, stable, and free - which is why it's become the default choice for homelabs, small businesses, and colocation servers.

Installation

Download the Proxmox VE ISO from the official website and write it to a USB drive with dd or Balena Etcher. Boot from the USB, and you'll get a graphical installer. The key decisions:

  • Target disk: Proxmox installs to a single disk. For the system disk, you don't need much - 32 GB is sufficient for the OS. Separate disks can be added for VM storage later.
  • Filesystem: The installer offers ext4, xfs, and ZFS. Choose ZFS (RAID1) if you have two drives of the same size and want automatic checksumming and snapshots on the OS disk. Choose ext4 for simplicity on a single-disk setup.
  • Network: Set a static IP on your LAN. Don't use DHCP for the hypervisor host - you'll need to reliably reach the web UI.

After installation, the web UI is available at https://YOUR_IP:8006. Log in as root with the password you set during installation.

Post-Install Configuration

Switch to the Community Repository

By default, Proxmox is pointed at the enterprise repository, which requires a subscription. Redirect it to the free community repo:

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

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

apt update && apt dist-upgrade -y

Remove the Subscription Nag

The web UI shows a "No valid subscription" popup on every login. Remove it with a one-liner (re-run after each Proxmox update):

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

Networking: The Linux Bridge

Proxmox uses a Linux bridge (vmbr0) to connect VMs to the physical network. Think of it as a virtual switch: your physical NIC plugs into one port, and each VM gets a virtual port. By default, the installer creates this bridge automatically. To verify:

cat /etc/network/interfaces

You'll see iface vmbr0 inet static with bridge-ports enp3s0 (or similar). VMs assigned to vmbr0 will appear on your physical LAN and receive IPs from your router's DHCP - just like physical machines.

For more advanced setups - multiple VLANs, a dedicated storage network, or routing isolated VM networks through the host - Proxmox's documentation covers Software Defined Networking (SDN) which is available as of Proxmox 8.x.

Storage Configuration

After installation, Proxmox has one storage pool: local (for ISO images and container templates) and local-lvm (for VM disks). To add an additional disk for VM storage:

# Find your disk
lsblk

# Create a partition, format as ext4, and mount
# Alternatively, add directly as a directory storage in the UI:
# Datacenter → Storage → Add → Directory

For production use, consider ZFS for any storage that holds VM disks. ZFS provides checksumming (detects silent data corruption), snapshots, and send/receive for replication. Add a ZFS pool in the UI under Node → Disks → ZFS → Create ZFS.

Creating Your First VM

In the web UI, click Create VM in the top right. Key settings to pay attention to:

  • OS Tab: Select the ISO image from your local storage (upload it via local → ISO Images → Upload first)
  • System Tab: Use q35 machine type and OVMF (UEFI) BIOS for modern OS installations. Leave SeaBIOS for older OSes or Windows.
  • Disks Tab: VirtIO SCSI controller with a VirtIO disk bus gives the best performance. Enable Discard if using SSD storage.
  • CPU Tab: Set type to host for best performance - this passes through the host CPU features directly to the VM.
  • Network Tab: VirtIO network device attached to vmbr0.

Start the VM and open the console via Console → noVNC to complete the OS installation.

LXC Containers: Lighter Than VMs

For Linux-only workloads (web servers, databases, application services), LXC containers are significantly more efficient than full VMs - they share the host kernel, start in under a second, and use minimal RAM overhead. Create one from the UI under Create CT, selecting a template from the Proxmox template library:

# From the Proxmox shell, download a container template
pveam update
pveam available | grep debian
pveam download local debian-12-standard_12.2-1_amd64.tar.zst

Automated Backups with vzdump

Proxmox's built-in backup tool vzdump handles both VMs and containers. Configure scheduled backups in the UI under Datacenter → Backup → Add. For command-line backups:

# Backup VM ID 100 to local storage
vzdump 100 --storage local --mode snapshot --compress zstd

# Backup all VMs and containers
vzdump --all --storage local --mode snapshot --compress zstd --mailto [email protected]
⚠️
Snapshot mode requires a supported storage driver. For --mode snapshot, your VM disk must be on LVM-thin, ZFS, or Ceph storage. On plain directory storage, use --mode suspend or --mode stop instead.

For off-site backup replication, combine vzdump with the Proxmox Backup Server (PBS), which is a separate free product that supports incremental backups, deduplication, and encryption - purpose-built to work with Proxmox VE.

Services Technologies Process Blog Get in Touch