Changedetection.io es una aplicación que podemos alojar en nuestro propio servidor que nos permite monitorizar páginas web y nos avisa cuando se produce un cambio en alguna (por correo, telegram o discord entre otras).
Vamos a ver los pasos para instalarlo y configurarlo a través de docker en un Synology DS216+II con DSM 7.1.1
Contenidos
Instalación
Hay que tener instalado docker. Podemos hacerlo a través del Centro de paquetes
Abrimos docker, vamos a Registro (el botón de arriba), buscamos changedetection.io y descargamos dgtlmoon/changedetection.io.
Vamos a Imagen, seleccionamos la de changedetection.io y pulsamos iniciar y configuramos con estos parámetros:
- Red: bridge
- Configuración general: Habilitar el reinicio automático
- Configuración de puertos:
- Puerto local: indicamos uno que no esté en uso por otra aplicación. Será el que tengamos que poner en el navegador para entrar a la aplicación, por ejemplo 5555
- Puerto del contenedor: 5000
- Tipo: TCP
- Configuración de volúmenes, agregar carpeta:
- carpeta: indicamos una carpeta de nuestro sistema. Podemos llamarla changedetection
- ruta de montaje: /datastore
Ahora vamos a contenedor e iniciamos changedetection.
Accedemos al navegador con la IP del Synology seguida del puerto local que hayamos indicado, por ejemplo http://192.168.1.100:5555.
Añadir páginas a monitorizar
En la pantalla principal indicamos la dirección de la página (con el http:// delante) que queremos monitorizar, un tag para identificarla y le damos a edit > watch. En la pantalla que aparece indicamos un título de la notificación y guardamos los cambios.
Monitorizar solo una parte de la página
Si la página que queremos monitorizar tiene un reloj, estará cambiando constantemente y no pararan de llegarnos notificaciones inútiles. Para evitar esto podemos monitorizar solo una parte de la web.
Para ello, debemos inspeccionar el código fuente de la página y obtener el id o la clase CSS de la parte de la página que se actualiza.
Por ejemplo, el tablón de edictos del Ayuntamiento de Castrillón tiene un reloj, pero vemos que las novedades aparecen en una tabla. Si inspeccionamos el código, vemos que esa tabla tiene una id CSS llamada ctl00_Content_GVProcedimientos_ctl05_GVSubGrupos_ctl02_GVDetalle.
Editamos la notificación de la web, pestaña filters & triggers e indicamos la id CSS precedida de un #, en nuestro caso quedaría:
#ctl00_Content_GVProcedimientos_ctl05_GVSubGrupos_ctl02_GVDetalle
Si en lugar de una id fuese una clase CSS, iría precedida de un punto .
Configuración
Tiempo de rastreo
En ajustes generales indicamos cada cuanto tiempo por defecto se rastrearán las páginas en busca de cambios. Esto se puede modificar luego para cada página individualmente.
Asignar contraseña
Por defecto no tiene contraseña, podemos indicar una desde settings, general, password.
Notificaciones por mail
Changedetection tiene varios tipos de notificaciones. Vamos a ver la de mail, que es la que hemos usado.
Vamos a settings, notifications y en Notification URL List debemos usar este formato:
mailtos://usuario:contraseña@servidor?to=maildestino
Por ejemplo, si queremos que desde la cuenta origen@correo.com (cuyo servidor SMTP es mail.correo.com) llegue la notificación a destino@correo.com debemos poner lo siguiente en:
mailtos://origen%40correo.com:contraseña@mail.correo.com?to=destino@correo.com
A tener en cuenta que si el usuario o la contraseña llevan @, hay que sustituirla por %40
En Notification Title indicamos el asunto del mail de notificación.
En Notification Body va el cuerpo del correo. Podemos indicar si queremos formato en texto plano o en HTML. Fijarse en el botón de placeholders para ver los códigos a usar para el título de la notificación o la URL de la página.
Ejemplo de título:
Aviso cambio web - {{watch_title}}
Ejemplo de cuerpo del mail:
<a href="{{watch_url}}">{{watch_url}}<'a> had a change.
---
{{diff}}
---
En la pantalla principal
Alternativas
Una alternativa sencilla que nos avisa a través del navegador cuando lo tenemos abierto son las extensiones de distill web monitor para Firefox y Google Chrome.
Deja una respuesta