* Avoid duplicate log entries So far the hassos-supervisor.service starts the hassos-supervisor script which in turn attaches to the Supervisor container. This causes stdout and stderr to be forwarded to the service unit, which in turn logs it in the journal. However, Docker too logs all stdout/stderr to the journal through the systemd-journald log driver. Do not attach to the Supervisor container to avoid logging the Supervisor twice. Note that this no longer forwards signals to the container. However, the hassos-supervisor.service uses the ExecStop= setting to make sure the container gets gracefully stopped. * Use image and container name as syslog identifier By default Docker users the container id as syslog identifier. This leads to log messages which cannot easily be attributed to a particular container (since the container id is a random hex string). Use the image and container name as syslog identifier. Note that the Docker journald log driver still stores the container id as a separate field (CONTAINER_ID), in case the particular instance need to be tracked.
Home Assistant Operating System
Home Assistant Operating System (formerly HassOS) is an operating system optimized for hosting Home Assistant and its Add-ons.
Home Assistant Operating System uses Docker as Container engine. It by default deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and Add-Ons in separate containers. Home Assistant Operating System is not based on a regular Linux distribution like Ubuntu. It is built using buildroot and it is optimized for running Home Assistant, especially on single board compute (SBC) devices like the Pi, ODROID, NUC and Tinker Board (see supported hardware below).
Features
- Lightweight and memory-efficient
- Minimized I/O
- Over The Air (OTA) updates
- Offline updates
- Modular using Docker
Supported hardware
- Raspberry Pi
- Hardkernel ODROID
- Intel NUC
- Asus Tinker Board
- Virtual appliances
See the full list and specific models here
Getting Started
If you just want to use Home Assistant the official getting started guide and installation instructions take you through how to download Home Assistant Operating System and get it running on your machine.
If you're interested in finding out more about Home Assistant Operating System and how it works read on...
HassOS components
- Bootloader:
- Operating System:
- Buildroot LTS Linux
- File Systems:
- Container Platform:
- Docker Engine for running Home Assistant components in containers
- Updates:
- RAUC for Over The Air (OTA) and USB updates
- Security:
- AppArmor Linux kernel security module
If you don't have experience with these, embedded systems, buildroot or the build process for Linux distributions, then please read up on these topics. The rest of the documentation in this project is for developers and assumes you have experience with embedded systems or a strong understanding of the internal workings of operating systems.
Developer Documentation
All developer documentation is in the Documentation directory.
Development builds
The Development build GitHub Action Workflow is a manually triggered workflow which creates Home Assistant OS development builds. The development builds are available at os-builds.home-assistant.io.