Home Assistant можно установить на сетевое хранилище (NAS) Synology через графический интерфейс DSM с пакетом Container Manager. Командная строка для этого способа не нужна.
Что понадобится
Подойдет NAS Synology с DSM, на котором поддерживается пакет Container Manager - перед установкой проверьте совместимость своей модели.
Установка через Container Manager
Скачайте образ с тегом stable, подключите папку конфигурации и выберите сеть host, как указано в разделе Synology в документации Home Assistant.
1. Установите Container Manager
Откройте в DSM Package Center и установите пакет Container Manager.
2. Скачайте образ Home Assistant
В Container Manager откройте страницу Registry, найдите образ homeassistant/home-assistant и нажмите Download. Выберите тег stable и дождитесь окончания загрузки.
3. Создайте контейнер
Перейдите в Image, выберите образ homeassistant/home-assistant и нажмите Run. В General Settings задайте имя контейнера, например homeassistant, при желании включите Enable auto-restart и нажмите Next.
4. Подключите папку конфигурации
В Advanced Settings откройте Volume Settings и нажмите Add Folder. По примеру из документации создайте внутри общей папки docker папку homeassistant, а в ней - папку config, затем нажмите Select. Измените Mount path на /config и оставьте права Read/Write. В этой папке Home Assistant будет хранить конфигурацию и журналы.
5. Задайте часовой пояс и сеть
В разделе Environment нажмите Add и добавьте переменную (Variable) TZ со значением своего часового пояса - в документации приведен пример Europe/London. В разделе Network выберите host.
6. Запустите контейнер
Продолжайте нажимать Next, отметьте Run this container after the wizard is finished и нажмите Done. Откройте в браузере HTTP-адрес NAS с портом 8123. Адрес http://192.168.1.10:8123 из документации - это пример, подставьте IP своего NAS.
7. Откройте порт 8123 в межсетевом экране
Если в DSM включен встроенный межсетевой экран, добавьте разрешающее правило. Откройте Control Panel > Security, раздел Firewall, нажмите Edit Rules и в Firewall Profile создайте правило Allow для порта 8123 - выберите Custom, впишите порт в Ports, при необходимости измените Source IP.
Обновление контейнера
Чтобы перейти на новую версию, обновляют образ и пересоздают контейнер - у установки Container нет автоматических обновлений. В Container Manager откройте Image, выберите homeassistant/home-assistant и нажмите Update, дождитесь уведомления о завершении загрузки. Затем в разделе Container остановите контейнер, выполните Action > Reset и запустите его снова.
Перезапуск контейнера через Action > Restart - отдельная операция, образ она не обновляет. Как обновляют Home Assistant на других типах установки, разобрано в отдельном гайде.
Другие способы
Кроме мастера Container Manager есть три варианта - команда в терминале, Docker Compose и виртуальная машина с Home Assistant OS.
Терминал: docker run
Раздел Synology в документации приводит пример создания контейнера из терминала с пробросом USB-устройства.
sudo docker run --restart always -d --name homeassistant -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host ghcr.io/home-assistant/home-assistant:stable
Замените в команде путь к папке конфигурации /PATH_TO_YOUR_CONFIG, путь к USB-устройству и часовой пояс. Путь /dev/ttyACM0 - только пример, у вашего адаптера он может отличаться. У пользователя, от имени которого работает контейнер, должны быть права на файл устройства вида /dev/tty* на NAS.
Docker Compose
Общие инструкции для Linux описывают установку через Compose. В файле compose.yaml указывают образ ghcr.io/home-assistant/home-assistant:stable, постоянный том /PATH_TO_YOUR_CONFIG:/config, network_mode: host и restart: unless-stopped, после чего выполняют docker compose up -d. Такая инструкция общая для Linux и не описывает мастер Project в Container Manager. Подробно про контейнерную установку рассказывает гайд по Home Assistant в Docker.
Home Assistant OS в виртуальной машине
Home Assistant OS можно запустить на поддерживаемом гипервизоре - системе запуска виртуальных машин. Процедуры именно для Synology Virtual Machine Manager в документации нет.
Ограничения контейнера
В Container нужно самостоятельно обслуживать систему и обновлять Home Assistant. Встроенных дополнений, или аддонов (в текущей документации apps), нет. Для них документация рекомендует Home Assistant OS.
Для интеграций, которыми управляют аддоны (apps), поддержки из коробки нет - в документации упомянуты Thread и Z-Wave.
Частые проблемы
Для ошибки HTTPS и сбоев MariaDB есть решения пользователей форума, каждое из одной ветки.
| Проблема и текст ошибки | Что помогало |
|---|---|
Интерфейс не открывается по HTTPS при первом подключении: Error connecting to xxx.xxx.xxx.xxx:8123Error code: SSL_ERROR_RX_RECORD_TOO_LONG | Открыть веб-интерфейс по HTTP вместо HTTPS |
| MariaDB в стеке Docker Compose постоянно падает, Home Assistant сообщает об ошибке соединения с базой данных | Использовать более старый образ MariaDB 10.6.10 |
Смежной проблеме посвящен разбор случая восстановления после настройки SSL.
Частые вопросы
Какие ресурсы нужны виртуальной машине?
Для установки Home Assistant OS в виртуальной машине нужны минимум 2 ГБ оперативной памяти и 2 виртуальных процессора. Документация предлагает образы форматов .vdi, .qcow2 и .ova для установки на поддерживаемом гипервизоре. Работу Home Assistant в виртуальной машине на примере Proxmox описывает отдельный гайд.
Подойдет ли Docker Desktop?
Нет, для установки Container нужен Docker Engine 23.0.0 или новее. Docker Desktop для этого способа не подходит. Требование к версии указано в общих инструкциях установки контейнера. Число 23.0.0 относится к Docker Engine, оно не задает минимальную версию DSM на Synology.
Нужен ли D-Bus для Bluetooth?
Да, для интеграции Bluetooth в Container нужен D-Bus. В общих инструкциях Linux его подключают к контейнеру через /run/dbus:/run/dbus:ro. Если Bluetooth не планируется, это подключение необязательно. На Synology оно само по себе не устраняет ограничения доступа к USB-устройствам, о которых предупреждает документация.
Зачем нужен таймаут остановки в 60 секунд?
Он дает базе данных время корректно закрыться при остановке контейнера. Для docker run это --stop-timeout 60, для Compose - stop_grace_period: 60s. Таймаут работает как верхний предел, а не задержка - Docker продолжает сразу, как только Home Assistant завершил работу. Изменение этой настройки у уже созданного контейнера требует его пересоздать, например командой docker compose up -d --force-recreate.
Чем docker compose pull отличается от up?
Команда pull скачивает образы сервисов, а up создает и запускает контейнеры. Полная форма первой команды - docker compose pull [OPTIONS] [SERVICE...]. Она скачивает образы из compose.yaml без запуска контейнеров. Команда docker compose up -d оставляет контейнеры работать в фоне. После скачивания измененного образа up пересоздает затронутые контейнеры, сохраняя подключенные тома.



