先日 DHCP の設定で、Docker 環境が DHCPREQUEST を出しているかもとの勘違いで、homeassistant をアンインストールしていたけど、改めて homeassistant を運用再開。
HomeAssistant の運用再開
homeassistant のイメージダウンロードして、設定を最初から…と思ったけど、前回インストールしてあったものが残ってて、一発で環境が復活。
でも、homeassistant の更新方法を確認すると、docker image をダウンロード, stop, remove ,新しいイメージを run させるとかの手順が出てきて面倒。Gemini に聞いたら、Watchtower を勧めてくれた。
また、HomeAssistant を https で起動するように設定をしなおす。
$ sudo docker stop homeassistant
$ sudo docker rm homeassistant
$ sudo docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-v /var/lib/homeassistant:/config \
-v 証明書へのPATH:/certs:ro \
--network=host \
ghcr.io/home-assistant/home-assistant:stable
$ sudo /var/lib/homeassistant/configuration.yaml # 以下を追記
http:
ssl_certificate: /certs/YOUR_DOMAIN/fullchain.pem
ssl_key: /certs/YOUR_DOMAIN/privkey.pem
$ sudo docker restart homeassistant
Watchtower で HomeAssistant の更新
Gemini に出てきた設定方法をそのまま実行。
$ sudo docker run -d \ --name watchtower \ --restart=unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --interval 86400 homeassistant $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e94a5eea7468 containrrr/watchtower "/watchtower --inter…" 4 seconds ago Up 1 second (health: starting) 8080/tcp watchtower 94c7a25097d4 ghcr.io/home-assistant/home-assistant:stable "/init" 6 minutes ago Up 6 minutes homeassistant
でも、現状のバージョンが 2025.9 だったので、最新の 2025.12 に早々に上げたいので、確認したら、以下のように、 –run-once を指定して実行すればいいらしい。
$ sudo docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once \
homeassistant
エラーが出たので、Gemini の協力もあり、バージョン指定で更新。
$ sudo docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_API_VERSION=1.44 \
containrrr/watchtower \
--run-once \
homeassistant
無事に、2025.12.5 に更新ができた。
んん? –run-once で更新ができるのなら、watchtower を起動させっぱなしなのは、プロセス資源がもったいない。/etc/cron.monthly で “docker run … watchtower –run-once …” を実行した方がいいじゃん。docker stop/rm watchtower して cron 管理に移行させた。
Docker管理の Portainer のインストール
Docker 絡みで Gemini にお勧めを聞いたら、Web の GUI で管理ができる Portainer をすすめられた。
ということで、おすすめ設定を実行。
https 通信を使うので、オレオレ証明書のエラー画面で継続をすると、自宅サーバのアクセスで信用できない通信が表示されるようになる。そこで自宅サーバの証明書を使うように設定を追加。
((( 設定データ保存用のボリューム作成 )))
$ sudo docker volume create portainer_data
((( Portainer コンテナの起動 )))
$ sudo docker run -d \
-p 8000:8000 \ # Edge Agent通信用の HTTPポートの割り当て
-p 9443:9443 \ # HTTPSポートの割り当て
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-v 証明書へのPATH:/certs \
portainer/portainer-ce:latest \
--sslcert /certs/fullchain.pem \
--sslkey /certs/privkey.pem
Homebridge を https で使う
Dockerの https の設定がうまくできたし、Homebridge も https で使えないか確認。ただし、homebridge は user=homebridge で起動しているので、アクセス権を与えないと、秘密鍵が読めない。かといって 証明書を広く読めるようにするのも避けたいので ACL でアクセス権を与える。
((( ACL で 読み込み権限を与える )))
$ sudo setfacl -m u:homebridge:r 証明書へのPATH/fullchain.pem
$ sudo setfacl -m u:homebridge:r 証明書へのPATH/privkey.pem
((( /var/lib/homebridge/config.json )))
"platforms": [
{ "name": "Config",
"port": 8581,
"lang": "ja",
"theme": "purple",
"menuMode": "default",
"lightingMode": "light", "sessionTimeout": 100000,
"platform": "config",
"ssl": {
"cert": "証明書へのPATH/fullchain.pem",
"key": "証明書へのPATH/privkey.pem"
}
},
((( homebridge 再起動 )))
$ sudo systemctl restart homebridge