This page available in English, Deutsch, Español, Français, हिन्दी, Italiano, 日本語, Nederlands, Polski, Português, 中文(简体)

updates2mqtt¶
Resumo¶
Deixe o Home Assistant informá-lo sobre novas atualizações de imagens Docker para os seus containers.


Leia as notas de versão e, opcionalmente, clique em Atualizar para acionar um Docker pull (ou opcionalmente build) e atualização.

Descrição¶
O Updates2MQTT verifica periodicamente a disponibilidade de novas versões dos componentes e publica as informações sobre novas versões via MQTT. O descobrimento automático do HomeAssistant é suportado, de modo que todas as atualizações podem ser vistas no mesmo lugar que os próprios componentes e add-ins do Home Assistant.
Atualmente, apenas containers Docker são suportados, seja por meio de uma verificação de registro de imagens (usando as APIs Docker v1 ou a API OCI v2) ou um repositório git para o código-fonte (consulte Builds Locais), com tratamento específico para Docker, Github Container Registry, Gitlab, Codeberg, Microsoft Container Registry, Quay e LinuxServer Registry, com comportamento adaptativo para a maioria dos outros. O design é modular, portanto outras fontes de atualização podem ser adicionadas, pelo menos para notificação. A próxima prevista é o apt para sistemas baseados em Debian.
Os componentes também podem ser atualizados, automaticamente ou acionados via MQTT, por exemplo, clicando no botão Instalar no diálogo de atualização do HomeAssistant. Ícones e notas de versão podem ser especificados para uma melhor experiência no HA. Consulte Integração com o Home Assistant para detalhes.
Para começar, leia as páginas Instalação e Configuração.
Para um teste rápido, experimente:
docker run -v /var/run/docker.sock:/var/run/docker.sock -e MQTT_USER=user1 -e MQTT_PASS=user1 -e MQTT_HOST=192.168.1.5 ghcr.io/rhizomatics/updates2mqtt:latest
ou sem Docker, usando uv
export MQTT_HOST=192.168.1.1;export MQTT_USER=user1;export MQTT_PASS=user1;uv run --with updates2mqtt python -m updates2mqtt
Também inclui uma ferramenta básica de linha de comando que realizará a análise de um único container em execução, ou buscará manifestos, blobs JSON e listas de tags de registros remotos (comprovadamente funciona com GitHub, GitLab, Codeberg, Quay, LSCR e Microsoft MCR).
Suporte a Versões¶
Atualmente, apenas containers Docker são suportados, embora outros estejam planejados, provavelmente com prioridade para apt.
| Ecossistema | Suporte | Comentários |
|---|---|---|
| Docker | Scan, Fetch | Fetch é apenas docker pull. Suporte a reinicialização apenas para containers baseados em imagem docker-compose. |
Heartbeat¶
Um payload JSON de heartbeat é opcionalmente publicado periodicamente em um tópico MQTT configurável, com padrão healthcheck/{node_name}/updates2mqtt. Contém a versão atual do Updates2MQTT, o nome do nó, um timestamp e algumas estatísticas básicas.
Verificação de Saúde (Healthcheck)¶
Um script healthcheck.sh está incluído na imagem Docker e pode ser usado como healthcheck do Docker se as variáveis de ambiente do container MQTT_HOST, MQTT_PORT, MQTT_USER e MQTT_PASS estiverem definidas. Utiliza o pacote Linux mosquitto-clients que fornece o comando mosquitto_sub para subscrever tópicos.
Tip
Verifique se o healthcheck está funcionando usando docker inspect --format "{{json .State.Health }}" updates2mqtt | jq (pode omitir | jq se não tiver o jsonquery instalado, mas é muito mais fácil de ler com ele)
Outra abordagem é usar um serviço restarter diretamente no Docker Compose para forçar uma reinicialização, neste caso uma vez por dia:
restarter:
image: docker:cli
volumes: ["/var/run/docker.sock:/var/run/docker.sock"]
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart updates2mqtt; done"]
restart: unless-stopped
environment:
- UPD2MQTT_UPDATE=AUTO
Containers Alvo¶
Embora o updates2mqtt descubra e monitore todos os containers em execução no daemon Docker, existem algumas opções para ajustar seu funcionamento nesses containers.
Isso é feito adicionando variáveis de ambiente ou labels Docker aos containers, normalmente dentro de um arquivo .env ou como opções environment dentro do docker-compose.yaml.
Atualizações Automatizadas¶
Se os containers Docker devem ser atualizados imediatamente, sem qualquer confirmação ou acionamento, por exemplo, a partir do diálogo de atualização do HomeAssistant, defina a variável de ambiente UPD2MQTT_UPDATE no container alvo como Auto (o padrão é Passive). Se quiser que ele atualize sem publicar no MQTT e sem ser visível para o Home Assistant, use Silent.
restarter:
image: docker:cli
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart mailserver; done"]
environment:
- UPD2MQTT_UPDATE=AUTO
As atualizações automatizadas também podem se aplicar a builds locais, onde um git_repo_path foi definido - se houver commits remotos disponíveis para pull, então git pull, docker compose build e docker compose up serão executados.
Projetos Relacionados¶
Outros aplicativos úteis para self-hosting com a ajuda do MQTT:
- psmqtt - Reportar saúde do sistema e métricas via MQTT
Encontre mais em awesome-mqtt
Para um gerenciador de atualizações mais poderoso focado em Docker, experimente What’s Up Docker
Desenvolvimento¶
Este componente depende de vários pacotes de código aberto:
- docker-py SDK Python para acesso às APIs Docker
- Eclipse Paho cliente MQTT
- OmegaConf para configuração e validação
- structlog para logging estruturado e rich para melhor relatório de exceções
- hishel para cache de metadados
- httpx para recuperar metadados
- As ferramentas Astral uv e ruff para desenvolvimento e build
- pytest e add-ins de suporte para testes automatizados
- usingversion para registrar informações da versão atual
Rhizomatics Open Source para Home Assistant¶
HACS¶
- AutoArm - Armar e desarmar automaticamente painéis de controle de alarme do Home Assistant usando botões físicos, presença, calendários, sol e muito mais
- Remote Logger - Captura de eventos OpenTelemetry (OTLP) e Syslog para Home Assistant
- Supernotify - Notificação unificada para mensagens multicanais fáceis, incluindo poderosa integração de campainha e câmera de segurança.
Python / Docker¶
- Anpr2MQTT - Integração com câmeras ANPR/ALPR de placas de veículos via sistema de arquivos (NAS/FTP) para MQTT com análise de imagens opcional e integração com a DVLA do Reino Unido.