Есть много инструкций по установке систем умного дома как и много самих систем умного дома,это очередная которая быстро позволит Вам установить систему Home Assistant, в этой инструкции мы установим не только HomeAssistant но и zigbee2mqtt, Node-red, mosquitto, esphome и систему резервного копирования duplicati на свеже установленный Linux
Устанавливаем docker по инструкции в соответствии с вашей системой,
создаем папку где будут у нас храниться все настройки, у меня это /root/docker
mkdir /root/docker
переходим в папку
cd /root/docker
создаем там файл с именем docker-compose.yaml
nano docker-compose.yaml
со следующим содержимым
networks:
netlemp:
name: mylan
driver: bridge
driver_opts:
com.docker.network.bridge.name: br-mylan
ipam:
config:
- subnet: ${IP_ADR:-172.100.0}.0/24
gateway: ${IP_ADR:-172.100.0}.1
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
environment:
- TZ=Europe/Luxembourg
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer:/data
ports:
- 9443:9443
restart: always
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.2
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./ha:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: always
privileged: true
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.3
ports:
- 8123:8123
zigbee2mqtt:
container_name: z2m
image: koenkk/zigbee2mqtt
restart: always
volumes:
- ./z2m:/app/data
- /run/udev:/run/udev:ro
ports:
- 8080:8080
environment:
- TZ=Europe/Berlin
devices:
- /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/ttyACM0
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.4
duplicati:
image: duplicati/duplicati:latest
container_name: duplicati
volumes:
- ./duplicati:/data
- ./:/docker
ports:
- 8200:8200
restart: always
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.5
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
volumes:
- ./esphome:/config
- /etc/localtime:/etc/localtime:ro
restart: always
privileged: true
network_mode: host
environment:
- ESPHOME_DASHBOARD_USE_PING:true
node-red:
container_name: node-red
image: nodered/node-red:latest
restart: always
environment:
- TZ=Europe/Luxembourg
ports:
- 1880:1880
volumes:
- ./nodered:/data
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.6
mqtt:
container_name: mosquitto
image: eclipse-mosquitto
restart: unless-stopped
volumes:
- ./mosquitto:/mosquitto
# ports:
# - 1883:1883
command: "mosquitto -c /mosquitto-no-auth.conf"
networks:
netlemp:
ipv4_address: ${IP_ADR:-172.100.0}.7
Этот файл содержит настройки для установки Portainer (для управления контейнерами) HomeAssistant (система умного дома), zigbee2mqtt, mosquitto, esphome, node-red, duplicati (резервное копирование). Если какой то сервис не нужен то просто удалите соответствующую секцию файла или закомментируйте строки. Так же если будете использовать mqtt на другой машине то раскомментируйте строки с пробросом порта, для zigbee2mqtt необходимо отредактировать строку с именем usb адаптера.
сохраните файл и выполните в консоли команду
docker compose up -d
docker compose скачает необходимые пакеты и установит всё, что перечислено в файле docker-compose.yaml
На этом установка завершена, в соответствующие службы можно получить доступ по соответствующим портам, доступ к Portainer по протоколу https
На этом установка завершена.
Обновление
для обновления всех контейнеров можно запустить из папки docker (там где лежит файл docker-compose.yaml) команду:
docker compose pull
или добавить в crontab строку:
* * 1 * * сd /root/docker/ && docker compose pull
так же Вы можете обновлять контейнеры через Portainer
Чтобы узнать вышло ли обновление просто установите интеграцию Версия

