ChangeDetection.io を更新したらルーターのアドレスがエラーになってしまいました.
ChangeDetection.io ははてなアンテナのように登録サイトを定期的に巡回して更新を教えてくれるアプリケーションおよびサービスです.
自分はローカルPC に入れて動かしています.
#kagolug 2025.03 で発表したときの資料はこちら.
今回更新通知が来ていたので最新に更新しました.v0.54.1 になりました.
$ w3m -dump http://100.121.84.16:5000/ | grep ^v v0.54.1
するとrouter の設定が以下のようなエラーになってログが取れなくなっています.
> DISABLED > Exception: Invalid URL 'DISABLED': No scheme supplied. Perhaps you meant https://DISABLED? [Create a link to share watch config with others]

Edit ボタンを押して編集画面に遷移すると問題なさそう.でも上書き保存しようとしたら怒られます.
エラーメッセージからはURL がおかしそうですが,このURL は普通に開けるしそもそもバージョンアップまでは動いていたものです.
* Watch protocol is not permitted or invalid URL format

なんかバグ踏んだ?前バージョンから今回までのdiff 見るか……と思ったのですが,SSRF 対策でプライベートIP が無効にされるようになったようです.
CVE-2026-27696 – Server-Side Request Forgery (SSRF) via Watch URLs, set env var ALLOW_IANA_RESTRICTED_ADDRESSES to true to access IANA reserved URLs such as http://169.254.169.254, http://10.0.0.1/, http://127.0.0.1/, etc.
ALLOW_IANA_RESTRICTED_ADDRESSES=true で逃げられるようなので設定してみます.
docker-compose で運用しているので,docker-compose.yml を開き,changedetection 部分の environment: に ALLOW_IANA_RESTRICTED_ADDRESSES=true を追加しました.そしてup することでプライベートIP アドレスのURL もまた動作するようになりました.
$ docker compose --file ~/src/changedetection.io/docker-compose.yml up -d
これこのアドレスだけ許可のような設定もできると良さそうですね.
環境
$ docker images ghcr.io/dgtlmoon/changedetection.io:latest
i Info U In Use
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
ghcr.io/dgtlmoon/changedetection.io:latest cf4a98d2a980 889MB 0B U
$ w3m http://127.0.0.1:5000/ | grep ^v
v0.54.1
$ dpkg-query -W docker.io docker-compose-plugin
docker-compose-plugin 5.1.0-1~debian.12~bookworm
docker.io 26.1.5+dfsg1-4+b1
$ lsb_release -dr
Description: Debian GNU/Linux forky/sid
Release: n/a
$ arch
x86_64