-- Leo's gemini proxy
-- Connecting to gmi.osiux.com:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini;lang=es_AR
AUTHOR: Osiris Alejandro Gomez
EMAIL: osiux@osiux.com
DATE: 2023-02-15 22:56
[1]
Tengo una `raspberrypi` ^1[2] que uso para hostear una versión en `gemini` de mi *blog* en `gemini://gmi.osiux.com` ^2[3] 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[4], debo acceder remotamente e ingresar la *passphrase* para montarlo nuevamente, pero para realizar esto, antes necesito 2 cosas:
1. Enterarme inmediatamente
2. Saber la nueva *IP* pública
Para resolver estos 2 problemas, estoy usando `ntfy.sh` ^4[5], un servicio de notificaciones basado en *HTTP* `pub-sub` ^5[6].
`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[7]
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* ^7[8], 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
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` ^8[9] 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.
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[10]
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[11], 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
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[12]
[13]
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á.
[14]
Notifica la salida de `uptime` si se produce un reinicio.
[15]
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
`2023-02-16 13:30`[16] corregir links de previews de imágenes de *enviar notificaciones automáticas usando `ntfy.sh`*
`2023-02-16 12:46`[17] actualizar imágenes de *enviar notificaciones automáticas usando `ntfy.sh`*
`2023-02-15 22:57`[18] agregar *enviar notificaciones automáticas usando `ntfy.sh`*
-- Response ended
-- Page fetched on Fri May 17 06:29:30 2024