* Use hosted GitHub Action runners Instead of using self-hosted runners use the hosted GitHub Action runners. Officially the GitHub Action runners have a maximum of 14GB free space available. However, a single Home Assistant OS build requires up to 23GB (the ova board seems to require most because of the various output image formats). This PR adds some tricks to make use of the GitHub hosted GitHub Action runners still, namely: - Build and download cache is stored on /mnt which offers an additional 10GB of disk space - Some tools/SDKs on the runner get removed from the root disk to free up some disk space. Other than that building on the hosted GitHub Action runners seems straight forward. The build time is significantly longer (from ~30 minutes on the current AMD Ryzen 7950X build machine to 1 hours 30 minutes even with cache). But since we can build all boards in parallel now, the overall build time will likely be shorted. * Remove top-level release directory The top-level release directory adds another copy of the images. This is unnecessary for our release process now. Save the additional space and time requirement. It comes with a slight downside for developers, but also helps to save disk space on dev machines.
Home Assistant Operating System
Home Assistant Operating System (formerly HassOS) is a Linux based operating system optimized to host 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 to run Home Assistant. It targets single board compute (SBC) devices like the Raspberry Pi or ODROID but also supports x86-64 systems with UEFI.
Features
- Lightweight and memory-efficient
- Minimized I/O
- Over The Air (OTA) updates
- Offline updates
- Modular using Docker container engine
Supported hardware
- Raspberry Pi
- Hardkernel ODROID
- Asus Tinker Board
- Generic x86-64 (e.g. Intel NUC)
- 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...
Development
If you don't have experience with embedded systems, Buildroot or the build process for Linux distributions it is recommended to read up on these topics first (e.g. Bootlin has excellent resources).
The Home Assistant Operating System documentation can be found on the Home Assistant Developer Docs website.
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
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.