
My previous post discussed how to get a headless Steam instance running on TrueNAS SCALE. I had a spare GPU which I wanted to repurpose to play (older) video games without first needing to boot my desktop.
This post roughly documents how I run my Home Assistant instance on my TrueNAS SCALE server. The official website details several installation methods, which mainly comes down to two installation types:
-
either a full-fledged OS image (HA OS), or;
-
a (less feature-complete) containerised version.
Sure, using TrueNAS SCALE one could also opt to install Home Assistant as an 'app' via the 'Apps' catalog, but that is basically the containerised version using Docker. HA OS is most feature-complete, offering easy to install add-ons, and hassle-free updates of the entire system, which you can initiate via the app on your mobile phone. I therefore went with HA OS, basically by following the regular Linux installation instructions and making some minor changes:
-
Create a new Zvol (at least 32 GB).
-
Download the KVM (.qcow2) image from the above Linux installation instructions, and write the uncompressed image directly to the Zvol.
user $ wget https://github.com/home-assistant/operating-system/releases/download/16.2/haos_ova-16.2.qcow2.xz user # xzcat haos_ova-16.2.qcow2.xz | dd of=/dev/zvol/tank/.ix-virt/virtual-machines/homeassistant.block status=progress
-
Create a new Instance (VM) in TrueNAS SCALE, using the Zvol as its root disk, and configure it with 2 vCPUs and 4 GiB of RAM (more is better, but this works fine for me).
-
Add a new bridged network interface, and attach your Zigbee USB dongle as a USB pass-through device. Start the instance, and wait for Home Assistant to finish its initial setup.
-
Once that’s done, you can access the web interface at
http://<your-truenas-ip>:8123
. From there, you can proceed with the onboarding process as usual.
When connecting to Home Assistant from the Internet I recommend exercising proper security hygiene (e.g. VPN, 2FA, strong passwords, reverse proxy with TLS, etc.).