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

updates2mqtt¶
概要¶
Home Assistantがコンテナ用Dockerイメージの新しいアップデートを通知します。


リリースノートを読み、必要に応じてアップデートをクリックしてDockerのpull(またはbuild)と更新を実行します。

説明¶
Updates2MQTTは定期的にコンポーネントの新バージョンをチェックし、新しいバージョン情報をMQTTに公開します。HomeAssistantの自動検出がサポートされているため、すべてのアップデートをHome Assistant自身のコンポーネントやアドインと同じ場所で確認できます。
現在はDockerコンテナのみがサポートされており、イメージレジストリチェック(v1 Docker APIまたはOCI v2 APIを使用)またはソース用gitリポジトリ(ローカルビルド参照)を通じて確認できます。Docker、Github Container Registry、Gitlab、Codeberg、Microsoft Container Registry、Quay、LinuxServer Registryに対する特定の処理と、その他のほとんどに対する適応的な動作をサポートしています。設計はモジュラーであるため、少なくとも通知については他の更新ソースを追加できます。次に予定されているのはDebianベースシステム向けのaptです。
コンポーネントは自動的に、またはMQTT経由でトリガーされてアップデートすることもできます。例えば、HomeAssistantのアップデートダイアログでインストールボタンを押すことで実行できます。より良いHAエクスペリエンスのためにアイコンとリリースノートを指定できます。詳細はHome Assistantインテグレーションを参照してください。
クイックスタートには以下をお試しください:
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
またはDockerなしで、uvを使用:
export MQTT_HOST=192.168.1.1;export MQTT_USER=user1;export MQTT_PASS=user1;uv run --with updates2mqtt python -m updates2mqtt
単一の実行中コンテナの分析を実行したり、リモートレジストリからマニフェスト、JSONブロブ、タグリストを取得する基本的なコマンドラインツールも付属しています(GitHub、GitLab、Codeberg、Quay、LSCR、Microsoft MCRで動作確認済み)。
リリースサポート¶
現在はDockerコンテナのみがサポートされていますが、他も計画中で、おそらくaptが優先されます。
| エコシステム | サポート | コメント |
|---|---|---|
| Docker | Scan, Fetch | Fetchはdocker pullのみ。再起動サポートはdocker-composeイメージベースのコンテナのみ。 |
ハートビート¶
ハートビートJSONペイロードは、設定可能なMQTTトピック(デフォルト:healthcheck/{node_name}/updates2mqtt)に定期的にオプションで公開されます。Updates2MQTTの現在のバージョン、ノード名、タイムスタンプ、基本的な統計が含まれます。
ヘルスチェック¶
healthcheck.shスクリプトがDockerイメージに含まれており、コンテナの環境変数MQTT_HOST、MQTT_PORT、MQTT_USER、MQTT_PASSが設定されている場合、Dockerヘルスチェックとして使用できます。トピックをサブスクライブするためのmosquitto_subコマンドを提供するmosquitto-clients Linuxパッケージを使用します。
Tip
docker inspect --format "{{json .State.Health }}" updates2mqtt | jqを使用してヘルスチェックが機能していることを確認してください(jsonqueryがインストールされていない場合は| jqを省略できますが、あった方が読みやすいです)
別のアプローチとして、Docker Composeに直接リスタータサービスを使用して再起動を強制する方法があります(この場合は1日1回):
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
対象コンテナ¶
updates2mqttはDockerデーモン下で実行されているすべてのコンテナを検出して監視しますが、それらのコンテナの動作を調整するためのオプションがあります。
これは、コンテナに環境変数またはDockerラベルを追加することで行います。通常は.envファイル内、またはdocker-compose.yaml内のenvironmentオプションとして指定します。
自動アップデート¶
Dockerコンテナを確認やトリガーなしに即座にアップデートする場合(例:HomeAssistantのアップデートダイアログから)、対象コンテナの環境変数UPD2MQTT_UPDATEをAutoに設定します(デフォルトはPassive)。MQTTへの公開やHome Assistantへの表示なしにアップデートする場合はSilentを使用します。
restarter:
image: docker:cli
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart mailserver; done"]
environment:
- UPD2MQTT_UPDATE=AUTO
自動アップデートは、git_repo_pathが定義されたローカルビルドにも適用されます。リモートコミットがpull可能な場合、git pull、docker compose build、docker compose upが実行されます。
関連プロジェクト¶
MQTTを活用したセルフホスティングに役立つ他のアプリ:
- psmqtt - MQTT経由でシステムの健全性とメトリクスを報告
awesome-mqttでさらに多くを見つける
より強力なDockerに特化したアップデートマネージャーにはWhat’s Up Dockerをお試しください
開発¶
このコンポーネントはいくつかのオープンソースパッケージに依存しています:
- docker-py Docker API アクセス用 Python SDK
- Eclipse Paho MQTTクライアント
- OmegaConf 設定と検証用
- structlog 構造化ログ用と rich より良い例外レポート用
- hishel メタデータのキャッシュ用
- httpx メタデータ取得用
- Astral uv と ruff 開発とビルド用ツール
- pytest と自動テスト用サポートアドイン
- usingversion 現在のバージョン情報をログに記録
Home Assistant向け Rhizomatics オープンソース¶
HACS¶
- AutoArm - 物理ボタン、在室検知、カレンダー、太陽情報などを使用してHome Assistantの警報コントロールパネルを自動的にアームおよびディスアーム
- Remote Logger - Home Assistant用のOpenTelemetry(OTLP)およびSyslogイベントキャプチャ
- Supernotify - 強力なチャイムとセキュリティカメラ統合を含む、簡単なマルチチャンネルメッセージング向け統合通知。
Python / Docker¶
- Anpr2MQTT - オプションの画像解析とUK DVLA統合を備えた、ファイルシステム(NAS/FTP)経由でANPR/ALPR車番認識カメラをMQTTに統合。