
Para quem administra servidores e / ou projetos da web, existe uma aguda questão de conscientização sobre o que está acontecendo com suas "alas". Existem muitas decisões no mercado sobre alertas sobre falhas, status da conexão e outros parâmetros, inclusive via SMS. Estamos falando de MRTG, Twilio, F-Droid, serviços do Google e muitos, muitos outros. O único problema é que a maioria dessas soluções é muito restrita e não é possível influenciar suas funções. O MRTG fornecerá informações sobre tráfego e conexão, o Google enviará SMS. O Twilio oferece alguma liberdade em termos de escrita de scripts JavaScript para atender às suas necessidades, mas desculpe, este é um projeto comercial. Ou seja, "vamos lá, pague o saque ou vá embora".
Portanto, nesta família de ferramentas, temos reposição de código aberto: Gotify é um projeto cliente-servidor simples para receber e enviar notificações e comandos por push, inclusive por meio de um aplicativo Android. E definitivamente vale a pena contar um pouco mais sobre isso, acho que será útil para quem procurava algo semelhante e ao mesmo tempo gratuito, mas acabou iniciando seu próprio projeto de estimação. É possível que esta publicação economize algumas centenas de horas do seu tempo.
O que o Gotify oferece
O projeto existe e se desenvolve pacificamente no GitHub há vários anos e, durante esse período, adquiriu um servidor, um cliente Web, um aplicativo Android, uma API e, é claro, documentação. Decidi falar sobre o Gotrify por dois motivos: ele é de código aberto e funciona não apenas na "recepção", mas também no "retorno", todos os tipos estão no GitHub, além de serem configurados usando scripts bash. E, claro, é grátis.
A maioria das soluções existentes visa exclusivamente receber notificações do servidor / dispositivo de destino, mas não a interação total entre o cliente e o servidor. Ou seja, você pode receber uma notificação de que seu servidor travou ou que a Internet desapareceu. Nem sempre é conveniente se perguntar o que está acontecendo no "outro lado" e pode ser feito no mesmo aplicativo / janela. Na maioria das vezes, para obter esse tipo de informação, você precisa interromper uma VPN ou (Deus não permita) o TeamViever e assisti-la "com as mãos". Mencionei acima que o Twilio fornece algum escopo por meio de scripts JS auto-escritos, mas é pago, por isso.
De fato, todo o projeto do Gotify é dividido em três partes: servidor, cliente e aplicativo. O servidor trabalha compreensivelmente como - enviar e receber mensagens, o cliente - apenas para receber e o aplicativo - apenas para enviar.

Além disso, o projeto possui um cliente de API (e documentação), um modelo de API, um modelo de plug-in, seu próprio site, uma biblioteca de configuração Go que suporta JSON, YAML, TOML e variáveis de ambiente, além de uma compilação de servidor, um cliente e, de fato, , Aplicativo Android. A única coisa que pode incomodar é o aplicativo Android. Não há nada mais impotente, irresponsável e imoral no mundo do que monitorar a infraestrutura por meio de um telefone celular. Mas a tecnologia está avançando e sabemos que, mais cedo ou mais tarde, passaremos a esse lixo. Não que fosse o conjunto mínimo necessário para se comunicar remotamente com o servidor, mas quando a comunidade de código aberto começa a cortar suas próprias ferramentas, é difícil parar.
Separadamente, vale ressaltar que, para se comunicar com o servidor, apenas a autenticação e o token do aplicativo são necessários, retornados pelo servidor por meio de uma solicitação REST. No futuro, usando esse token, você poderá receber mensagens por qualquer cliente http, por exemplo, por
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"
De acordo com o manual no site oficial do projeto, o envio ao servidor com prioridades diferentes pode ser enviado para Golang e 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
Também para Linux e Mac, escrever seus próprios plugins também é possível. Aqui estão os recursos disponíveis, listados no site do projeto:
- plugins individuais para cada usuário;
- registro de manipuladores http personalizados;
- enviando mensagens como um aplicativo;
- Sistema de configuração baseado em YAML no WebUI;
- armazenamento persistente para cada plug-in de usuário;
- Exibir instruções geradas dinamicamente para os usuários.
O sistema de plug-in do Gotify é baseado no sistema de plug-in Go padrão,
descrito aqui . Por que eles podem ser usados no Gotify? os desenvolvedores citam o exemplo de recebimento de webhooks do GitHub, Travis CI e outros, pesquisando feeds via RSS, fontes Atom e expandindo a funcionalidade padrão do WebUI e, é claro, fornecendo alertas de alerta sobre falhas.
Nesta página, você pode encontrar um modelo para o plug-in e uma explicação do código. Para que os plug-ins funcionem corretamente, os desenvolvedores recomendam o uso do Docker, mas mesmo sem ele, é bem possível configurar o Gotify para funcionar, embora o envio e recebimento corretos de mensagens nesse caso não sejam garantidos.
Não forneci aqui o texto completo da documentação básica do projeto - você pode ler tudo sozinho. A julgar pelas avaliações, o projeto mostrou-se bastante atencioso, pelo menos por outro lado, que a notificação por SMS não é usada (o que é inconveniente se você estiver no exterior ou no porão), tentando ativamente ignorar o modo de economia de energia que foi trazido no Android 6-7 . O Gotify é curioso mesmo que seja de código aberto, isto é, gratuito e nada impede de bifurcar, pegar um arquivo e levar essa ferramenta a um estado adequado às necessidades de certas pessoas / equipes.
Referências
- Repositório do GitHub.
- O site oficial do projeto.
- Documentação da API.