How to install Home Assistant: IMPOSSIBLE CHALLENGE
|I’ve had Home Assistant running for going on two years now. It was a worryingly easy process. So, when I came to install HASS on the ZimaBoard I reviewed recently, I figured, ‘no biggie, I got dis’. Boy was I wrong… It turns out that if you aren’t using a Raspberry Pi or running Home Assistant OS in a VM using one of the supplied VM images, it is a heinously painful experience to try and install this. So, in an effort to spare you the pain I dealt with, here’s how you do it.
If you are going to run this on a Pi, it’s so simple. Download the Raspberry Pi Imager, select your board type, Home Assistant OS from the OS list, and your MicroSD card. Hit go, then plug the card into the Pi, power it on, connect ethernet, and wait about ten minutes. Go to homeassistant.local, and you’re ready to actually set up HASS. No problems there.
If you’re happy to run it in a VM like I do, download the VM image of choice – I went with the KVM image to run in Unraid – boot it up and you’re pretty much ready to go too.
If you want to use neither of those things, this is where the fun begins. Now, you do have the option to just run Home Assistant in a Docker container, but the problem with that route is you can’t use add-ons. That’s a pretty big deal – things like Influx, Grafana, Wireguard, Node-RED and even the Silicon Labs Multiprotocol add-on are all off the table. You really don’t want to do it this way. You CAN run what they call “Home Assistant Supervised”, but they sure make it sound like it’s not an appealing option.
So, we’re left with the last option: installing HAOS onto a system as its primary operating system. Well, that shouldn’t be so hard, right? I’ve installed tens of operating systems on hundreds of machines, I know what I’m doing. I’ll just stick the ISO on my Ventoy USB stick and boot from that! Right, let me find the ISO file… hmm… generic x86_64… yeah… hmm it doesn’t seem to be there… hmm… maybe their github repo has what I’m looking for… releases… wow there’s 42 different options here, there’s got to be an ISO here somewhere…. I can’t find it.. Hmm, control F, ISO… no results… WHAT? Yeah. There’s no ISO file. How they ACTUALLY want you to do it is such a marvel of convoluted idiocy that I’m genuinely impressed.
Also, can I take one minute to call out the sheer arrogance and elitism that permeate any linux, or linux-adjacent space? Naturally, confused at my inability to find an ISO and somewhat hopeful that there was at least a community developed version somewhere on the internet, I googled “Home Assistant OS iso”. The very top result was a reddit thread, asking the r/homeassistant community if such an ISO existed. The top most comment, and the top most reply to that, are frankly an insane, elitist and patronising response. They essentially argue that if not having the industry standard method for installing an operating system is too much of a challenge for a beginner, they just shouldn’t use Home Assistant and should give up. This is an insufferable position that frankly pisses me off. I’m no noob. I’ve been running HASS for two years. I’ve written a Home Assistant Discovery via MQTT function for Pimoroni’s Enviro boards. I generally know what I’m doing when it comes to tech. But the install process for anything other than the clearly preferred methods is so brainrot that it broke me. To say that I should just give up because “running home assistant is hard, installing is the easiest step” is vile. Beyond ease, there are plenty of other reasons why I expected Nabu-Casa to offer an ISO version, but these gatekeepers decided that none of that matters, because they figured it out which makes them smarter than you. God they’re just so insufferable. Alright, rant over.
Here’s the install process. Use your favourite bootable USB flasher of choice – I do genuinely recommend Ventoy by the way, you burn Ventoy, then just drag and drop any ISO files you want to be able to boot from, then when you boot from it you get an options list with all of the ISOs, then you just pick the one you want to boot and away you go. So use whatever tool you like to burn Ubuntu onto a USB stick. Plug that USB stick into the system you want to install HAOS onto – a ZimaBoard, an Intel NUC, or even an old desktop – and boot into Ubuntu. Use the “Try Ubuntu” option to use it as a live USB, then open terminal and copy and paste these commands – I’ll put them in the description for you. Then, open Firefox and download the latest stable release of balena etcher. Open it with the software installer, install it, then open it. Next, head to home assistant’s github repo and copy the link to the latest version of the “haos_generic-x86-64” img.xz file. Paste that into etcher, select your internal drive and uncheck your bootable USB stick, then hit go. If all goes well, you’ve now written HAOS to the internal drive. You can shut down Ubuntu and boot Home Assistant OS.
You might run into some issues with etcher though, as apparently it doesn’t like writing to ext4 partitions – so if you had, say, Ubuntu or Debian installed previously, it might break it, and in our case it broke the partitions such that we couldn’t install Proxmox instead. For this try I deleted all partitions on the drive using GParted, then created an unformatted volume on the disk to avoid file system issues. I also found out when actually doing this for this video that the “flash from URL” option is broken, so you will need to actually download a copy of the img.xz file first, then pick “flash from file” and select the file, then it should work. At least, it did for me. Also as a note to the etcher team, there’s a good chance the reason this fails is because Github now requires you to supply a user-agent header for get requests, and I have a sneaking suspicion etcher doesn’t add that header when it does its request. Just a thought.
As it stands, that’s how you set up Home Assistant using what is clearly the non-standard route. While I can see why it’s non-standard – Home Assistant is pretty lightweight so unless you are running it on a Pi you’re probably wasting your hardware by installing it bare-metal like this and you’d be better off running it in a VM with something like Proxmox or TrueNAS underneath – that still doesn’t mean this should be as painful as it is. I’d love if someone with more free time and experience than me could write an installer for Nabu-Casa so they can finally let you install their operating system like everyone else on the goddamn planet. Anyway, I hope that’s helpful. Feel free to ask questions in the comments or on our Discord server.
sudo add-apt-repository universe -y
sudo apt update
sudo apt install libfuse2
sudo apt update
https://github.com/balena-io/etcher/releases
https://github.com/home-assistant/operating-system/releases/download