ntfyをDockerでセルフホストしてプッシュ通知基盤を作る

ntfyはHTTP POSTだけでスマホへプッシュ通知を送れる軽量サーバー。Dockerでの立ち上げと認証設定、スクリプトからの通知送信までをまとめる。

Dockerでの起動

公式イメージをdocker runで起動し、設定はserver.ymlか環境変数で渡す。base-urlを正しく設定しないとアプリ側の購読が失敗する。

認証とアクセス制御

デフォルトは誰でもpublishできるため、auth-default-access: deny-allにしてユーザーとACLを定義する。トピック単位で読み書き権限を分けられる。

スクリプトからの送信

curl -d "本文" https://ntfy.example.com/topicで送信できる。優先度やタグはヘッダーで指定し、長時間処理の完了通知に組み込みやすい。