enviar notificaciones automáticas usando ntfy.sh
index | about | archive | charlas | docs | links
dot | git | img | plt | tty | uml
raspberrypi
Tengo una raspberrypi 1 que uso para hostear una versión en gemini de mi blog en gemini://gmi.osiux.com 2 y también la utilizo para realizar backups.
El problema es que a veces, se corta la luz y como el disco externo esta cifrado 3, debo acceder remotamente e ingresar la passphrase para montarlo nuevamente, pero para realizar esto, antes necesito 2 cosas:
- Enterarme inmediatamente
- Saber la nueva IP pública
Para resolver estos 2 problemas, estoy usando ntfy.sh [fn:ntfy.sh], un servicio de notificaciones basado en HTTP pub-sub 4.
ntfy.sh
ntfy.sh es muy simple de usar, basta con realizar un request usando curl especificando un mensaje y un tópico, por ejemplo b4kup y es posible consultar las novedades accediendo a ntfy.sh/b4kup sin necesidad de autenticarse, es decir que el tópico elegido es público si utilizamos el servicio de ntfy.sh aunque podemos tener nuestra propia instancia Self Hosted 5
enviar notificación
Es lo mas simple, solo hay que definir el tópico y se puede usar curl de la siguiente manera:
curl -d Backup ntfy.sh/b4ckup
Y obtendremos un JSON con el id y un timestamp
{ "id": "DPqB7xNFT0jj", "time": 1672629273, "event": "message", "topic": "b4ckup", "message": "Backup" } Es posible indicar un título (Title), definir la prioridad (Priority) y especificar una o mas etiquetas (Tags), además de obviamente lo importante, el mensaje:
curl \ -H "Title: Backup" \ -H "Priority: urgent" \ -H "Tags: backup" \ -d "FAILED" \ https://ntfy.sh/b4ckup
También es posible usar el CLI 6, pero no es imprescindible para el envío y eso es lo que mas me interesó de esta herramienta porque curl esta disponible en todo tipo de dispositivos!
ntfy pub b4ckup test
recibir notificaciones
Para recibir notificaciones se puede usar el CLI y recibirlas al vuelo
ntfy subscribe b4ckup
O usar el servicio y suscribirse a varios tópicos definiendo la configuración en el archivo /etc/ntfy/client.yml
Para el teléfono espía, lo mejor es utilizar la app ntfy de f-droid 7 ya que podremos suscribirnos a varios tópicos y recibirlas al instante, pudiendo definir ajustes diferentes para cada suscripción como el mínimo de prioridad a mostrar, cuánto tiempo mantener las notificaciones, etc.
ntfy-bash-utils
Como siempre, cada vez que encuentro una herramienta, decido armar mis scripts de utilidades en BASH y publicarlos, en este caso en el repo ntfy-bash-utils 8
ntfy-msg.sh
Permite enviar una notificación, usando por defecto como título el FQDN del equipo y como tópico lo mismo pero seudo leet 9, por ejemplo server.example.com se transformará en 53rv3r3x4mp13c0m
Se pueden redefinir las variables por defecto usando las variables de entorno PRIORITY, TAGS, TITLE y TOPIC.
tfy-msg.sh test
ntfy-ipinfo.sh
Notifica la IP pública, sólo si esta cambió desde la última vez que se ejecutó ntfy-ipinfo, la misma la obtiene desde ipinfo.io 10
ntfy-mountpoint.sh
crontab
Y para asegurarme que todo se ejecute solito y solo uso crontab :)
*/10 * * * * /root/bin/ntfy-ipinfo.sh >/dev/null */5 * * * * MOUNTPOINT=/mnt/barracuda /root/bin/ntfy-mountpoint.sh >/dev/null @reboot sleep 30 && /root/bin/ntfy-uptime.sh >/dev/null
ChangeLog
2023-02-16 13:30corregir links de previews de imágenes de enviar notificaciones automáticas usandontfy.sh2023-02-16 12:46actualizar imágenes de enviar notificaciones automáticas usandontfy.sh2023-02-15 22:57agregar enviar notificaciones automáticas usandontfy.sh
Notas al pie de página:
gemini://gmi.osiux.com=



