Home Assistant アップグレード・インストール

Let’s Encryptによるhttps対応

Home AssistantNginxプロキシーサーバ経由で配置しているため、以下のスタンドアローンモードでLet’s Encryptの認証を取得、取得したファイルをHome AssistantDockerコンテナと共有します。

Nginxで指定したドメインの設定ファイル(www.example.com)を、同一LAN上に配置したHome Automationサーバマシン(Dockerコンテナ)へ導きます。

httpsをhttpへ変更後、次の手順に進んで下さい(認証取得後httpsへ戻す必要はありません)。

.....
location / {
        proxy_pass http://192.168.x.xx;
.....

Home Automationサーバのポート80を開放して以下コマンドを実行します。

$ sudo certbot certonly --standalone --preferred-challenges http -d www.example.com

以下ディレクトリに認証ファイルが作成されます。
/etc/letsencrypt/live/www.example.com

Dockerボリュームを作成、ここに上記のディレクトリをコピーします。

$ docker volume create letsencrypt
$ sudo cp -r /etc/letsencrypt/* /var/lib/docker/volumes/letsencrypt/_data

docker-composeファイルで認証ファイルが共有されるよう指定します。
注: または直接ホストのディレクトリ/etc/letsencryptを指定しても構いません。その場合、Dockerボリュームは必要ありません。)

...
...
volumes:
      - letsencrypt:/etc/letsencrypt
...
...
volumes:
    letsencrypt:
      external: true

認証は90日間の期限付きのため、定期的に認証取得が行われるようcrontabにコマンドを記述します。

$ sudo crontab -e

#certbot renew          
@monthly sudo certbot renew && sudo cp -r /etc/letsencrypt/* /var/lib/docker/volumes/letsencrypt/_data