Back to Blog
Smart Home

Why I Virtualize Home Assistant on Unraid (and How to Do It Right)

1/21/2026
10 min read

I love Docker. I use it for almost everything on my Unraid server. They all run in containers because it’s efficient and clean. But for Home Assistant? I treat it differently.

I love Docker. I use it for almost everything on my Unraid server. My apps all run in isolated containers because it’s efficient, lightweight, and clean.

But for Home Assistant? I treat it entirely differently.

I don’t run Home Assistant in a Docker container. I run the full Home Assistant Operating System (HAOS) as a Virtual Machine (VM) directly on Unraid. Here is exactly why I made that choice, and how you can spin it up securely in about 10 minutes.

Why VM over Docker?

If you check the Home Assistant forums, this is the #1 debate: "Why waste resources on a VM when Docker is lighter?"

For me, it comes down to two critical factors: Add-ons and Appliance-like Stability.

When you run the "Container" version of Home Assistant, you lose the Supervisor panel. That means no one-click Add-on store. If I want to run ESPHome, Z-Wave JS UI, or a local MQTT Broker, I have to deploy separate Docker containers for each one and network them together manually.

With a VM, I get the full HAOS ecosystem. I can click "Install" on an add-on, and it just works. Plus, restoring a full environment backup (including all those add-ons) is a single file upload. When my smart home controls the lights, the locks, and the charging schedule for my Model Y, I want appliance-level reliability, not a weekend tinkering project.

The Setup

Getting HAOS running on Unraid is arguably easier than writing a Docker compose file.

1. Get the Image Go to the official Home Assistant installation page and look for the KVM/QEMU image (it will be a .qcow2 file). Download it to your desktop and extract it from the .xz archive.

2. Prepare the File Unraid needs this file to live in your domains share (or wherever you store your vdisks).

  • Create a folder in your domains share called "HomeAssistant".
  • Upload the extracted .qcow2 file into that new folder.

3. Create the VM In the Unraid WebGUI, navigate to the VMs tab and click Add VM. Select Linux. Here are the settings I use for a rock-solid instance:

  • CPU Mode: Host Passthrough
  • Logical CPUs: 2 (Plenty, unless you are heavily compiling ESPHome devices).
  • Initial & Max Memory: 4096 MB (Pro-tip: Don't skimp here. Give it 4GB of RAM. 2GB will boot, but the moment you start running heavy add-ons, the VM will choke).
  • Machine: i440fx (Q35 works, but i440fx is the most stable default).
  • BIOS: OVMF
  • Primary vDisk Location: Select "Manual" and point it directly to the .qcow2 file you just uploaded.
  • Network Bridge: br0

Important: Before you click create, uncheck "Start VM after creation." We need to make one final hardware tweak.

The USB Passthrough (Zigbee/Z-Wave)

This is the part that intimidates people, but Unraid makes it beautifully simple.

If you are using a local Zigbee or Z-Wave stick, plug it into your server. Edit your new Home Assistant VM. Scroll to the very bottom to the USB Devices section, and simply check the box next to your specific radio stick. Now, start the VM.

Onboarding & Security

Give it about 2-3 minutes to boot up. Open your browser and go to http://<YOUR-UNRAID-IP>:8123.

You should see the Home Assistant onboarding screen. Because it's a VM running on a br0 bridge, it gets its own dedicated IP address via DHCP from your router, keeping it isolated from Unraid's WebGUI.

Security Note: Never port-forward port 8123 directly to the open internet. If you want remote access outside your house, set up a secure Cloudflare Tunnel or a WireGuard VPN.

Final Thoughts

I have been running this exact setup for years. It has survived Unraid OS updates, power grid outages, and my own terrible YAML configurations.

The best part? If I ever break Home Assistant so badly that it refuses to boot, I don't have to troubleshoot obscure Linux dependencies. I just delete the vdisk file, drop in a fresh copy, and hit "Restore Backup." Fifteen minutes later, the house is back online and Bailey's smart feeder is back on schedule.

If you have the RAM to spare, skip the Docker container. Treat your smart home like the critical infrastructure it is.


Disclaimer: This guide is for educational and informational purposes. Modifying server configurations, network bridging, and virtual machines carries the risk of data loss and network vulnerabilities. Ensure you maintain isolated backups of your Unraid flash drive and Home Assistant instances. Grant Glazer assumes no liability for system instability, hardware failures, or security breaches resulting from these configurations.