Docker: Gotify. Tu servidor de Notificaciones

Tiempo estimado de lectura: 6 minutos. 717 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 create \ --name=gotify \ -p 90:80 \ -v $HOME/docker/gotify/data:/app/data \ 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 create \ --name=gotify \ -p 90:80 \ -v $HOME/docker/gotify/data:/app/data \ gotify/server

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:

Título

Mensaje

Prioridad

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:

Introducimos la http://ip:port de nuestro servidor

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:

Ahora si ya tienes el token de tu aplicación, introducelo. Si no es así te permite el crear una nueva aplicación con su token.

En el momento en que introduzcamos nuestro token, si todo ha ido bien, recibiremos un mensaje.

Por último nos pedirá en que lugar queremos guardar el archivo de configuración que hemos creado.

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 miércoles 06 noviembre del 2019

También te puede interesar:

Powered by org-bash-blog

Writing in orgmode whith emacs



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