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
Не хватает настройки watchtower под все это дело.
А-то приходится в ручном режиме ходить на сервер и выполнять:
Думаю написать еще 2 статьи: автообновление, автоматические бэкапы. Как будет время обязательно сделаю.