Precisa de notificações push do seu servidor? Esta ferramenta é melhor que a discórdia

por Nada Em Troca
8 minutos de leitura
Precisa de notificações push do seu servidor? Esta ferramenta é melhor que a discórdia

Resumo

  • ntfy.sh é um serviço de notificação gratuito e multiplataforma.
  • É ótimo para receber notificações de servidores, automação residencial e projetos Raspberry Pi.
  • Use qualquer script, código ou webhook que possa fazer uma solicitação POST HTTP para a API ntfy.sh.

ntfy.sh permite enviar notificações para seus dispositivos a partir de seus próprios scripts, laboratório doméstico ou projetos de automação. É gratuito e faz todo o trabalho de entrega de notificações para diversas plataformas. Tudo que você precisa fazer é saber como chamá-lo.

O que é ntfy.sh?

ntfy.sh é um aplicativo de notificação gratuito que funciona em dispositivos móveis Apple e Android, além de enviar notificações para navegadores de desktop. Seu principal caso de uso é que administradores de TI e entusiastas de tecnologia obtenham atualizações de status ao vivo em sua infraestrutura, mas você pode usá-lo para receber alertas de praticamente qualquer script ou trecho de código, ou qualquer serviço que suporte webhooks.

Normalmente, para receber esses tipos de notificações push, você teria que desenvolver um aplicativo completo e passar pelo processo de aprovação da app store ou configurar um aplicativo da web com web push, portanto, ter algo que já fez tudo isso para você evita muitos problemas.

Para que estou usando o ntfy.sh?

Tenho algumas coisas úteis e menos úteis para as quais estou usando o ntfy.sh: recebo notificações quando os backups são bem-sucedidos ou falham e se um dos meus sites parar de responder ou um servidor precisar ser reinicializado. Meu NAS informa quando o disco ou a memória começam a ficar baixos, e até tenho um sensor de temperatura conectado a ele, para saber se as coisas estão ficando muito quentinhas no gabinete do meu servidor. No lado menos útil, recebo uma notificação de rosto sorridente quando um novo usuário se inscreve em um dos meus aplicativos.

O monitoramento do servidor não é o limite desta ferramenta. Você pode integrá-lo a qualquer automação residencial ou script para enviar notificações. Tudo que você precisa fazer é adicionar o comando ntfy.sh relevante aos seus scripts Bash ou Python.

Você pode integrá-lo a um sensor em sua máquina de lavar para receber uma notificação quando terminar ou receber um alerta se a porta da garagem ficar aberta por mais de alguns minutos. Você pode conectar vários sensores a um Raspberry Pi e usá-lo para ser notificado sobre todo tipo de coisa na casa.

Como você usa ntfy.sh?

Você pode chamar ntfy.sh de qualquer script, código ou webhook que possa fazer uma solicitação POST HTTP para sua API.

Funciona assim: você cria um tópico em um servidor ntfy.sh e o inscreve no aplicativo ntfy.sh (encontre os links da loja de aplicativos no site ntfy.sh ou clique em ‘Aplicativo’ para usar a versão baseada em navegador). O nome do tópico deve ser único e secreto, pois qualquer pessoa que o conheça poderá ler as notificações (por isso, nos exemplos abaixo, certifique-se de substituí-lo!).

Então, a partir de seus scripts, basta enviar notificações para esse tópico e todos os dispositivos inscritos receberão a notificação. Você pode usar o servidor público ntfy.sh gratuitamente ou substituir a URL nos scripts por sua própria instância auto-hospedada. Você pode descobrir mais sobre como usá-lo na documentação do ntfy.sh.

Há uma regra importante: não publique informações confidenciais – apenas envie alertas, não inclua credenciais ou informações de identificação em suas notificações, pois elas podem ser lidas e interceptadas por outras pessoas. A autenticação está disponível, mas geralmente o nome do tópico funciona como senha, o que não é segurança suficiente para informações importantes.

Aqui estão alguns exemplos baseados nos trechos que uso em meus próprios scripts.

Usando ntfy.sh para notificar sobre falha no script Bash

Aqui estão os comandos que colo em meus scripts Bash para enviar notificações ntfy.sh se o script falhar a qualquer momento. Ele usa curl para fazer a solicitação HTTP.

#!/bin/bash
set -Eeuo pipefail
NTFY_URL="https://ntfy.sh/my_super_secret_topic"
TITLE_OK="Job COMPLETED"
MESSAGE_OK="Finished successfully on $(hostname)"
TITLE_FAIL="Job FAILED"
MESSAGE_FAIL="Script interrupted on $(hostname)"
notify() {
local title="$1"
local message="$2"
curl -fsS -H "Title: ${title}" -d "${message}" "${NTFY_URL}" || true
}
# Notify on any error and exit with the same status
trap 'rc=$?; notify "$TITLE_FAIL" "Script failed on $(hostname) (exit ${rc})"; exit "${rc}"' ERR
# Notify if user hits Ctrl+C and exit with 130 (SIGINT)
trap 'notify "$TITLE_FAIL" "$MESSAGE_FAIL"; exit 130' INT
# -----------------------------
# Your script goes here
# Any non-zero exit triggers the ERR trap above
# -----------------------------
# Notify on success
notify "$TITLE_OK" "$MESSAGE_OK"

O comando trap captura erros e chama a função notify(), que envia uma solicitação para NTFY_URL, passando os valores TITLE_OK e TITLE_FAIL para exibição em seu dispositivo.

Usando ntfy.sh com PowerShell e o Agendador de Tarefas do Windows

O Agendador de Tarefas do Windows não funciona apenas com um cronômetro, ele também pode executar ações quando eventos específicos são gerados. Eventos como falta de espaço em disco no PC ou necessidade de reinicialização após atualizações podem ser usados ​​para acionar scripts do PowerShell.

O script do PowerShell abaixo deve ser salvo em seu próprio arquivo (por exemplo, my_ntfy_script.ps1). Ele aceita título, mensagem e URL para um servidor ntfy.sh e envia a notificação fornecida.

param(
[string]$Title = "Windows Event",
[string]$Message = "Triggered",
[string]$Url = "https://ntfy.sh/my_super_secret_topic"
)
try {
# Make HTTP Request to ntfy.sh API
Invoke-RestMethod -Method Post -Uri $Url -Headers @{ Title = $Title } -Body $Message -ErrorAction Stop
} catch {
# Write to the Application log on failure
Write-EventLog -LogName Application -Source "Windows PowerShell" `
-EventId 3001 -EntryType Warning `
-Message "ntfy.sh notify failed: $($_.Exception.Message)"
}

Você pode então criar uma tarefa acionada por evento no Agendador de Tarefas do Windows. Este exemplo envia uma notificação quando um usuário tenta fazer login e não consegue, o que cria um evento com ID 4625 no log de segurança.

Para criar uma tarefa agendada para isso, abra o Agendador de Tarefas pesquisando-o no menu Iniciar do Windows e selecione Ação > Criar Tarefa Básica na barra de ferramentas. Na caixa de diálogo Criar Tarefa, preencha o Nome e a Descrição opcional da tarefa (por exemplo, notificação de falha de login ntfy.sh), clique em “Avançar” e defina o gatilho como “Quando um evento específico for registrado” e clique em “Avançar” novamente.

Para acionar uma notificação quando o seu PC for reinicializado, defina o valor Log como Segurançae defina o EventID como 4625e, novamente, pressione “Avançar”.

Agendar uma tarefa no Agendador de Tarefas acionada por um evento.

Em seguida, selecione a ação para iniciar um programa e clique no botão Avançar mais uma vez. Copie o comando abaixo no campo Programa/script, substituindo o caminho do seu script e o nome do tópico.

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:Scriptsmy_ntfy_script.ps1" -Title "Login failed" -Message "Someone tried to access your PC" -Url "https://ntfy.sh/my_super_secret_topic"
Configurando um script do PowerShell no Agendador de Tarefas.

Clique em “Avançar” novamente. Você pode receber um aviso sobre argumentos fornecidos na caixa de texto Programa – tudo bem, eles serão convertidos em argumentos quando você salvar. Clique em Concluir na próxima tela quando terminar.

Entradas do Agendador de Tarefas do Windows.

Quando terminar, a nova tarefa deverá aparecer na lista da Biblioteca de Agendamento de Tarefas, conforme mostrado acima. Para testar, você pode clicar com o botão direito na tarefa e selecionar “Executar”.

Observe que essas notificações não contêm informações reveladoras, como endereços IP ou nomes de usuário. Eu sei o que as notificações significam, mas se alguém adivinhar de alguma forma o nome do tópico ntfy.sh, não poderá fazer nada com as informações.

ntfy.sh e macOS Automator

A ferramenta Automator que acompanha o macOS é muitas vezes esquecida, possivelmente negligenciada, mas pode realmente fazer muito. Ele permite automatizar tarefas comuns com o mínimo de codificação, e você pode até gravar suas ações e repeti-las. Você também pode incorporar scripts Bash, portanto, o snippet fornecido acima também pode ser usado aqui.

Inscrever-se nos aplicativos ntfy.sh

No aplicativo ntfy.sh em seu dispositivo móvel (ou usando o aplicativo da web em seu navegador), toque em Adicionar assinatura e insira o nome do tópico (e o endereço do servidor personalizado, se estiver usando um).

Adicionando uma assinatura ao ntfy.sh.

O tópico inscrito aparecerá na lista…

Visualizando tópicos inscritos em ntfy.sh.

… E quando seus scripts forem executados, você será notificado!

Notificação recebida em um iPhone de ntfy.sh.

Muito simples! E definitivamente útil.

Projetos DIY que você vai querer ouvir fora de casa

Se você ainda não tem nada para enviar notificações, por que não iniciar um homelab (eles são muito úteis e permitem que você hospede vários aplicativos, incluindo ntfy.sh)?

Ou execute sua casa inteligente a partir de um Raspberry Pi usando o Home Assistant, que oferece suporte a ntfy.sh para notificações. Se quiser mexer, você pode tentar alguns desses projetos Raspberry Pi de fim de semana (e mais alguns projetos aqui e aqui!) E ver se há algo que você possa adicionar ntfy.sh que ainda não tenha sido feito.

Este artigo foi útil?
Gostei0Não Gostei0

Deixe um comentário

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00