Go to file
Stefan Agner 9e70ebe989
Maintain and upload artifacts index (#2839)
* Maintain and upload artifacts index

Make the artifacts browsable by maintaining a list of builds. This keeps
it up-to-date even when deleting images from the object storage, and
minimizes queries to the object storage.

* Add favicon

* Apply suggestions from code review

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>

* Move index update outside of the build Matrix

* Add error handling and styling

* Exclude index files

* Add cache flush

* Use separate prefix for indexes

This allows to filter by prefix when generating the main index. Since
the list-objects-v2 is limited to 1000 entries, this will be a bottle
neck soon. Separating indexes allows to support up to 1000 nightly
builds.

* Add missing backslash

* Use cp and fix index format

* Sync index.html as well

* Move OS artifacts index file to root directory

This is not really GitHub related, so it shouldn't live in there.

* Adjust URL for dev builds

---------

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2023-10-26 20:24:04 +02:00
.github Maintain and upload artifacts index (#2839) 2023-10-26 20:24:04 +02:00
.os-artifacts Maintain and upload artifacts index (#2839) 2023-10-26 20:24:04 +02:00
Documentation Linux: Update kernel 6.1.59 (#2849) 2023-10-23 10:32:23 +02:00
buildroot@82003cc280 Bump buildroot to update BlueZ to v5.70 (#2835) 2023-10-18 09:25:02 +02:00
buildroot-external Bump OS to development version 11.2.dev0 2023-10-23 23:09:40 +02:00
scripts Create builder group only if required (#2709) 2023-08-28 09:52:45 +02:00
tests Do not use working-directory in test job (#2858) 2023-10-23 18:15:10 +02:00
.dockerignore Improve HAOS builder Dockerfile (#2011) 2022-07-08 22:36:02 +02:00
.gitignore Create foundation for Labgrid-based OS tests (#2812) 2023-10-17 18:23:29 +02:00
.gitmodules Fix remote tracking branch for Buildroot submodule (#2288) 2022-12-27 09:05:39 +01:00
.hadolint.yaml Create .hadolint.yaml 2019-05-09 10:10:53 +02:00
Dockerfile Improve HAOS builder Dockerfile (#2011) 2022-07-08 22:36:02 +02:00
LICENSE Update LICENSE 2018-04-15 10:27:33 +02:00
Makefile Adjust Home Assistant OS versioning to prepare for new release strategy (#2767) 2023-09-25 13:41:50 +02:00
README.md Maintain and upload artifacts index (#2839) 2023-10-26 20:24:04 +02:00

README.md

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 its container engine. By default it 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:
    • Barebox for devices that support UEFI
    • U-Boot for devices that don't support UEFI
  • Operating System:
  • File Systems:
    • SquashFS for read-only file systems (using LZ4 compression)
    • ZRAM for /tmp, /var and swap (using LZ4 compression)
  • Container Platform:
    • Docker Engine for running Home Assistant components in containers
  • Updates:
    • RAUC for Over The Air (OTA) and USB updates
  • Security:

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 https://os-artifacts.home-assistant.io/index.html.