This article contains affiliate links. If you purchase through our links, we may earn a commission at no extra cost to you. We only recommend products we’ve thoroughly researched and verified.

Running Home Assistant OS in a Proxmox VM is the homelab-standard approach for users who want HAOS’s features — Supervisor, add-ons, straightforward updates — alongside the flexibility of running other services on the same mini PC. One mini PC can run HAOS for smart home, Plex for media, Pi-hole for DNS filtering, and Nextcloud for file sync simultaneously.
This guide covers the complete setup: Proxmox installation, HAOS VM creation, USB passthrough, and optimization.
Time required: 30-45 minutes
Difficulty: Intermediate
Hardware Requirements
| Minimum | Recommended |
|---|---|
| 4GB RAM | 16GB RAM |
| 4-core CPU | 8-core CPU |
| 64GB storage | 256GB+ NVMe |
| 1 NIC | 2 NICs |
Recommended mini PCs for Proxmox + HAOS:
| Mini PC | Why It Works | Price |
|---|---|---|
| GEEKOM IT12 | 8 cores, 16-32GB DDR5, 3-year warranty | ~$280-350 |
| Beelink EQ14 | Dual NICs, 16GB, low power | ~$180-200 |
| Beelink SER9 | 8 cores, 32GB, ROCm for AI | ~$320-380 |
Part 1: Install Proxmox VE
Step 1: Download and Flash Proxmox ISO
- Download Proxmox VE 8.x ISO from proxmox.com/downloads
- Flash to USB with Balena Etcher
- Boot mini PC from USB press Delete/F7 during boot for boot menu
Step 2: Install Proxmox
The Proxmox installer is straightforward:
- Select “Install Proxmox VE Graphical”
- Target disk: select your internal NVMe
- Country and timezone: set your location
- Email: enter a real address used for alerts
- Network: set a static IP e.g., 192.168.1.10 — this is your permanent Proxmox address
- Complete installation and reboot
Remove USB drive when prompted. Proxmox boots in ~30 seconds.
Step 3: Initial Proxmox Setup
Access the web GUI at https://192.168.1.10:8006 your mini PC’s IP:
# Remove enterprise repository subscription nag (optional)
# In Proxmox shell (node → Shell):
sed -i 's|^deb|#deb|' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt dist-upgrade -y
Part 2: Create the HAOS VM
Step 4: Download the HAOS KVM Image
In Proxmox shell Node → Shell:
# Create a working directory
mkdir -p /tmp/haos && cd /tmp/haos
# Download the latest HAOS KVM image (check home-assistant.io for current version)
wget -O haos.qcow2.xz \
"https://github.com/home-assistant/operating-system/releases/download/13.1/haos_ova-13.1.qcow2.xz"
# Decompress
xz -d haos.qcow2.xz
ls -lh haos.qcow2 # Should show ~1GB file
Check github.com/home-assistant/operating-system/releases for the current version number to replace 13.1 above.
Step 5: Create the VM
In Proxmox GUI Create VM button, top right:
General:
- VM ID: 100 or any number
- Name: home-assistant
OS:
- Select “Do not use any media”
System:
- Machine: q35
- BIOS: OVMF UEFI
- Add EFI Disk: checked
- TPM: unchecked HAOS doesn’t need it
Disks:
- Delete the default disk we’ll import HAOS image instead
CPU:
- Cores: 4 minimum 2
- Type: host enables full CPU feature passthrough
Memory:
- 8192 MB 8GB — adjust based on your total RAM
Network:
- Bridge: vmbr0
- Model: VirtIO
Confirm: Create the VM don’t start yet.
Step 6: Import the HAOS Disk Image
In Proxmox Shell:
# Import HAOS image as VM 100's disk on local-lvm storage
qm importdisk 100 /tmp/haos/haos.qcow2 local-lvm
# This creates an unused disk — note the disk name (e.g., vm-100-disk-1)
Step 7: Attach the Imported Disk
In Proxmox GUI → VM 100 → Hardware:
- Find “Unused Disk 0” the imported HAOS image
- Double-click → Add
- Bus: SCSI, SCSI Controller: VirtIO SCSI
- Cache: Write Back
- Confirm
Then set boot order:
- VM 100 → Options → Boot Order
- Enable scsi0 the HAOS disk and move it to top
- Disable any other boot devices
Step 8: Start the VM
- VM 100 → Start
- Open Console to watch boot progress
- HAOS boots in ~60-90 seconds
- Console shows the HAOS CLI with IP address
Part 3: Configure HAOS
Step 9: Access Home Assistant Web UI
- Navigate to
http://homeassistant.local:8123
OR use the IP shown in the Proxmox console - Complete the HAOS onboarding wizard
- Create your account and set home location
Part 4: USB Passthrough for Zigbee/Z-Wave/Coral
Step 10: Pass Through USB Devices
For Zigbee coordinators, Z-Wave sticks, or Google Coral USB:
In Proxmox GUI:
- VM 100 → Hardware → Add → USB Device
- Select “Use USB vendor/device ID”
- Find your device in the dropdown plug it in first
- Add
The USB device appears in HAOS as if physically connected.
Verify in HAOS:
- Settings → System → Hardware → shows USB device
For Zigbee2MQTT add-on: The SONOFF Zigbee dongle appears as /dev/ttyUSB0 or /dev/ttyACM0 in HAOS.
Part 5: Running Other Services Alongside HAOS
LXC Container for Docker Services
Create a separate LXC container for Docker workloads Plex, Nextcloud, Pi-hole that don’t need HAOS’s Supervisor:
# In Proxmox Shell — create Ubuntu 24.04 LXC container
pct create 101 local:vztmpl/ubuntu-24.04-standard_24.04-1_amd64.tar.zst \
--hostname docker-host \
--memory 4096 \
--cores 2 \
--storage local-lvm \
--rootfs local-lvm:32 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--unprivileged 1
pct start 101
pct exec 101 -- bash -c "curl -fsSL https://get.docker.com | sh"
Resource Allocation Example 16GB Mini PC
| VM/Container | CPU | RAM | Use |
|---|---|---|---|
| HAOS VM | 4 cores | 8GB | Home Assistant + add-ons |
| Docker LXC | 2 cores | 4GB | Plex, Pi-hole, Nextcloud |
| Proxmox host | 2 cores | 4GB | Hypervisor overhead |
| Total | 8 cores | 16GB | Full homelab |
Maintenance and Backup
HAOS VM Backup
In Proxmox GUI:
- Select VM 100 → Backup → Backup Now
- Mode: Snapshot fastest or Stop most consistent
- Backups store in
/var/lib/vz/dump/by default
HAOS also has its own backup system — use both for belt-and-suspenders protection.
HAOS Updates
Update HAOS normally through Settings → System → Updates. Proxmox VM-level updates are separate from HAOS content updates.
Troubleshooting
HAOS VM Won’t Start
- Check that the EFI disk is configured System → Machine: q35, BIOS: OVMF
- Verify the boot order shows scsi0 first
- Check that the HAOS qcow2 image imported without errors
Can’t Access homeassistant.local
- Verify the VM console shows a valid IP address
- Try the IP directly instead of the hostname
- Check that vmbr0 bridge is connected to your physical NIC Proxmox → Network
USB Device Not Showing in HAOS
- Verify the device shows in Proxmox → Node → USB in the summary
- Ensure the device was attached to the correct VM ID 100
- Some USB dongles need to be re-plugged after VM passthrough is configured
Who Should Skip This Comparison
Frequently Asked Questions
Can I migrate from bare metal HAOS to Proxmox HAOS?
Yes. Create a backup in bare metal HAOS Settings → System → Backups. Set up Proxmox HAOS using this guide. On first HAOS boot, restore from the backup file. Your automations, entities, and history migrate completely.
Should I use HAOS in a VM or LXC container for better performance?
HAOS must run in a VM — not an LXC container. HAOS requires UEFI boot, dedicated kernel, and Supervisor access that LXC containers can’t provide. The VM overhead is minimal — HAOS runs as well in a Proxmox VM as on bare metal.
Can I run HAOS on the same Proxmox node as TrueNAS SCALE?
Yes, but with caveats. TrueNAS SCALE is itself a hypervisor — running it inside Proxmox as a VM nested virtualization is possible but complex. The better approach: run TrueNAS SCALE on dedicated hardware and HAOS on a separate mini PC.
How do I pass through the mini PC’s Ethernet NIC to the HAOS VM?
For PCIe passthrough of a NIC to the VM: Proxmox requires IOMMU enabled in BIOS. Add intel_iommu=on or amd_iommu=on to Proxmox’s GRUB kernel parameters. Then use PCIe Device Passthrough in the VM hardware settings. This gives HAOS direct access to a physical NIC — useful for the EQ14’s dual NICs one to HAOS, one to Docker LXC.
Can I run Home Assistant OS in Proxmox?
Yes. HAOS runs as a VM in Proxmox VE. The official method uses a pre-built HAOS KVM image. You import the image into Proxmox, create a VM from it, and boot — no OS installation required. HAOS in Proxmox behaves identically to HAOS on bare metal, including Supervisor and all add-ons.
Why run Home Assistant in Proxmox instead of bare metal?
Proxmox lets you run HAOS alongside other services on the same mini PC — Plex, Nextcloud, Pi-hole, and Docker containers in separate VMs or LXC containers. With bare metal HAOS, the entire mini PC is dedicated to Home Assistant. Proxmox gives you one box running everything, with HAOS isolated in its own VM for clean upgrades and backup.
How much RAM and CPU does Home Assistant need in Proxmox?
Assign HAOS 2 CPU cores and 4GB RAM minimum. For Frigate NVR as a HAOS add-on: 4 cores and 8GB RAM. The recommended allocation is 4 cores and 8GB RAM with the remaining cores and RAM available for other Proxmox VMs. On a 16GB mini PC, leave 2 cores and 4GB for the Proxmox hypervisor and other containers.
Can I pass a USB Zigbee dongle into the HAOS Proxmox VM?
Yes. USB passthrough in Proxmox lets the HAOS VM use a physical USB device. In Proxmox GUI: VM → Hardware → Add → USB Device. Select your Zigbee coordinator by vendor/product ID. The dongle appears in HAOS as if it were physically connected. This also works for Google Coral USB, Z-Wave sticks, and Bluetooth adapters.
Will my Home Assistant backups work if I move from Proxmox HAOS to bare metal HAOS?
Yes. HAOS backups are platform-independent. A backup created on Proxmox HAOS restores to bare metal HAOS and vice versa. This is one of HAOS’s major advantages — the backup contains your entire configuration, automations, and entity history.
