Home AssistantHome AssistantContributors
On this page

The Supervisor is what lets users manage their whole system from Home Assistant. It is a Python program, in the home-assistant/supervisor repository, that runs as a container on Home Assistant OS. Its jobs:

  • Run Home Assistant Core, and update it. When an update fails to start, it rolls back.
  • Install, run, and update apps.
  • Make and restore backups.
  • Update Home Assistant OS, and itself.
  • Run the plugins that provide DNS, audio, multicast, the command line, and a status page.
  • Manage the host: network, hostname, disks, and time, through D-Bus and the OS Agent.
  • Check the system for problems, and offer fixes.

What the Supervisor runs

Everything the Supervisor runs is a Docker container. Most of them are on a private bridge network called hassio, 172.30.32.0/23. Core and the multicast plugin use the host network instead, and so do apps that ask for it:

Container What it is Address
hassio_supervisor The Supervisor 172.30.32.2
homeassistant Home Assistant Core Host network
hassio_dns DNS plugin 172.30.32.3
hassio_audio Audio plugin 172.30.32.4
hassio_cli CLI plugin 172.30.32.5
hassio_observer Observer plugin 172.30.32.6
hassio_multicast Multicast plugin Host network
app_<slug> An app From 172.30.33.0/24, or the host network

The Supervisor container itself is started by haos-supervisor.service on the host, see Home Assistant OS. Everything else is started by the Supervisor.

Apps and the Supervisor API

The Supervisor has a REST API at http://supervisor, on the hassio network. Home Assistant Core uses it through the hassio integration, the ha command line uses it through the CLI plugin, and apps use it when they ask for access in their configuration. Each caller gets its own token, and a role that limits what it may do.

Apps are where most people meet the Supervisor. The Supervisor installs them from app repositories, builds or pulls their images, and runs them with the options, ports, and access their configuration asks for. Building apps, and the full Supervisor API reference, are documented in the Apps area.

Where to go next

All pages in this section

How it works

  • Supervisor architecture: How the Supervisor code is organized, how it starts, and how updates and backups work inside it.
  • Jobs: How the Supervisor runs work as jobs, with conditions, concurrency limits, throttling, and progress that clients can follow.
  • The resolution center: How the Supervisor finds problems with checks and evaluations, tracks them as issues, and fixes them with suggestions.
  • Plugins: The five plugins the Supervisor runs next to Home Assistant Core, what each one does, and where its code lives.

Guides

  • Set up a development environment: Run the Supervisor from source in its development container, run the tests and linters, and try your build on a real system.
  • Debug the Supervisor: Attach a Python debugger to a running Supervisor, locally or on a remote device, and find its logs.
  • Connect Core to a Supervisor: Run Home Assistant Core from your development environment against a real Supervisor, to work on the hassio integration.
Was this page helpful?

Last updated on .