Diun: Avisos de actualizaciones de imágenes Docker
Recibe avisos por email o telegram
Debido al extendido uso de Docker y a la gran cantidad de imágenes que podemos tener en nuestro servidor, resulta muy útil tener un servicio automatizado para el aviso de actualizaciones disponibles de las mismas.
Vamos a ver como instalar y configurar Diun, totalmente OpenSource y selfhosted, para que nos avise por correo electrónico y/o por Telegram.
Instalación y configuración
Teniendo Docker instalado y corriendo en nuestro sistema, primero vamos a crear un directorio diun
el cual enlazaremos al contenedor para guardar la configuración y datos del mismo.
En mi caso, la ruta escogida es /home/miusuario/diun
. Dentro creamos un directorio data
y el yml de configuración diun.yml
.
- Creamos el fichero de configuración:
$ sudo nano /home/miusuario/diun/diun.yml
Agregamos la siguiente configuración:
db:
path: diun.db
watch:
workers: 20
schedule: "0 */6 * * *"
firstCheckNotif: false
compareDigest: true
notif:
mail:
host: localhost
port: 25
ssl: false
username: xxxxx
password: xxxxx
from: tucorreo@dominio.com
to: correodestino@dominio.com
telegram:
token: xxxxx
chatIDs:
- xxxxx
providers:
docker:
watchStopped: true
watchByDefault: false
Cambia la configuración de mail
por los datos de tu cuenta y proveedor de correo. Para los avisos por Telegram
, hemos de indicar el token de nuestro bot y uno o más chatIDs donde recibiremos los mensajes.
Podemos configurar otros sistemas de notificación listados en la web del proyecto (apartado Notifications) como Teams o Rocket.Chat, entre otros.
En mi caso, solo utilizo el provider
Docker, pero puedes agregar otros
tal como se indica en la web oficial en el apartado providers.
Si ponemos en true watchByDefault
, nos avisará de las actualizaciones de todos los contenedores que tengamos en nuestro sistema. Yo prefiero controlar de cuales quiero avisos y de cuales no, por lo que lo dejo en false, y Diun solo avisará de actualizaciones de las imágenes a las que le pongamos la etiqueta diun.enable=true
.
- Creamos el contenedor de Diun:
$ docker run -d --name diun \
-e "TZ=Europe/Madrid" \
-e "LOG_LEVEL=info" \
-e "LOG_JSON=false" \
-v "/home/miusuario/diun/data:/data" \
-v "/home/miusuario/diun/diun.yml:/diun.yml:ro" \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-l "diun.enable=true" \
--restart always \
crazymax/diun:latest
Recuerda modificar la ruta del directorio data
y del yml
que hemos creado anteriormente.
- Para probar que nuestras notificaciones funcionan, entramos por consola al contenedor:
$ docker exec -it diun /bin/sh
- Ejecutamos el siguiente comando:
$ diun notif test
Recibiremos una notificación de test por los providers configurados.
Con esto, ya tendremos Diun corriendo, el cual nos avisará de las nuevas actualizaciones de nuestras imágenes, siempre que les pongamos la etiqueta diun.enable=true
dejando watchByDefault a false.
Espero que sea útil, ¡gracias por leerme!
Comparte esta publicación
Twitter
Facebook
Reddit
LinkedIn
Pinterest
Email