uDocs

Docker часть 3: Home Assistant Container

Устанавливаем Home Assistant в Docker container на Debian.

Docker часть 3: Home Assistant Container

После того, как мы настроили Docker и Portainer можно приступить к Home Assistant. HA будет располагаться в своем контейнере. И по мере наших манипуляций количество контейнеров будет увеличиваться. Тем самым мы разграничим области ответственности и изолируем данные друг от друга.

Установка Home Assistant Container

Настройка довольно проста. Нам необходимо добавить в docker-compose.yaml новый сервис. Сразу после секции с Portainer вставляем новый сервис.

docker-compose.yaml
version: '3.0'

services:
  portainer:     # часть 2
    [...]

  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    restart: unless-stopped
    privileged: true
    ports:
      - "8123:8123"
    environment:
      - TZ=Europe/Moscow
    volumes:
      - ./homeassistant/:/config
      - /etc/localtime:/etc/localtime:ro

А так же создаем новую папку для homeassistant. В которой появится вся конфигурация после запуска.

mkdir homeassistant

После чего запускаем новый контейнер. Так как мы добавили новый контейнер, то только он и будет запущен. А Portainer останется работающим.

docker compose up -d

Docker скачает и запустит все необходимые зависимости. После чего можно зайти в Portainer и увидеть, что у нас появился новый контейнер.

Первая настройка Home Assistant

После того, как новый контейнер появился, заходим по адресу

http://<ip>:8123

И у нас должен открыться экран первой настройки системы. Следуя инструкциям заполняем все поля и завершаем установку.

Как итог мы получаем готовый инстанс Home Assistant. Который полностью готов к работе. Единственным минусом является отсутствие supervisor. Но это легко решается добавлением нового Docker контейнера с необходимым функционалом.

В дальнейшем мы посмотрим как это можно сделать. Настроим MQTT и перейдем на другую базу данных.

Если разобраться как работает HA в версии операционной системе, то станет понятно, что мы повторяем его функционал. Так как в ОС он так же поднимает необходимые Docker контейнеры. Но не дает доступ в саму систему.

Добавляем Portainer

Для быстрого доступа в Portainer можно добавить iframe в интерфейс HA. Для этого перейдем в конфигурацию homeassistant/configuration.yaml и добавим данный код и перезапустим HA (не забудьте поменять ip адрес)

configuration.yaml
panel_iframe:
  portainer:
    title: Portainer
    url: "https://<ip>:9443/#!/2/docker/containers"
    icon: mdi:docker
    require_admin: true

Итоговая структура проекта

Папка homeassistant заполнилась автоматически. В ней находится основная конфигурация Home Assistant. При дальнейших перезапусках данные будут браться из нее.

home-assistant
├── docker-compose.yaml
├── homeassistant
│   ├── ...
│   └── configuration.yaml
└── portainer

Обсуждение

AlexAlex
11 января 2026

Панель-то появляется, только вот внутри ничего кроме ошибки об “192.168.1.141 refused to connect.”

встречалось нечто такое для configuration.yaml:

#http:
# use_x_frame_options: false
#  use_x_forwarded_for: true
#  trusted_proxies:
#    – 127.0.0.1
#    – ::1
#    – 192.168.1.141

Но тоже мимо

Я так и не нашел пока способ обойти это

АлександрАлександр
6 апреля 2025

c 24 года iframe не поддерживается.

МаксимМаксим
4 января 2025

Отличный рабочий мануал!

Пол года назад настраивал HA по данному циклу статей всё шло как по маслу, но как говорится: “всё течёт, всё меняется”. Начиная с версии 2024.11 в Home Assistant изменили настройку панелей, поэтому добавление блока panel_iframe: в файле homeassistant/configuration.yaml вызывает ошибку при перезагрузке HA, и соответственно, новая панель в левом списке не появляется.

Теперь нужно это делать из графического интерфейса HA: заходим в “Настройки”, выбираем “Панели”, затем жмём “Добавить панель”, в появившимся окне выбираем “Веб-страница”, указываем URL, затем название панели и выбираем иконку. Всё, панель появляется. Решение нашёл вот здесь: https://pimylifeup.com/home-assistant-docker-compose/

saneeasaneea
25 декабря 2024

В моём HA версии 2024.12.5 похоже уже не поддерживается panel_iframe интеграция (вроде она была помечена deprecated и похоже уже совсем выпилена). Но зато добавить произвольную веб-страницу можно прям из интерфейса HA: идём в “Настройки -> Панели -> Добавить панель -> Веб-страница”

леонидлеонид
23 декабря 2024

https://github.com/home-assistant/home-assistant.io/issues/32162?ysclid=m511v2ut8c123815543

не смог добавить панель portainera

пока ума не хватает как обойти 🙁

буду рад апдейту мануала

СергейСергей
8 августа 2024

С указанным конфигом docker-compose не работает HomeKit Bridge, когда как в комментарии, который оставляли здесь: https://io-home.ru/home-assistant/docker-container/docker-chast-2-docker-i-portainer/ – все работает.

Разница: тут не указан network-mode, а указаны порты.

НикитаНикита
28 июня 2024

По поводу добавления панели Portainer в Home Assistant. С версии 2024.4.0 будет ошибка при добавлении конфигурации.

Решение:

https://github.com/home-assistant/home-assistant.io/issues/32162

AlexAlex
9 июня 2024

Возникает такая ошибка: docker compose up -d

yaml: unmarshal errors:

line 18: mapping key “version” already defined at line 1

line 20: mapping key “services” already defined at line 3

АлексейАлексей
25 марта 2024

ну в общем не очень понятно все. гораздо проще запилить версию core получается чем вся вот эта чешуя.

Наверное что бы понять статью Вашу, уже надо не слабо так работать с докером ранее видимо. Где создаем папку HA? в докере, в линуксе? как посмотреть что получилось?

bashtabashta
23 марта 2024

А что ж вы не добавили инструкцию по добавлению supervisor, думаю это было бы очень актуально для таких подробны инструкций