
Docker часть 3: Home Assistant Container
После того, как мы настроили Docker и Portainer можно приступить к Home Assistant. HA будет располагаться в своем контейнере. И по мере наших манипуляций количество контейнеров будет увеличиваться. Тем самым мы разграничим области ответственности и изолируем данные друг от друга.
Установка Home Assistant Container
Настройка довольно проста. Нам необходимо добавить в docker-compose.yaml новый сервис. Сразу после секции с Portainer вставляем новый сервис.
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 адрес)
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
Давно задавался вопросом можно ли использовать аддоны без supervised, так как имею домашних хост и не хотелось сносить систему для его установки. Хотелось бы узнать как подвязать домен в этом варианте и можно ли как то проксировать аддоны внутри ha что бы не светить наружу всеми портами!
Александр, добрый день!
Заинтересовал ваш проект, поскольку сейчас сам разбираюсь с переустановкой Home Assistant на Raspberry 4B, моя предыдущая инсталляция HA тоже была установлена в Docker и все остальные штуки типа MQTT, Z2M, NodeRed стояли в отдельных контейнерах. Но в конце прошлого года HA перестал обновляться и выдавать ошибку, что используется Unsupervised версия и т.д. По вашему подходу сейчас все работает и обновляется и система не выдает статус «unhealthy»?
Если у вас есть группа в Telegram, где можно задать вопрос подскажите, пож-та.
Не хватает настройки watchtower под все это дело.
А-то приходится в ручном режиме ходить на сервер и выполнять:
Думаю написать еще 2 статьи: автообновление, автоматические бэкапы. Как будет время обязательно сделаю.
А что ж вы не добавили инструкцию по добавлению supervisor, думаю это было бы очень актуально для таких подробны инструкций
ну в общем не очень понятно все. гораздо проще запилить версию core получается чем вся вот эта чешуя.
Наверное что бы понять статью Вашу, уже надо не слабо так работать с докером ранее видимо. Где создаем папку HA? в докере, в линуксе? как посмотреть что получилось?
Возникает такая ошибка: 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
По поводу добавления панели Portainer в Home Assistant. С версии 2024.4.0 будет ошибка при добавлении конфигурации.
Решение:
https://github.com/home-assistant/home-assistant.io/issues/32162
С указанным конфигом docker-compose не работает HomeKit Bridge, когда как в комментарии, который оставляли здесь: https://io-home.ru/home-assistant/docker-container/docker-chast-2-docker-i-portainer/ — все работает.
Разница: тут не указан network-mode, а указаны порты.
https://github.com/home-assistant/home-assistant.io/issues/32162?ysclid=m511v2ut8c123815543
не смог добавить панель portainera
пока ума не хватает как обойти 🙁
буду рад апдейту мануала
В моём HA версии 2024.12.5 похоже уже не поддерживается panel_iframe интеграция (вроде она была помечена deprecated и похоже уже совсем выпилена). Но зато добавить произвольную веб-страницу можно прям из интерфейса HA: идём в «Настройки -> Панели -> Добавить панель -> Веб-страница»
Отличный рабочий мануал!
Пол года назад настраивал HA по данному циклу статей всё шло как по маслу, но как говорится: «всё течёт, всё меняется». Начиная с версии 2024.11 в Home Assistant изменили настройку панелей, поэтому добавление блока panel_iframe: в файле homeassistant/configuration.yaml вызывает ошибку при перезагрузке HA, и соответственно, новая панель в левом списке не появляется.
Теперь нужно это делать из графического интерфейса HA: заходим в «Настройки», выбираем «Панели», затем жмём «Добавить панель», в появившимся окне выбираем «Веб-страница», указываем URL, затем название панели и выбираем иконку. Всё, панель появляется. Решение нашёл вот здесь: https://pimylifeup.com/home-assistant-docker-compose/