Synology NASの通知をLINE Notifyに送る

3766 ワード

はじめに

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を指定します。

https://notify-bot.line.me/

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"

img01

Synology NASに登録する手順

私が利用しているSynology NAS(DS220+)はIntelベースのCPUを使用しているので、Dockerが利用可能です。

今回作成したコンテナイメージは、Synology NASで直接実行し、localhostにて通信できます。

img02

コントロールパネルの通知設定を追加します。

Providerタブでは、Webhook URLを以下のように設定します。

http://localhost:3000/?msg=Hello+world

img03

HTTP Requestタブでは特に設定の追加は不要。

img04

Parameter Typeタブでは、msgのカテゴリをMessage Contentに指定します。

img05

最後に、必要に応じて通知ルールを変更すれば完了です。

img06

おわりに

今回はとりあえずZenn初投稿で、手近なコンテンツとして既にGitHubに上げているREADME(英語)の日本語訳版でした。

Synology NAS大好きで自分が便利になるためのツールですが、どなたかの役に立てばと思い公開しました。