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.
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.
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).
domains share called "HomeAssistant"..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:
.qcow2 file you just uploaded.Important: Before you click create, uncheck "Start VM after creation." We need to make one final hardware tweak.
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.
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.
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.