#+LINK_HOME: index.html
#+INCLUDE: header.org
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
4,
un servicio de notificaciones basado en HTTP pub-sub
5.
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 6
enviar notificación #
Es lo mas simple, solo hay que definir el tópico y se puede usar
curl
de la siguiente manera:
1curl -d Backup ntfy.sh/b4ckup
Y obtendremos un JSON con el id y un timestamp
1{
2 "id": "DPqB7xNFT0jj",
3 "time": 1672629273,
4 "event": "message",
5 "topic": "b4ckup",
6 "message": "Backup"
7}
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:
1
2curl \
3 -H "Title: Backup" \
4 -H "Priority: urgent" \
5 -H "Tags: backup" \
6 -d "FAILED" \
7 https://ntfy.sh/b4ckup
8
También es posible usar el CLI 7, 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!
1
2ntfy pub b4ckup test
3
recibir notificaciones #
Para recibir notificaciones se puede usar el CLI y recibirlas al vuelo
1
2ntfy subscribe b4ckup
3
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
8 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
9
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 10, 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
.
1tfy-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
11
ntfy-mountpoint.sh
#
Notifica si cambia el estado de un punto de montaje, es decir, por
ejemplo, mi disco externo no esta montado en /mnt/usb
avisa
y ni bien se monte este disco al cambiar el estado también notificará.
ntfy-uptime.sh
#
Notifica la salida de uptime
si se produce un reinicio.
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:30
corregir links de previews de imágenes de enviar notificaciones automáticas usandontfy.sh
2023-02-16 12:46
actualizar imágenes de enviar notificaciones automáticas usandontfy.sh
2023-02-15 22:57
agregar enviar notificaciones automáticas usandontfy.sh
-
gemini://gmi.osiux.com= ↩︎
-
file:2021-01-25-ansible-luks-format-external-usb-disk.org ↩︎