Quick answer

HAOS ships as a qcow2 disk image rather than an ISO, so the VM is created empty and the image imported afterwards. Build a q35 VM on OVMF UEFI, delete the disk Proxmox adds, then run qm importdisk 200 /tmp/haos_ova-*.qcow2 local-lvm and attach the result as scsi0 first in boot order. Onboarding waits on port 8123.

By LK Wood IV · 2026-05-31 · ~13 min read · St. Louis County, MO

Architecture diagram of Home Assistant OS running as a Proxmox VM (ID 200, q35/UEFI, SCSI, VirtIO on vmbr0): the Supervisor orchestrating Zigbee2MQTT, Frigate, Tailscale, and Rclone add-ons, USB passthrough of a Zigbee/Z-Wave coordinator by vendor:product ID, the HA dashboard on port 8123, and a two-layer backup of PBS VM snapshots plus HA config backups to a NAS.

Running Home Assistant on dedicated hardware (a Pi, an old NUC) made sense five years ago. If you already have a Proxmox homelab, there is no reason for a second machine. (If you don’t have a homelab yet and just want a dedicated box for Home Assistant, start with our best mini PC for Home Assistant guide and come back here to install it.) A HAOS VM on Proxmox runs exactly like bare-metal HAOS, gets the same updates, supports all add-ons, and takes up about 4GB of RAM when loaded.

This guide installs Home Assistant OS as a Proxmox VM — the supported method that gets you Supervisor, the add-on store, and HA-style snapshots. Not HA Core in an LXC (unsupported, loses add-ons), not HA Container (no Supervisor). HAOS in a VM.

Why VM, not LXC

The LXC vs VM decision applies here clearly: Home Assistant OS is a full operating system, not a service. It runs its own kernel, manages its own update cycle, and orchestrates multiple internal containers via Supervisor. Putting it in an LXC violates the architectural contract HAOS was designed around and breaks add-ons that depend on host kernel access.

If you want to run it in a container anyway, use the official Home Assistant Container image in Docker — but you lose Supervisor and the add-on ecosystem. For everything, use a VM.

Step 1: Download the HAOS disk image

Go to home-assistant.io/installation/alternative and download the KVM/Proxmox image. As of 2026 this is a .qcow2 file — pre-built disk image for QEMU.

Or download directly to your Proxmox host:

# SSH into Proxmox host
cd /tmp

# Get the latest HAOS version number from GitHub releases
HAOS_VERSION=$(curl -s https://api.github.com/repos/home-assistant/operating-system/releases/latest | grep tag_name | cut -d'"' -f4)

# Download qcow2 image (replace x86_64 with aarch64 for ARM)
wget "https://github.com/home-assistant/operating-system/releases/download/${HAOS_VERSION}/haos_ova-${HAOS_VERSION}.qcow2.xz"

# Extract
xz -d haos_ova-${HAOS_VERSION}.qcow2.xz

Step 2: Create the VM in Proxmox

In the Proxmox web UI, click Create VM:

General tab:

  • Node: your Proxmox host
  • VM ID: choose a free ID (e.g., 200)
  • Name: home-assistant

OS tab:

  • Select “Do not use any media” (we’ll import the disk image instead of booting from ISO)

System tab:

  • Machine: q35
  • BIOS: OVMF (UEFI) — HAOS requires UEFI
  • Check “Add EFI Disk” → storage: local-lvm (or your preferred storage)

Disks tab:

  • Delete the default disk that was created (we’ll import our own)

CPU tab:

  • Sockets: 1
  • Cores: 2 (minimum), 4 recommended for add-ons like Frigate
  • Type: host — lets the VM use your CPU’s full instruction set

Memory tab:

  • 2048 MB minimum, 4096 MB comfortable

Network tab:

  • Bridge: vmbr0 (your main LAN bridge)
  • Model: VirtIO

Click Finish — do NOT start the VM yet.

Step 3: Import the HAOS disk

SSH into Proxmox and import the downloaded image into the VM you just created. Replace 200 with your VM ID and local-lvm with your storage:

qm importdisk 200 /tmp/haos_ova-*.qcow2 local-lvm

This creates a new disk in the storage. Back in the Proxmox web UI:

  1. Go to the VM → Hardware
  2. You’ll see an “Unused Disk” entry — click it → Edit
  3. Set Bus/Device to SCSI (scsi0) — required for best performance with HAOS
  4. Enable Discard (for SSD/NVMe storage)
  5. Click Add

Now set the boot order:

  1. VM → Options → Boot Order
  2. Enable scsi0 and move it to position 1
  3. Disable any other boot devices

Step 4: First boot and initial setup

Start the VM. In the Proxmox web console, watch the boot sequence. HAOS boots in about 30–60 seconds on first run (initial setup takes longer as it downloads updates).

Find the IP address. HAOS uses DHCP by default. Check your router’s DHCP table for a device named homeassistant, or watch the console — HAOS prints its IP when fully booted.

Open a browser to http://homeassistant-ip:8123. You’ll see the Home Assistant onboarding wizard:

  1. Create your account
  2. Set your home location
  3. HA will discover devices on your network automatically — review them and add what’s yours

After onboarding, go to Settings → System → Updates and apply any pending updates. HAOS manages its own OS updates separately from HA Core updates.

Step 5: USB device passthrough (Zigbee/Z-Wave)

If you have a Zigbee coordinator (Sonoff Zigbee 3.0 Dongle Plus, HUSBZB-1, Aeotec Z-Stick) or Z-Wave stick connected to your Proxmox host, pass it through to the HA VM.

Identify the device on the host:

lsusb

Find your coordinator in the list. Note the vendor:product ID (e.g., 1a86:55d4 for the Sonoff Zigbee dongle).

Pass through in Proxmox:

  1. VM → Hardware → Add → USB Device
  2. Select Use USB vendor/product ID (not port — this survives physical port changes)
  3. Enter vendor ID and product ID
  4. Click Add

Restart the VM. In Home Assistant, go to Settings → Add-ons → Zigbee2MQTT (install from the add-on store), configure it with the USB device path (typically /dev/ttyACM0 or /dev/ttyUSB0 — check the Z2M add-on logs if wrong).

Step 6: Configure external backups

HAOS has its own backup system (supervisor-level snapshots). By default, backups stay inside the HAOS VM. For real off-site protection, configure an external backup location.

NAS via SMB/CIFS:

  1. Home Assistant → Settings → System → Backups
  2. Configure a network backup location → SMB share on your NAS
  3. Set automatic backup schedule (daily is reasonable for an active HA setup)

Rclone add-on: The community Rclone add-on can sync HA backups to Backblaze B2, Google Drive, or any rclone-supported destination. Combined with your PBS VM backup, this gives you two-layer coverage: HA config-level backups on NAS, full VM snapshot via PBS.

Step 7: Remote access

Nabu Casa (Home Assistant Cloud). The easiest remote access option — $65/year buys remote access, Google/Alexa integration, and supports HA development. If you’re already paying for cloud services, this is worth it.

Tailscale add-on. For free remote access through Tailscale, install the Tailscale add-on from the HA add-on store. After installing and authorizing, your HA instance gets a Tailscale IP and becomes accessible from anywhere on your tailnet. No port forwarding, no external domain required.

Install the add-on: Settings → Add-ons → Add-on Store → search “Tailscale”

The Tailscale add-on handles the key exchange and keeps the tunnel running. Combined with your existing Tailscale homelab setup, HA is just another device on your tailnet.

NGINX Proxy Manager. If you want a proper domain with HTTPS: add a proxy host in NPM pointing to the HA VM’s LAN IP on port 8123. Enable Let’s Encrypt. In HA’s configuration.yaml:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.1.x  # NPM container's LAN IP

Increasing VM disk size

HAOS ships with a ~6GB disk image. If you’re using add-ons that store data (Frigate with video, Music Assistant with a library, or large recorder databases), you’ll need more. Frigate is the one that gets away from people — the Frigate NVR storage calculator turns camera count, resolution, codec, and retention into an actual figure before you size the disk.

Resize in Proxmox (VM must be running):

qm resize 200 scsi0 +32G

HAOS’s filesystem resizing is automatic — it detects available space at boot and expands its partition to fill the disk. No fdisk, no resize2fs.

Performance notes

HAOS on a Proxmox VM with host CPU type and VirtIO networking is functionally indistinguishable from bare-metal performance for home automation workloads. HA Core updates complete in under 60 seconds. Z-Wave and Zigbee latency is USB-passthrough latency — no virtualization penalty.

The one area where a dedicated Pi still has an edge: always-on idle power consumption. HAOS on Proxmox shares the host’s idle draw. If your Proxmox host is a mini PC using 20W at idle, HA is part of that 20W — but so are your other VMs and containers. It doesn’t add measurable power on its own. A dedicated Pi 5 would use 3–5W idle for HA alone, but then you’ve added another device to manage. The Power & Cost Calculator can model both scenarios.


Running HAOS and other services on Proxmox? The Proxmox Backup Server guide covers protecting the whole setup with 3-2-1 backups. For remote access to the HA dashboard without opening ports, Tailscale or WireGuard both work well — Tailscale is faster to set up, WireGuard gives you full control. To trigger automations from outside Home Assistant (n8n workflows calling the HA REST API, for example), the n8n self-hosted guide covers connecting to LAN services. For the next step after this guide — pairing Zigbee devices via Zigbee2MQTT and Z-Wave devices via Z-Wave JS UI, and managing mesh health — the Zigbee and Z-Wave integration guide picks up where this one leaves off. Once your devices are paired and reporting state, the Home Assistant automations guide covers turning those devices into triggers, conditions, and actions.

Sources

Frequently asked questions

Why use a VM instead of an LXC for Home Assistant?
Home Assistant OS (HAOS) is a full Linux distribution designed to be the entire OS on its target machine. It manages its own kernel, update cycle, and add-on containers. Running it in a Proxmox VM gives it the dedicated environment it expects while keeping it isolated from your other services. Home Assistant in an LXC is possible but unsupported and breaks some add-ons.
Can I use a Zigbee or Z-Wave USB stick with Proxmox Home Assistant?
Yes — pass the USB device through to the VM. In Proxmox, go to the VM’s Hardware tab → Add → USB Device. Pass the specific device by vendor/product ID rather than by port, so it stays connected after you move the stick between USB ports.
How do I back up Home Assistant on Proxmox?
Two-layer backup: PBS backs up the entire VM (including HAOS), and Home Assistant’s own backup system creates .tar backups of the HA configuration and add-ons. Store HA’s backups externally — in the HA supervisor, configure a backup location on your NAS. Never rely only on VM-level backups for HA; HA’s config backups are smaller and more portable.
What are the minimum VM resources for HAOS?
Home Assistant’s official recommendation is 2 vCPUs, 2GB RAM, 32GB storage. For a homelab with many add-ons (Frigate NVR, music assistant, etc.), allocate 4 vCPUs and 4GB RAM. HAOS itself is lightweight; the RAM requirement comes from whatever add-ons you install.
Does this installation method support Home Assistant Supervisor and add-ons?
Yes. HAOS installed via this method is a fully supported installation — you get Supervisor, all add-ons from the official store, Home Assistant OS updates via the UI, and full support from the HA community. Installing HA Core or HA Container in an LXC is an unsupported installation that loses add-on support.

Evidence ledger

Last updated
Methodology
This tutorial was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs, prices, commands, and version numbers are drawn from the official vendor, reseller, and project documentation current on the date above, and were verified before publishing. First-person hardware claims appear only where the article shows a verifiable artifact — a photo, receipt, or measurement — or links to the TechFuelHQ Open Bench Datasets. Every fact is human-verified against its cited source before publishing; AI assists with first-draft structure and source-gathering, not with the verdict. Full editorial standard: methodology.
Update log
  • 2026-07-25 — Last reviewed and updated.
Corrections
Spotted an error or stale price? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV. Lowell builds and runs TechFuelHQ from St. Louis, Missouri, pairing thirteen-plus years of hands-on homelab, PC, server, and networking experience with cited third-party testing and first-party benchmarks on the gear he still runs. He also works ground EMS as a Nationally Registered Paramedic (NREMT).