
Сервер Home Assitant у меня работает на ТВ приставке Vontar X3: https://ali.click/4xx4vc?erid=2SDnjeh6Y2C
Продолжая тему Home Assistant Container.
- Установка Home Assistant Container на Linux и любой одноплатный компьютер.
- Установка и настройка FileEditor в Home Assistant Container
- Установка HACS в Home Assistant Container
- Установка и настройка Mosquitto (mqtt) broker на Home Assistant Container
- Установка и настройка Zigbee2mqtt в Home Assistant Container
- Установка и настройка Matter Server в Home Assistant Container
- Установка и настройка ESPHome в Home Assistant Container
- Оповещение о новых обновления контейнера с помощью DIUN и обновление контейнеров.
В этой статье хочу рассказать как обновлять контейнеры и как получать уведомления о выходе новой версии для обновления.
Обновление контейнеров:
Контейнеры обновляются очень просто, буквально одной командой (которая состоит из трех последовательных команд).
docker compose pull && docker compose down && docker compose up -d
docker compose pull – обновляет images контейнеров на новые версии
docker compose down – удаляет запущенные контейнеры
docker compose up -d – запускает контейнеры заново уже из новой версии images
И таким образом у нас обновятся все контейнеры которые описаны в docker-compose.yaml файле.
Получение уведомления о выходе новой версии контейнера:
Home Assistant Supervisor получал всегда уведомления о наличии новых версий аддонов. Хочется и в Home Assistant Container примерно такой-же функционал.
И тут у меня возникли сложности. Прям хорошего инструмента получения уведомлений я не нашёл.
Есть Watchtower – это контейнер который следит за новыми версиями докер контейнеров, но обновляет их по выходу на новые версии самостоятельно. А нам бы хотелось самим принимать решение, обновиться или нет. Так как Zigbee2mqtt к примеру частенько может выйти и поломать вам все.
И вот попался мне контейнер под названием DIUN, который расшифровывается как: Docker Image Update Notifier . Этот контейнер прям служит для того, чтоб уведомлять о новых версиях контейнера.
Причем уведомлять может как по почте, по телеграму, по mqtt даже и много еще куда.
Контейнер описан в docker compose для уведомлений в telegram следующим образом:
services:
diun: # Определяем сервис Diun в составе Docker Compose
image: crazymax/diun:latest # Официальный образ Diun с Docker Hub
container_name: diun # Имя контейнера (для удобства в `docker ps`)
command: serve # Основная команда — запустить веб/cron-сервис Diun
volumes:
- "/config/duin/data:/data" # Локальный каталог для хранения базы данных и конфигурации Diun
- "/var/run/docker.sock:/var/run/docker.sock" # Доступ к Docker API для отслеживания образов и контейнеров
environment:
- "TZ=Europe/Moscow" # Устанавливаем часовой пояс (важно для cron и временных меток)
- "LOG_LEVEL=info" # Уровень логирования: trace | debug | info | warn | error | fatal | panic
- "DIUN_WATCH_WORKERS=50" # Количество параллельных потоков при проверке образов (ускоряет работу при множестве контейнеров)
- "DIUN_WATCH_SCHEDULE=0 */6 * * *" # Cron-расписание: проверять обновления каждые 6 часов
- "DIUN_WATCH_JITTER=30s" # Добавляет случайную задержку (до 30 секунд), чтобы избежать одновременного старта нескольких задач
- "DIUN_WATCH_RUNONSTARTUP=true" # Запуск проверки сразу при старте контейнера, не дожидаясь расписания
- "DIUN_PROVIDERS_DOCKER=true" # Активирует провайдер Docker: Diun будет отслеживать образы запущенных контейнеров
- "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true" # Включает мониторинг всех контейнеров по умолчанию
# --- Настройки уведомлений через Telegram ---
- "DIUN_NOTIF_TELEGRAM_TOKEN=8361983988:AAF9-4ZQRZe8G_6MEYHfavBTkJSCQeHm-iM" # Токен Telegram-бота, созданного через @BotFather
- "DIUN_NOTIF_TELEGRAM_chatIDs=-5207458576" # ID чата или пользователя, куда будут отправляться уведомления (можно указать несколько через запятую)
# --- Настройки уведомлений через MQTT---
- "DIUN_NOTIF_MQTT_SCHEME=mqtt"
- "DIUN_NOTIF_MQTT_HOST=localhost" #адрес сервера Mqtt
- "DIUN_NOTIF_MQTT_PORT=1883" #порт mqtt сервера
- "DIUN_NOTIF_MQTT_USERNAME=mqtt" #логин mqtt
- "DIUN_NOTIF_MQTT_PASSWORD=mqtt" # пароль mqtt
- "DIUN_NOTIF_MQTT_CLIENT=diun"
- "DIUN_NOTIF_MQTT_TOPIC=docker/diun"
- "DIUN_NOTIF_MQTT_QOS=0"
- "DIUN_PROVIDERS_DOCKER_WATCHSTOPPED=true"
- "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true"
labels:
- "diun.enable=true" # Метка, разрешающая Diun отслеживать этот контейнер (опционально, если `WATCHBYDEFAULT=false`)
restart: always # Перезапуск контейнера при сбое или перезагрузке Docker-хоста
Этот код для docker-compose.yaml файла который будет отправлять уведомления в telegram и в mqtt сервер.
при наличии нового обновления в telegram будет приходить такое сообщение:
