I love Docker. I use it for almost everything on my Unraid server. But for Home Assistant? I treat it differently. Here is why I run HAOS as a VM, and how to set it up.
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 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 why I do it, and how you can set it up in about 10 minutes.
If you check the Home Assistant subreddit, this is the #1 debate. "Why waste resources on a VM when Docker is lighter?"
For me, it comes down to two things: Add-ons and USB Passthrough.
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 File Editor, I have to set up separate Docker containers for each one and network them together manually.
With a VM, I get the full HAOS experience. I can click "Install" on the Mosquitto Broker add-on, and it just works. Plus, restoring a full backup (including all those add-ons) is a single file upload. When my smart home controls the lights, locks, and garage doors, I want "appliance-like" stability, not a tinkering project.
Getting HAOS running on Unraid is actually easier than composing a Docker stack. You just need to download the image and point a VM at it.
Get the Image
Go to the Home Assistant installation page and look for the KVM/QEMU image (usually a .qcow2 file). Download that to your desktop.
Prepare the File
Unraid needs this file to be in your domains share (or wherever you store vdisks).
isos or domains share called "HomeAssistant"..qcow2 file from the zip you downloaded.Create the VM In Unraid, go to the VMS tab and click Add VM. Select Linux.
Here are the settings I use for a rock-solid instance:
.qcow2 file you uploaded.Important: Before you click create, uncheck "Start VM after creation." We need to make one tweak.
This is the part that scares people, but Unraid makes it simple.
If you have a Zigbee or Z-Wave stick (like the Sonoff 3.0 or a Zooz stick), plug it into your server.
Now, start the VM.
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. From here, you can restore a backup or start fresh. Since it's a VM, the IP address will be different from your Unraid server's IP (it gets its own via DHCP), so check your router if homeassistant.local:8123 doesn't work instantly.
I have been running this setup for over two years. It has survived Unraid updates, power outages, and my own bad configuration changes.
The best part? If I ever mess up Home Assistant so badly that it won't boot, I don't have to troubleshoot Linux dependencies. I just delete the vdisk, replace it with a fresh copy, and upload my backup. 15 minutes later, the house is back online.
If you have the RAM to spare, skip the Docker container. Treat your smart home like the critical infrastructure it is.