Explanation of installation options?

Hi, all.

I’ve tried reading the installation docs, but I’m finding myself not understanding them properly. I -thought- I was creating installation media when I wrote the “install” file to a USB drive, but I was apparently writing a fully installed system that I was then supposed to run my system from. I re-did the process, this time writing directly to an SSD drive and then installing that into my NUC, but I have now discovered that I am running a Docker container version of HAOS on top of a Linux system that I seemingly can’t get to the console of.

Is Docker the only option for HAOS, or is there some sort of packaged software that I can install on top of a Linux host directly? How do I access the linux host of the system I described above? What do the “ha core” and similar commands for CLI actually do (they are mentioned in the docs, but I can’t find any detailed description of their use)?

How do I shut the entirety of the device down? How do I do a full restart of the device (not just the HAOS pieces inside the container)? I’ve owned multiple Vera hubs and used them with countless ZWave devices with a lot of automation (including having written a fair amount of LUA/LUUP to manage it). Is there a detailed guide somewhere for people like me that need a lot of basic info of how the HAOS “device” works but don’t need it written in non-technical terms?

HAOS is an linux operating system, so your statement is confusing. You’re not running a docker container version of HAOS on top of Linux, you’re running HAOS as the operating system on your machine. HA core is then running in a docker container on top of that OS. See the repo I linked for HAOS for more info, the Documentation folder in particular is helpful.

As for the console, you can get there if you connect a monitor and keyboard if you want. But tbh there isn’t much you can do there. HAOS is an appliance install. The expectation is that the user then manages the system entirely through HA, either via the GUI or the CLI. If you get to the host shell you’ll discover its extremely barebones. Most of the filesystem is read-only, there is a bare minimum amount of things installed and there is no package manager available for installing more things.

This is by design since it is an appliance install. Most people using HAOS install that want to use the CLI install one of the two SSH addons instead of using the host shell. Those addons actually run in docker containers but they have full access to the HA CLI. And you can also install any other alpine packages you wish.

There’s only one non-docker option, a core installation. This is just running homeassistant in a venv.

The entire CLI matches up basically 1-1 with supervisor’s REST API since that’s what all the commands do - call supervisor’s REST API. There’s no direct doc for the CLI besides the doc for the REST API but when using it you can add -h to the end to see all the options for any subcommand (so ha core -h shows all the things you can do with core).

Use the HA GUI. Go to Settings → System → Hardware, click the 3 dots in the top right and select “shutdown” or “reboot” from the menu. Or alternatively you can do it from the CLI with ha host reboot or ha host shutdown.


There’s a table summarising it, but basically:

  • Home Assistant OS is an “appliance like” experience. It uses Docker. You leave the host alone, any software is installed as an add-on. You can shut it down and reboot it from the UI (hit c to search for things), or the command line.

  • Home Assistant Container is for when you want to run HA on Linux without dedicating the whole computer to it.

  • Home Assistant Core is for when you want to run HA on Linux but have some strange aversion to containers. Few people should ever use this.

  • Home Assistant Supervised is for when you want everything that Home Assistant OS brings, but really want to manage the OS yourself, and enjoy fixing things that break. Nobody should really use this, but people seem to enjoy suffering.

Thanks for the responses - this is helpful.

Generally, I prefer built systems (OS plus software) over “appliances” because that’s how I’ve built, managed, and maintained my home environment for the better part of 30 years. I’m comfortable in that space, so it doesn’t scare me off and it allows me to build machines out that are multi-purpose when possible.

There will be a fairly steep learning curve for me with HA to determine if it’s a viable replacement for my Vera devices. Right now, I’m struggling with trying to figure out the absolute basics like powering the device off and rebooting (thank you for the pointers) and even creating a dashboard that is intuitive simply to be able to click to activate devices (right now, there’s way more on the dashboard than what I want, and every device has far too much detail showing - all I want is a power toggle). Scenes and automations will be next on my list if I can figure out the way to set up a very simple dashboard for power control of my devices.

Based on what you’ve said above I HIGHLY recommend you using a HA Container installation type.

It gives you everything you need to run HA along with full access to the host OS.

It also makes maintaining HA way easier than dealing with Python Virtual Environments and the requirements to maintain the correct versions of Linux packages to support HA.

Docker is fairly straight forward once you get a few basic principles down.

And even tho HA OS and HA Supervised also use Docker underneath HA Container is very different since you are completely in charge of the host OS.

The frontend docs are what you want. Things like the tile card allow you to trivially toggle an entity, though for most cards you can define a tap-action to do whatever you want.

I’d also create a new dashboard for experimenting in, the possibilities are endless.