Proxmox VE lets you run virtual machines and containers on one box with an easy web UI, perfect for a first home lab.
You can get started on modest hardware; just ensure CPU virtualization support and enough RAM for your workloads.
The official installer guides you through disk layout (ext4/XFS/ZFS), networking, and essentials in minutes.
Start simple: one bridge (vmbr0), one VM (e.g., Ubuntu Server), one container (e.g., Pi‑hole), and automated backups.
Follow small, safe increments—test, snapshot, and back up as you go.
Why Proxmox VE for a Home Lab
Proxmox Virtual Environment (Proxmox VE) is a free, Debian‑based virtualization platform that combines KVM virtual machines and LXC containers under one clean, browser‑based interface. It’s powerful enough for pros, yet approachable for beginners. You can run a Docker host, media server, Home Assistant, network tools, and more—all on a single machine you control.
Official documentation provides clear hardware recommendations and installation steps, which we’ll follow here for a smooth first setup (Proxmox VE installation guide; System requirements).
What You’ll Need (Hardware Checklist)
CPU: 64‑bit Intel/AMD with virtualization extensions (Intel VT‑x/AMD‑V) for full VM support.
Memory: Budget at least 8–16 GB for a comfy start. Proxmox needs about 2 GB for itself, plus RAM for guests. If you choose ZFS or run Ceph later, plan extra RAM—roughly 1 GB per TB of used storage.
Storage:
- OS disk: SSD strongly recommended.
- VM/Container storage: SSDs with power‑loss protection are ideal; consumer SSDs can be risky for heavy write workloads.
- Avoid hardware RAID for ZFS—ZFS expects direct disk access; it’s not compatible with hardware RAID controllers.
Network: At least one NIC. More NICs help if you plan VLANs, storage networks, or firewall VMs.
A second device (laptop/desktop/tablet) to access the Proxmox web UI at https://YOUR-IP:8006. Current versions of Firefox, Chrome, Edge, and Safari are supported.
Step‑by‑Step: Your First Proxmox Home Lab
1) Plan your mini‑lab
Start with one or two services you care about (e.g., Pi‑hole for network‑wide ad blocking, a Docker host, or Home Assistant).
Keep your first network simple: a single bridge (vmbr0) on your main LAN. Add VLANs/segmentation later.
2) Download Proxmox VE and make a bootable USB
Get the latest ISO from the official site: Proxmox VE ISO images (download page).
Create your USB installer:
- Windows: Use Rufus; when prompted, select DD mode for the Proxmox ISO. If asked about a different GRUB, choose “No” (installer notes).
- macOS: Convert the ISO with hdiutil and write it with dd, targeting rdisk for speed (per the installer docs).
- Linux: Use dd to write the ISO to your USB device. Double‑check the correct device path before writing.
Don’t use UNetbootin; it’s not compatible with the Proxmox VE installation image.
3) BIOS/UEFI prep
Enable CPU virtualization (Intel VT‑x/AMD‑V). If you plan PCIe passthrough later, enable VT‑d/AMD‑Vi (IOMMU).
For older Proxmox installers (prior to 8.1), disable Secure Boot; current installers support modern platforms, but follow the installer’s guidance on your version.
4) Install Proxmox VE
Boot from the USB and select “Install Proxmox VE (Graphical).”
Select your target disk and filesystem:
- ext4/XFS: Simple, solid defaults for beginners.
- ZFS: Great for data integrity and snapshots; needs more RAM and direct disk access (no hardware RAID).
- Btrfs: Technology preview in the installer—best to skip for first‑timers.
Set root password and email (for alerts), pick your country/timezone/keyboard, and configure the network (hostname, IP, gateway, DNS).
Proceed with installation. Note: the installer wipes the selected disks and doesn’t add boot entries for other OSes on that disk.
5) First login to the web UI
From another device, open https://YOUR-IP:8006. You’ll see a certificate warning—safe to proceed for a new lab box.
Log in as root with the password you set. Use a current Firefox/Chrome/Edge/Safari for best results (supported browsers).
6) Post‑install housekeeping
Update the system: via Shell in the web UI or SSH, run apt update && apt full-upgrade. Reboot if the kernel updates.
Time sync: Ensure NTP is on (it is by default) so logs, clusters, and certificates behave.
Email alerts: In Datacenter > Notifications, configure SMTP so you’ll actually receive warnings.
7) Storage basics
Check Datacenter > Storage. You’ll see local (for ISO/templates) and, if chosen, local‑lvm or ZFS for VM disks.
Optional: Add a directory storage on a second drive or a share (NAS) for backups and ISO/templates.
8) Create your first VM (Ubuntu Server example)
Upload ISO: Datacenter > local (your node) > ISO Images > Upload.
Create VM: Click Create VM, select the ISO, set memory/CPU, and prefer VirtIO for disk/network (Windows guests require VirtIO drivers).
Install the OS normally. After install, add the QEMU guest agent and enable it in the VM’s Options to improve shutdowns and IP reporting.
9) Create a first LXC container (Pi‑hole example)
Get a template: local > CT Templates > Templates > download Debian/Ubuntu.
Create CT: Click Create CT, pick the template, set a hostname, an unprivileged container, modest resources (e.g., 512–1024 MB RAM).
Start and shell in to install your app (e.g., Pi‑hole). Containers are lightweight and perfect for small services.
10) Networking: keep it simple
The installer creates vmbr0 bridging your main NIC to your LAN. Attach VMs/CTs to vmbr0 for immediate connectivity.
Advanced later: add VLANs (tagged on vmbr0), dedicated NICs for storage/DMZ, or a virtual router (OPNsense/pfSense) to segment lab networks.
11) Backups and snapshots
Backups: Datacenter > Backup > Add. Start with daily or weekly VM backups to a directory or NAS. Test a restore on a non‑critical VM.
Snapshots: Great before risky changes. Note that live snapshots work best with guests that support quiescing.
12) Health checks and performance
Use the Dashboard for CPU, RAM, and disk health.
For a quick performance check, the pveperf tool gives a simple CPU/disk overview on the host (system tools)—useful for sanity checks before you scale.
Safe, Sensible Starting Workloads
Home Assistant: VM recommended for broad device support and easy recovery.
Pi‑hole/AdGuard Home: LXC container for low overhead.
Docker host: Run a lightweight Ubuntu Server VM to keep containers self‑contained.
Media server (Plex/Jellyfin): VM or LXC; consider passing through a GPU later for transcoding (advanced).
Troubleshooting Tips
USB won’t boot: Recreate the installer with a known-good method (Rufus DD mode on Windows, dd on macOS/Linux). Verify the ISO checksum from the Proxmox download page. Try a different USB port (use USB 2.0 on older boards) and set boot mode in firmware (UEFI vs Legacy/CSM) to match how the stick was created.
Can’t reach web UI at https://IP:8006: Confirm the host has an IP (ip a on the console), that pveproxy is running (systemctl status pveproxy), and no local firewall is blocking 8006. Try http(s)://hostname:8006 if you set a FQDN. If DNS is wrong, fix /etc/hosts to map your node’s FQDN to its IP per the installer’s hostname.
“No valid subscription” popup: Not an error. You can ignore it or switch to the no‑subscription repository (Datacenter > Repositories > Add > No‑Subscription) and run apt update && apt full-upgrade.
No network in VMs/CTs: Ensure guests are attached to vmbr0, not the physical NIC. Verify vmbr0 has your NIC as a port (node > System > Network). If using VLANs, tag on the VM NIC and allow tagged traffic on the switch. For DHCP issues, test with a static IP.
Guest hangs on shutdown/reboot: Install and enable QEMU guest agent in the VM (apt install qemu-guest-agent on Debian/Ubuntu; enable in VM Options). This improves shutdowns, IP reporting, and quiesced backups.
Windows VM performance is poor: Use VirtIO for disk and network. Mount the VirtIO driver ISO during install to load drivers. Enable write‑back cache only if you understand the risks; generally keep defaults and use SSD storage.
LXC vs VM app issues: If an app needs a custom kernel module, FUSE, or full system control, prefer a VM. For simple services (DNS, web, small databases), LXC is lighter and faster.
Backups failing or slow: Store backups on a separate disk or NAS. Ensure sufficient space and I/O. For ZFS, consider setting compression=zstd on the backup dataset. Test restores regularly (Datacenter > Backup > Restore).
ZFS high RAM usage: ZFS ARC will cache aggressively. Limit it by adding e.g., options zfs zfs_arc_max=4G in /etc/modprobe.d/zfs.conf and update-initramfs -u, then reboot. Plan extra RAM if you chose ZFS.
GPU passthrough not working: Enable VT‑d/AMD‑Vi and IOMMU in BIOS and kernel cmdline (intel_iommu=on or amd_iommu=on in GRUB), isolate the GPU with vfio-pci, and use a separate GPU for the host if possible. Check IOMMU groups (find /sys/kernel/iommu_groups/ -type l).
NoVNC console black screen: Try SPICE console, or set the VM Display to Default/VGA. If using GPU passthrough, the NoVNC console may be blank by design—use network or RDP/SSH into the guest.
Time drift or cert issues: Ensure NTP is running on the host (timedatectl status). Mismatched time can break TLS and clustering.
Disk missing after install: If you installed to ZFS, Proxmox may have used the whole disk. Add additional disks as separate storages (Datacenter > Storage > Add). Avoid hardware RAID with ZFS; use HBA/IT mode so ZFS sees raw disks.
ISO upload fails: Check you’re uploading to “local” under ISO Images and that there’s free space on the OS disk. Alternatively, add a directory storage on a larger disk for ISOs.
Can’t create snapshots: Ensure the storage supports snapshots (ZFS, LVM‑thin). Raw directories without QCOW2 won’t do live snapshots; use backups before risky changes.
Cloud‑Init networking not applying: Set the Cloud‑Init settings under the VM’s Cloud‑Init tab and regenerate (Cloud‑Init > Regenerate Image). Ensure the VM NIC model and bridge are set correctly and Cloud‑Init packages are installed in the template.
Slow web UI: Check host load and storage latency. Browser extensions or certificate interstitials can slow first load—accept the self‑signed cert or install a proper certificate via Datacenter > ACME or your CA.
After updates, services won’t start: Reboot if a new kernel was installed. Then check systemctl status pvedaemon pveproxy pve-cluster and journalctl -xe for errors.
Restore test fails: Match restore target storage type (e.g., restore a ZFS‑backed VM to ZFS or convert format). Verify backup integrity and consider zstd compression for speed.
Next Steps: Growing Your Lab Safely
Add a second storage for backups and ISO/templates (separate disk or NAS via NFS/SMB).
Learn Proxmox Firewall basics (Datacenter and Node levels) before exposing services.
Introduce VLANs with a managed switch and a virtual router VM only after you’re comfortable with the single‑bridge setup.
Automate: use tags, notes, and scheduled backups; consider Ansible for guest provisioning.
Document changes, keep snapshots short‑lived, and practice restores—treat your lab like production.