アクセス解析 GoAccess の導入

webalizer, awstats などのWebサーバのアクセス解析ツールを使っていたけど、Gemini にお薦めを聞いたら GoAccess を紹介される。単純に動かすだけだと、access.log だけになる(我が家では1日づつのlogrotate)ので、月別にログをまとめるように設定ファイルを作成し、月別ログを切り換える機能を追加してみた。

Switchbot 学習リモコンがリセットできない

買った割にあまり活用できていない学習リモコンだけど、Hub mini 側での再学習があったので同期をとろうとするが失敗。

リセットできない

しかたがないので、スマホのアプリ側から一旦削除して再接続させようとリセットピンでのリセットを試みたけど、リセットされず、ONボタン長押しによるスマホアプリとの連携ができない。ファームウェア修復(中央の赤ボタン/kataボタンを押しながらのピンリセット)を試みるけど、赤い壊れたアイコン画面がでて、ファームウェアリセットが始まらない。

うーむ、色々試したけど、うまくいかないのでサポートにメッセージを入れた。前回は対応丁寧だったし。

サポートの説明手順でファームウェア修復

ファームウェア修復だけど、kata+ピンリセットで学習リモコンの画面にファーム修復の画面が出てくると思っていたけど、SwitchBotアプリ側に出てくる…という勘違いポイントが判明。

  1. SwitchBotアプリ⇒プロフィール⇒ファームウェア修復
  2. その後、学習リモコン側でKataボタン+ピンリセット
  3. SwitchBotアプリに、「ファームウェア修復」が表示されるので修復を開始

修復にはかなり時間がかかった。

んで、SwitchBotアプリと接続させたら、早々にファームウェアV4.6への更新がかかった。修復は10分ほどかかったけど、更新は1分ほどだな。更新前のファームは、V2.4?で大幅な更新だった。動かなくなったのはこれが原因だったのかも。

福 来たれ

招き猫になってみました。

あけましておめでとうございます

homeassistant を watchtower で更新

先日 DHCP の設定で、Docker 環境が DHCPREQUEST を出しているかもとの勘違いで、HomeAssistant をアンインストールしていたけど、改めて HomeAssistant を運用再開。

HomeAssistant の運用再開(HTTPSに変更)

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/fullchain.pem
  ssl_key: /certs/privkey.pem
$ sudo docker restart homeassistant

Watchtower で HomeAssistant の更新

HomeAssistant を自動更新させる Watchtower をインストールする手順は、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 にお勧めを聞いたら、Docker を Web の GUI で管理ができる Portainer をすすめられた。
ということで、おすすめ設定を実行。

https 通信を使うので、オレオレ証明書のエラー画面で継続をすると、自宅サーバのアクセスで信用できない通信が表示されるようになる。そこで自宅サーバの証明書を使うように設定を追加。(Gemini に聞くと証明書の設定方法を提案してくれる。便利。)

((( 設定データ保存用のボリューム作成 )))
$ 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 で起動しているので、アクセス権を与えないと、秘密鍵が読めない。かといって 証明書のアクセス権をユルユルにするのも避けたいので、Geminiに設定を提案してもらうと ACL でアクセス権を与える方法を示してくれた。(Linux での ACL の使い方、参考になる。Geminiに感謝。)

((( 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

ということで、homebridge, HomeAssistant, DockerのPortainer などの Web サービスを https 化することができ、ブラウザの「保護されていない通信」の表示を消すことができた。

ママiPhoneの機種変iPhone17

ママスマホのバッテリー劣化が酷いし、CPU性能からゲームでの機体発熱もひどいので、機種変を決意。

iPhone13proを使っていたけど、機体サイズもほぼ同じ iPhone17 となった。夫婦そろって同じ機種は久々だな。

正月休みの運動

正月休みの運動不足でウォーキングとも思うけど、雪で出歩けないし、超久々のリングフィットアドベンチャー
{CAPTION}

玄関に風除室

例年なら、おやじが雪除けを設置しているけど、足腰も弱っているし、風除室を設置。
{CAPTION}

arpalertをarpwatchに変更

不審なネットワーク接続を見つけるために、arpalert を使っていたけど、新しい端末を登録するときに警告メールが飛んでこない。サーバを切り替え ubuntu に変更となって、何も考えずに arpalert をインストールしてあったけど、細かい点の動作確認をしていなかった。

調べると arpalert は最近メンテナンスされていないらしい。systemctl status arpalert すると、/etc/init.d/arpalert の sysv 形式で起動している。古い証拠なので切り替え。

最近は arpwatch を進められたので、arpwatch に切り替え。

arpwatch の設定

設定は、設定対象のインタフェース名(自宅の場合 enp2s0)をしらべ、以下で起動

$ sudo apt install arpwatch

$ sudo vi /etc/arpwatch/enp2s0.iface
IFACE_ARGS="-m root@tsaitoh.net"     # 警告メールの送り先
PCAP_FILTER="net 192.168.11.0/24"    # 監視対象を制限

$ sudo systemctl enable arpwatch@enp2s0
$ sudo systemctl start arpwatch@enp2s0

$ sudo apt remove arpalert

iOS26.2とIPアドレストラッキング

iOS26.2にして、自宅サーバ限定ページが見えない。確認すると「IPアドレスのトラッキング制限」が ON になってら。