Главная страницаHome AssistantHome Assistant в Docker ContainerDocker часть 3: Home Assistant Container
Docker часть 3: Home Assistant Container

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

Список всех частей

Был ли полезен материал?

Мне очень важно получать обратную связь. Пожалуйста, оцените материал. Так я пойму в какую сторону его стоит изменить.

Комментарии
  • Revolution
    Revolution
    08.11.2023 08:10

    Давно задавался вопросом можно ли использовать аддоны без supervised, так как имею домашних хост и не хотелось сносить систему для его установки. Хотелось бы узнать как подвязать домен в этом варианте и можно ли как то проксировать аддоны внутри ha что бы не светить наружу всеми портами!

  • Алексей
    Алексей
    19.11.2023 01:34

    Александр, добрый день!
    Заинтересовал ваш проект, поскольку сейчас сам разбираюсь с переустановкой Home Assistant на Raspberry 4B, моя предыдущая инсталляция HA тоже была установлена в Docker и все остальные штуки типа MQTT, Z2M, NodeRed стояли в отдельных контейнерах. Но в конце прошлого года HA перестал обновляться и выдавать ошибку, что используется Unsupervised версия и т.д. По вашему подходу сейчас все работает и обновляется и система не выдает статус «unhealthy»?
    Если у вас есть группа в Telegram, где можно задать вопрос подскажите, пож-та.

  • Roman
    Roman
    02.03.2024 10:37

    Не хватает настройки watchtower под все это дело.
    А-то приходится в ручном режиме ходить на сервер и выполнять:

    docker compose down && docker compose pull && docker compose up -d --remove-orphans && docker image prune -f
    • Alexander Pushkarev
      Alexander Pushkarev
      02.03.2024 13:29

      Думаю написать еще 2 статьи: автообновление, автоматические бэкапы. Как будет время обязательно сделаю.

  • bashta
    bashta
    23.03.2024 14:57

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

  • Алексей
    Алексей
    25.03.2024 18:39

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

  • Alex
    Alex
    09.06.2024 21:46

    Возникает такая ошибка: 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

  • Никита
    Никита
    29.06.2024 03:26

    По поводу добавления панели Portainer в Home Assistant. С версии 2024.4.0 будет ошибка при добавлении конфигурации.
    Решение:
    https://github.com/home-assistant/home-assistant.io/issues/32162

  • Сергей
    Сергей
    08.08.2024 13:07

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

  • леонид
    леонид
    23.12.2024 16:07

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

    не смог добавить панель portainera
    пока ума не хватает как обойти 🙁
    буду рад апдейту мануала

  • saneea
    saneea
    25.12.2024 20:49

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

  • Максим
    Максим
    05.01.2025 07:34

    Отличный рабочий мануал!
    Пол года назад настраивал HA по данному циклу статей всё шло как по маслу, но как говорится: «всё течёт, всё меняется». Начиная с версии 2024.11 в Home Assistant изменили настройку панелей, поэтому добавление блока panel_iframe: в файле homeassistant/configuration.yaml вызывает ошибку при перезагрузке HA, и соответственно, новая панель в левом списке не появляется.
    Теперь нужно это делать из графического интерфейса HA: заходим в «Настройки», выбираем «Панели», затем жмём «Добавить панель», в появившимся окне выбираем «Веб-страница», указываем URL, затем название панели и выбираем иконку. Всё, панель появляется. Решение нашёл вот здесь: https://pimylifeup.com/home-assistant-docker-compose/

Оставить комментарий