Proxmox VE turns any old PC or mini server into a powerhouse that runs Home Assistant alongside everything else you need. Here's how to set it up properly, from initial install to USB passthrough, backups, and companion services.
Proxmox VE is a free, open-source hypervisor built on Debian. It lets you run multiple virtual machines and containers on a single box. For home automation, that means Home Assistant gets its own isolated VM while you run other services alongside it.
The honest take: If you only want Home Assistant and nothing else, skip Proxmox. Install HA OS directly on a Home Assistant Green or mini PC. But if you're the kind of person who will end up running a dozen services on your home server (and you probably are, if you're reading this), Proxmox pays for itself in flexibility within the first month.
| Feature | Proxmox VM | Docker | Bare Metal (HA OS) |
|---|---|---|---|
| Add-on Store | โ Full | โ Manual containers | โ Full |
| Run other services | โ VMs + LXCs | โ Containers | โ HA only |
| VM-level snapshots | โ Instant rollback | โ | โ |
| Setup complexity | Medium | Medium | Easy |
| Resource overhead | ~512MB for Proxmox | ~100MB for Docker | None |
| Service isolation | โ Full VM isolation | Partial (shared kernel) | N/A |
| USB passthrough | โ Device or port | โ Device mapping | โ Native |
Proxmox needs an x86 machine with VT-x and VT-d support. Here are three good starting points.
Old office PC or Dell OptiPlex
Intel N100 mini PC (Beelink, MinisForum)
Intel NUC or custom build
The N100 is the sweet spot for most people. It draws about 10 watts at idle (roughly $15/year in electricity), has enough power for Home Assistant plus a handful of other services, and fits on a shelf. If you plan to run Frigate for AI camera detection, consider the power user tier since Frigate benefits from a Coral TPU and more CPU headroom.
Download the Proxmox VE ISO from proxmox.com/downloads. Flash it to a USB drive using Balena Etcher or Rufus. Boot your server from the USB.
The graphical installer walks you through disk selection, timezone, and network config. Pick your SSD as the target disk. Set a strong root password. For the network, use a static IP so your server always has the same address on your network.
After installation completes and the server reboots, open a browser on any computer on your network and go to https://YOUR-IP:8006. Log in with root and the password you set. Ignore the "no valid subscription" popup, it's just a reminder that you're using the free version.
Before creating any VMs, do these three things:
apt update && apt full-upgrade -y/etc/default/grub and add intel_iommu=on (or amd_iommu=on) to the GRUB_CMDLINE_LINUX_DEFAULT line.The recommended approach is running Home Assistant OS as a virtual machine. You get the full experience: Supervisor, add-ons, automatic updates, and managed backups.
Go to the Home Assistant installation page and download the qcow2 image for "Linux/KVM". Transfer it to your Proxmox server using SCP or the web interface upload.
# On your Proxmox host shell:
cd /var/lib/vz/template/
wget https://github.com/home-assistant/operating-system/releases/download/14.2/haos_ova-14.2.qcow2.xz
xz -d haos_ova-14.2.qcow2.xzCheck the releases page for the latest version number.
In the Proxmox web UI, click "Create VM" and use these settings:
In the Proxmox host shell, import the qcow2 image into your VM. Replace 100 with your VM ID.
qm importdisk 100 /var/lib/vz/template/haos_ova-14.2.qcow2 local-lvmAfter the import, go to the VM's Hardware tab. You'll see an "Unused Disk." Double-click it, set the bus to SCSI (with VirtIO SCSI controller), and click Add. Then go to Options, set Boot Order to boot from this disk first.
The default image is only 32GB. If you plan to use many add-ons or store a lot of history, resize it:
# Add 32GB more (total: 64GB)
qm resize 100 scsi0 +32GHA OS will automatically expand to use the extra space on next boot.
Start the VM. Watch the console in Proxmox. After a few minutes, you'll see a message showing the HA URL. Open http://homeassistant.local:8123 (or the IP shown) in your browser to complete the onboarding wizard.
Your Zigbee or Z-Wave coordinator dongle plugs into the Proxmox host, not the VM. You need to pass it through.
SSH into your Proxmox host and run:
lsusb
# Look for your dongle, e.g.:
# Bus 001 Device 003: ID 1a86:55d4 QinHeng Electronics SkyConnect
ls -l /dev/serial/by-id/
# Shows persistent device pathsIn the Proxmox web UI: select your HA VM, go to Hardware, click Add, then USB Device. Choose "Use USB Vendor/Device ID" and select your dongle from the dropdown. This method survives reboots and reconnects automatically.
Alternatively, use the command line:
qm set 100 -usb0 host=1a86:55d4If the VM can't see the USB device after adding it, shut down the VM completely (not just reboot) and start it again. Hot-plugging USB devices works sometimes, but a full stop/start is more reliable for the initial setup.
Some people prefer running Home Assistant in an LXC container instead of a VM. Here's when that makes sense.
The recommendation: Use the VM approach unless you have a very specific reason for LXC. The small extra resource usage is worth the convenience of add-ons and managed updates. If you're on extremely limited hardware (under 4GB RAM total), LXC might be your only option, but consider upgrading the RAM instead.
Half the fun of Proxmox is running other stuff alongside Home Assistant. Here's what the community typically adds.
LXC container. Handles SSL certificates and remote access with a web GUI. Way easier than editing nginx configs by hand.
LXC container. Network-wide ad blocking and DNS management. Also useful for blocking IoT devices from phoning home.
VM or LXC. Media server for movies and TV. Pairs well with HA for media player automations.
VM or LXC with Coral TPU passthrough. AI-powered camera recording and object detection. This is the main reason people go power user tier.
LXC container. Long-term data storage and beautiful dashboards for energy usage, temperature history, and more.
VM. Dedicated backup solution that does incremental, deduplicated backups of all your VMs and containers. Free and very efficient.
LXC container. VPN for secure remote access to your entire home network, not just Home Assistant.
VM with disk passthrough. Network file storage for your whole household. Some people run TrueNAS as the base OS and Proxmox inside, but that's another rabbit hole entirely.
Tip: Use Proxmox community scripts. The Proxmox VE Helper Scripts project (formerly tteck scripts) has one-liner installers for most of these services. They create properly configured LXC containers in minutes. Just make sure you review what each script does before running it.
Running HA on Proxmox gives you two backup layers. Use both.
HA's built-in backup system saves your configuration, automations, dashboards, and add-on data. Schedule these daily. Use the Google Drive or Samba add-on to copy them off the VM automatically.
This is the real power move. Proxmox can snapshot the entire VM state, including the OS, disk, and memory.
Snapshots and local backups protect you from bad updates and config mistakes. They don't protect you from hardware failure, theft, or a power surge frying the drive. Copy your backups to an external drive, NAS, or cloud storage at least weekly.
Set the network adapter and disk controller to VirtIO. It's paravirtualized, meaning less overhead than emulated hardware. HA OS supports it natively.
Home Assistant writes thousands of small database entries per day. Running it on a spinning disk makes everything sluggish. Use an SSD or NVMe drive for the VM storage.
2GB is fine for a basic HA setup. 4GB is comfortable with many add-ons. Don't give HA 8GB "just in case" if other VMs need the memory. You can always increase it later.
Memory ballooning lets the VM give unused RAM back to Proxmox. Set a minimum (e.g. 1024MB) and maximum (e.g. 4096MB). HA will use what it needs and release the rest.
Set the CPU type to "host" instead of the default "kvm64". This exposes your actual CPU features to the VM, which can improve performance for certain workloads.
In VM Options, enable "Start at boot" and set the startup order. Give HA a boot delay of 30 seconds so your network services (Pi-hole, etc.) start first.
Flash the ISO, run the installer, configure networking. Log in to the web UI and run updates.
Download the image, create the VM, import the disk, set up USB passthrough for your dongle. Complete the HA onboarding.
Start pairing devices. Set up your Zigbee network. Create your first automations.
Set up Pi-hole, configure backups, add any other LXC containers you want. Set everything to start on boot.
Run our free compatibility scan to see which of your current smart home devices work with Home Assistant, and which ones might need replacing.
Scan Your Devices FreeUse a VM for Home Assistant OS. It gives you the full Supervisor experience with one-click add-ons, automatic updates, and managed backups. LXC containers use fewer resources but require the Container install method, which means no add-on store and more manual work. For most people, the VM approach is worth the small extra overhead.
At minimum, an Intel N100 mini PC or equivalent with 8GB RAM and a 256GB SSD. Home Assistant itself needs about 2GB RAM and 32GB storage in its VM. The rest is available for other VMs and containers. Any 64-bit x86 CPU with VT-x/VT-d support works. Avoid Raspberry Pi since Proxmox does not officially support ARM.
In the Proxmox web interface, select your HA VM, go to Hardware, click Add, then USB Device. Choose "Use USB Vendor/Device ID" and select your dongle. This method reconnects automatically even if you unplug and replug the device. Find your device IDs by running lsusb on the Proxmox host.
That's the whole point of Proxmox. Run HA OS in one VM while other services live in separate VMs or LXC containers. Common companions include Pi-hole, Plex/Jellyfin, Nginx Proxy Manager, Grafana, WireGuard, and Frigate NVR. Each service gets its own isolated environment.
If Home Assistant is truly the only thing you'll run, then yes. Just install HA OS directly on the hardware. But most people who set up a home server end up running more services within a few months. Proxmox makes it trivial to add new VMs and containers without reinstalling anything.
Update them separately. For Proxmox, run apt update && apt full-upgrade on the host (after checking release notes). For Home Assistant, update through the Supervisor in the HA web UI, just like a bare metal install. Take a Proxmox snapshot before updating either one so you can roll back instantly.
Yes. USB Coral TPUs work with standard USB passthrough (same as Zigbee dongles). PCIe Coral TPUs require PCI passthrough with IOMMU enabled. The USB version is much simpler to set up. If you run Frigate in its own VM or LXC, pass the Coral to that container, not the HA VM.
All 4 install methods compared
Docker Compose setup and companion containers
Automated backups and disaster recovery
Coordinators, ZHA vs Z2M, best devices
Frigate NVR and AI object detection
Best first devices and setup guide