
Pour ceux qui administrent des serveurs et / ou des projets Web, il est très difficile de savoir ce qui se passe avec leurs «services». Il existe de nombreuses décisions sur le marché concernant les alertes concernant les échecs, l'état de la connexion et d'autres paramètres, y compris via SMS. Nous parlons de MRTG, Twilio, F-Droid, des services Google et bien d'autres. Le seul problème est que la plupart de ces solutions sont très étroitement spécialisées et qu'il n'est pas possible d'influencer leurs fonctions. MRTG fournira des informations sur le trafic et la connexion, Google enverra des SMS. Twilio donne une certaine liberté en termes d'écriture de scripts JavaScript pour répondre à vos besoins, mais je suis désolé, il s'agit d'un projet commercial. C'est-à-dire "allez, payez le butin ou partez."
Ainsi, dans cette famille d'outils, nous avons un réapprovisionnement open source: Gotify est un projet client-serveur simple pour recevoir et envoyer des notifications et des commandes push, y compris via une application Android. Et cela vaut vraiment la peine d'en dire un peu plus à ce sujet, je pense que cela sera utile pour ceux qui recherchaient quelque chose de similaire et en même temps gratuit, mais ont finalement lancé leur propre projet pour animaux de compagnie. Il est possible que cette publication vous fasse économiser quelques centaines d'heures de votre temps.
Ce que Gotify propose
Le projet existe et se développe pacifiquement sur GitHub depuis plusieurs années, et pendant ce temps, il a acquis un serveur, un client Web, une application Android, une API et, bien sûr, de la documentation. J'ai décidé de parler de Gotrify pour deux raisons: il est open source et fonctionne non seulement sur la "réception", mais aussi sur le "retour", toutes sortes sont sur GitHub, plus il est configuré à l'aide de scripts bash. Et bien sûr, c'est gratuit.
La plupart des solutions existantes visent exclusivement à recevoir des notifications du serveur / périphérique cible, mais pas à une interaction complète entre le client et le serveur. Autrement dit, vous pouvez recevoir une notification indiquant que votre serveur est tombé en panne ou que Internet a disparu. Il n'est pas toujours pratique de se demander ce qui se passe de «l'autre côté» et cela peut être fait dans la même application / fenêtre. Plus souvent qu'autrement, pour obtenir ce genre d'informations, vous devez couper un VPN ou (à Dieu ne plaise) certains TeamViever et le regarder «avec vos mains». J'ai mentionné ci-dessus que Twilio offre une certaine étendue grâce à des scripts JS auto-écrits, mais il est payé, donc par.
En fait, l'ensemble du projet Gotify est divisé en trois parties: serveur, client et application. Le serveur fonctionne naturellement comment - pour envoyer et recevoir des messages, le client - uniquement pour recevoir et l'application - pour envoyer uniquement.

De plus, le projet a un client API (et de la documentation), un modèle d'API, un modèle de plugin, son propre site Web, une bibliothèque de configuration Go qui prend en charge JSON, YAML, TOML et des variables d'environnement, ainsi qu'une version serveur, un client et, en fait, , Application Android. La seule chose qui peut déranger est l'application Android. Il n'y a rien de plus impuissant, irresponsable et immoral dans le monde que de surveiller les infrastructures via un téléphone mobile. Mais la technologie progresse et nous savons que tôt ou tard nous passerons à ces déchets. Non pas qu'il s'agissait de l'ensemble minimal nécessaire pour communiquer à distance avec le serveur, mais lorsque la communauté open source commence à couper ses propres outils, il est difficile pour elle de s'arrêter.
Séparément, il convient de mentionner que pour communiquer avec le serveur, seules l'authentification et le jeton d'application sont requis, qui sont retournés par le serveur via une demande REST. À l'avenir, en utilisant ce jeton, vous pouvez recevoir des messages via n'importe quel client http, par exemple, via
curl ou
HTTPie :
$ 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"
Selon le manuel sur le site officiel du projet, l'envoi au serveur avec différentes priorités peut être envoyé à Golang et Python:
Golang 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
Aussi pour Linux et Mac, l'écriture de vos propres plugins est également possible. Voici leurs fonctionnalités disponibles, qui sont répertoriées sur le site Web du projet:
- plugins individuels pour chaque utilisateur;
- enregistrement de gestionnaires http personnalisés;
- l'envoi de messages sous forme d'application;
- Système de configuration basé sur YAML dans WebUI;
- stockage persistant pour chaque plugin utilisateur;
- Afficher des instructions générées dynamiquement pour les utilisateurs.
Le système de plugins Gotify est basé sur le système de plugins Go standard, qui
est décrit ici . Pourquoi peuvent-ils être utilisés dans Gotify? Les développeurs citent l'exemple de la réception de webhooks de GitHub, Travis CI et d'autres, les flux de sondage via RSS, les sources Atom et l'extension des fonctionnalités standard de WebUI, et bien sûr la livraison d'alertes d'alerte sur les plantages.
Sur cette page, vous pouvez trouver un modèle pour le plugin et une explication du code. Pour que les plug-ins fonctionnent correctement, les développeurs recommandent d'utiliser Docker, mais sans cela, il est tout à fait possible de configurer Gotify pour fonctionner, bien que l'envoi et la réception corrects des messages dans ce cas ne soient pas garantis.
Je n'ai pas donné ici le texte intégral de la documentation de base du projet - vous pouvez tout lire vous-même. À en juger par les critiques, le projet s'est avéré assez réfléchi, au moins d'autre part que la notification par SMS n'est pas utilisée (ce qui est gênant si vous êtes à l'étranger ou au sous-sol), essayant activement d'ignorer le mode de sécurité d'alimentation qui a été introduit dans Android 6-7 . Gotify est curieux même s'il est open source, c'est-à-dire gratuit et rien n'empêche de bifurquer, récupérer un fichier et amener cet outil dans un état adapté aux besoins de certaines personnes / équipes.
Les références
- Dépôt GitHub.
- Le site officiel du projet.
- Documentation API.