Gotify-通知を配信し、サーバーにメッセージを送信するためのオープンソースプロジェクト





サーバーやWebプロジェクトを管理する人たちにとって、彼らの「病棟」で何が起こっているのかを意識するという鋭い質問があります。 市場では、SMSを含む、障害、接続状態、およびその他のパラメーターに関するアラートについて多くの決定事項があります。 私たちは、MRTG、Twilio、F-Droid、Googleサービス、その他多くの多くのことについて話している。 唯一の問題は、これらのソリューションのほとんどが非常に狭く専門化されており、それらの機能に影響を与えることができないということです。 MRTGはトラフィックと接続に関する情報を提供し、GoogleはSMSを送信します。 Twilioは、ニーズに合わせてJavaScriptスクリプトを作成するという点である程度の自由を与えますが、申し訳ありませんが、これは商用プロジェクトです。 つまり、「さあ、戦利品を払うか、立ち去る」ということです。



そのため、このツールファミリにはオープンソースの補充があります。Gotifyは、Androidアプリケーションを含め、プッシュ通知とコマンドを送受信するためのシンプルなクライアントサーバープロジェクトです。 それについて間違いなくもう少し説明する価値があります。似たようなものを同時に無料で探していたが、最終的には自分のペットプロジェクトを始めた人にとっては役立つと思います。 この出版物はあなたの時間を数百時間節約する可能性があります。



Gotifyが提供するもの



このプロジェクトは数年間平和的に存在し、GitHubで開発されており、この間にサーバー、Webクライアント、Androidアプリケーション、API、そしてもちろんドキュメントを取得しました。 Gotrifyについて話す理由は2つあります。それはオープンソースであり、「受信」だけでなく「戻る」でも動作し、すべての種類がGitHubにあり、bashスクリプトを使用して構成されています。 そしてもちろん、無料です。



ほとんどの既存のソリューションは、ターゲットサーバー/デバイスからの通知の受信のみを目的としていますが、クライアントとサーバー間の完全な相互作用を目的とするものではありません。 つまり、サーバーがクラッシュしたか、インターネットが消えたという通知を受け取る場合があります。 「反対側」で何が起こっているのかを自問するのは必ずしも便利ではなく、同じアプリケーション/ウィンドウで行うことができます。 ほとんどの場合、この種の情報を取得するには、VPNまたはTeamGoeverを(神は禁止します)切断して、「手で」監視する必要があります。 Twilioは、自作のJSスクリプトを使用してある程度の範囲を提供しますが、有料です。



実際、Gotifyプロジェクト全体は、サーバー、クライアント、アプリケーションの3つの部分に分かれています。 サーバーは、メッセージを送受信する方法、クライアント-受信する方法、およびアプリケーション-送信する方法を理解できるように動作します。







さらに、プロジェクトにはAPIクライアント(およびドキュメント)、APIテンプレート、プラグインテンプレート、独自のWebサイト、JSON、YAML、TOML、および環境変数をサポートするGo構成ライブラリ、サーバービルド、クライアント、そして実際には、Androidアプリケーション。 気になるかもしれない唯一のものは、Androidアプリです。 携帯電話でインフラストラクチャを監視することほど、世界に無力で無責任で不道徳なものはありません。 しかし、技術は進歩しており、遅かれ早かれこのゴミに移行することを知っています。 サーバーとリモートで通信するために最低限必要なセットではなかったわけではありませんが、オープンソースコミュニティが独自のツールをカットし始めたとき、それを止めることは困難です。



それとは別に、サーバーと通信するには、認証とアプリケーショントークンのみが必要であり、これらはRESTリクエストを介してサーバーから返されることに言及する価値があります。 将来的には、このトークンを使用して、 curlHTTPieなどのHTTPクライアントを介してメッセージを受信できます。



$ curl -X POST "https://push.example.de/message?token=<apptoken>" -F "title=my title" -F "message=my message" -F "priority=5" $ http -f POST "https://push.example.de/message?token=<apptoken>" title="my title" message="my message" priority="5"
      
      





プロジェクトの公式ウェブサイトのマニュアルによると、異なる優先順位のサーバーへのプッシュはGolangとPythonの両方に送信できます。



ゴラン



 package main import ( "net/http" "net/url" ) func main() { http.PostForm("http://localhost:8008/message?<apptoken>", url.Values{"message": {"My Message"}, "title": {"My Title"}}) }
      
      





Python



 import requests #pip install requests resp = requests.post('http://localhost:8008/message?token=<apptoken>', json={ "message": "Well hello there.", "priority": 2, "title": "This is my title" })
      
      





LinuxおよびMacでも、独自のプラグインを作成できます。 プロジェクトのウェブサイトにリストされている利用可能な機能は次のとおりです。





Gotifyプラグインシステムは、 ここで説明されている標準のGoプラグインシステムに基づいています 。 Gotifyで使用できるのはなぜですか? 開発者は、GitHub、Travis CIなどからWebフックを受信し、RSS、Atomソースを介してフィードをポーリングし、WebUIの標準機能を拡張し、もちろんクラッシュに関するアラートアラートを配信する例を挙げています。 このページには、プラグインのテンプレートとコードの説明があります。 プラグインが正しく機能するために、開発者はDockerの使用を推奨しますが、DockerがなくてもGotifyが機能するように設定することは可能ですが、この場合のメッセージの正しい送受信は保証されません。



ここでは、プロジェクトの基本的なドキュメントの全文を提供しませんでした-すべて自分で読むことができます。 レビューから判断すると、プロジェクトは非常に思慮深いことが判明しましたが、少なくとも一方では、SMS通知が使用されていないため(海外または地下にいる場合は不便です)、Android 6-7でもたらされたパワーセーフモードを積極的に無視しようとしました。 Gotifyは、それがオープンソース、つまり無料であり、フォーク、ファイルのピックアップ、特定の人々/チームのニーズに適した状態にこのツールをもたらすものが何もないという理由だけで好奇心が強いです。






参照資料



  1. GitHubリポジトリ。
  2. プロジェクトの公式サイト。
  3. APIドキュメント。



All Articles