mirror of
https://github.com/home-assistant/supervisor.git
synced 2026-07-02 03:15:42 +01:00
app-network-isolation
The isolated endpoint is a real L2 presence on the physical network, so the container kernel can autoconfigure IPv6 from the local network's router advertisements without any address management on our side. This serves the IPv6 use cases from home-assistant/architecture#1034 (Thread border routers, Matter) that the NAT-ed internal network cannot. Enable IPv6 on external networks without specifying a subnet: Docker allocates a unique local address prefix to satisfy the macvlan driver, while real addressing comes from SLAAC. Existing IPv4-only external networks are recreated through the regular drift handling. Two kernel defaults inside the container network namespace would break the flagship use cases, so the endpoint sets per-interface sysctls via the endpoint configuration (Docker API 1.47, covered by the existing Docker 28 requirement): accept_ra=2 keeps accepting router advertisements when the app enables IP forwarding (Thread border routers), and accept_ra_rt_info_max_plen=64 enables RFC 4191 route information option processing (off by default), which routes announced by border routers need to reach the container at all. Together with the pinned MAC address the SLAAC and link-local addresses are stable across restarts (EUI-64 derivation from a stable MAC). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Home Assistant Supervisor
First private cloud solution for home automation
Home Assistant (former Hass.io) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.
Installation
Installation instructions can be found at https://home-assistant.io/getting-started.
Development
For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. Development instructions can be found here.
Release
Releases are done in 3 stages (channels) with this structure:
- Pull requests are merged to the
mainbranch. - A new build is pushed to the
devstage. - Releases are published.
- A new build is pushed to the
betastage. - The
stable.jsonfile is updated. - The build that was pushed to
betawill now be pushed tostable.
Description
Languages
Python
95.8%
JavaScript
4%
