Blog del Podcast
podcast      GitHub      Twitter   Telegram

Docker: Gotify. Tu servidor de Notificaciones

Tiempo estimado de lectura: 6 minutos. 740 palabras. docker

Después de montar un bot con Telegram y Mastodon, ha llegado el momento de crear tu propio servicio de notificaciones. No vamos a depender de servicios de terceros para saber todo lo que sucede en nuestros servidores, Raspberry,… allá donde quieras utilizarlo

Gotify es un servidor de notificaciones de Software Libre muy fácil de instalar mediante docker.

Docker para ARM

Para montar nuestro servidor Gotify de notificaciones, por ejemplo por el puerto 90:

docker run -p 90:80 -v $HOME/docker/gotify/data:/app/data -e TZ="Europe/Madrid" gotify/server-arm7

Puedes utilizar cualquier puerto disponible.

Una vez montado el servidor, abrimos nuestro navegador y nos conectamos a http://ip:90.

El usuario es admin y la contraseña admin.

Docker para amd64

docker run -p 90:80 -e TZ="Europe/Madrid" -v $HOME/docker/gotify/data:/app/data gotify/server

Docker-compose

version: "3"

services:
  gotify:
    image: gotify/server
    container_name: gotify
    ports:
      - 90:80
    environment:
      - GOTIFY_DEFAULTUSER_PASS=custom
      - TZ="Europe/Madrid"
    volumes:
      - "$HOME/docker/gotify/data:/app/data"

docker-compose para traefik

version: "3"

services:
 gotify:
  image: gotify/server
  container_name: gotify
  restart: unless-stopped

  networks:
   - web

  restart: always
  volumes:
   - $HOME/docker/gotify/data:/app/data 
  labels:
   - traefik.backend=gotify
   - traefik.frontend.rule=Host:gotify.mi-dominio.duckdns.org
   - traefik.docker.network=web
   - traefik.port=80
   - traefik.enable=true

networks:
 web:
  external: true

Crear una aplicación

En Gotify, aplicaciones sería lo mismo que en Telegram el canal del bot.

Una vez creada la aplicación desde la página web de administración de Gotify, podemos subir una imagen a esta aplicación, para identificar rápidamente esta.

Copiamos el Token de la aplicación que hemos creado. Con el Token y la ip:puerto, ya podremos enviar información al servidor y así recibir notificaciones en los clientes.

Enviar notificaciones con bash

Enviar una notificación desde tu terminal es muy sencillo. Este es un script de ejemplo. Recuerda que el Token, ip y puerto que utilizo, es inventado.

curl -X POST "http://192.168.1.100:90/message?token=A8EPKuUcvb9sm" \
 -F "title=Título" \
 -F "message=Aquí va mi mensaje" \
 -F "priority=1"

El mensaje se compone:

Notificaciones con Python

Si eres más amante de Python, también puedes enviar información al servidor mediante este código de ejemplo.

import requests #pip install requests                                                                                                       
resp = requests.post('http://192.168.1.100:90/message?token=A8EPKuUcvb9sm', json={
    "message": "Este es mi mensaje",
    "priority": 2,
    "title": "Título del Mensaje"
})

Instalando gotify-cli

Vamos a esta url y descargaremos la versión para nuestra arquitectura. En mi caso voy a utilizar la Raspberry, así que descargaré la versión para arm-7

Descargando

wget -O gotify  https://github.com/gotify/cli/releases/download/v2.1.1/gotify-cli-linux-arm-7

Dando permisos de ejecución

chmod +x gotify

Configurando gotify-cli

Para configurarlo, teclearemos en la terminal:

./gotify ini 

Nos preguntará:

Gotify URL:
Connecting -> Success!
Gotify v2.0.10@2019-10-19-08:49:54

Configure an application token
1. Enter an application-token
2. Create an application token (with user/pass)
Enter 1 or 2: 

Ejemplos de gotify-cli

Enviar un Mensaje

./gotify push "Mensaje" 

Enviar el resultado de un script

MENSAJE="Este es un mensaje"
echo $MENSAJE | gotify push

Enviar un archivo de texto

gotify push < archivo.txt

Enviar con título y prioridad

./gotify push -t "Mi titulo" -p 10 "Este es mi mensaje"

Ayuda

./gotify -h

Más información en el repositorio en GitHub.

Cada vez más clientes

Actualmente no disponemos de un gran número de clientes de Gotify, pero esta lista va creciendo cada día más.

Tengo instalado Gotify en mi Android. Podemos instalarla tanto desde F-Droid, apk así como desde Google Play.

También hay una extensión para Firefox y Google Chrome.

Conclusión

Gotify se ha convertido en un servicio imprescindible para mi. Si lo complementas con el docker de Letsencrypt, te permitirá abrir el servicio a internet de un modo seguro y recibir las notificaciones estés donde estés.

Fuentes


Publicado por Angel el Wednesday 06 November del 2019 y actualizado el Sunday 09 May del 2021



También te puede interesar:




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.