Synology NASの通知をLINE Notifyに送る
はじめに
Synology NAS DSM 7.xはイベント通知にWebhookを使えるのですが、残念ながらLINE Notifyに直接送信できません。
そこで簡単なDocker ContainerをGoLangで作成しました。
使い方
プログラム一式はGitHubに公開していますので、まずはそれをCloneしてきてください。
https://github.com/katakura/synology-line-notify
git clone https://github.com/katakura/synology-line-notify.git
直接実行しての動作確認
直接実行するには、GoLangがインストール済みの環境で次のようにします。
LINE_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA go run notify.go
LINE_TOKENには、以下のサイトから取得したTOKENを指定します。
Docker Containerでの実行
GitHubリポジトリには、Dockerfileが添付されているので、これをビルドして使用できます。
以下は実行例です。
docker build -t synology-line-notify .
docker run -p 3000:8080 -e LINE_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA synology-line-notify
DockerHubで公開されている私のリポジトリからイメージを利用できます。
docker run -p 3000:8080 -e LINE_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA katakura/synology-line-notify:latest
テスト実行
上記のいずれかの方法でコンテナを起動した状態で、別の端末からcurlコマンドで確認し、LINEアプリケーションに通知が送信されることを確認します。
curl "localhost:3000?msg=Hello%20world"
Synology NASに登録する手順
私が利用しているSynology NAS(DS220+)はIntelベースのCPUを使用しているので、Dockerが利用可能です。
今回作成したコンテナイメージは、Synology NASで直接実行し、localhostにて通信できます。
コントロールパネルの通知設定を追加します。
Providerタブでは、Webhook URLを以下のように設定します。
http://localhost:3000/?msg=Hello+world
HTTP Requestタブでは特に設定の追加は不要。
Parameter Typeタブでは、msgのカテゴリをMessage Contentに指定します。
最後に、必要に応じて通知ルールを変更すれば完了です。
おわりに
今回はとりあえずZenn初投稿で、手近なコンテンツとして既にGitHubに上げているREADME(英語)の日本語訳版でした。
Synology NAS大好きで自分が便利になるためのツールですが、どなたかの役に立てばと思い公開しました。
Discussion