- Permite monitorizar cualquier página web y recibir avisos instantáneos sobre cambios de precio, stock o contenido.
- Se despliega fácilmente mediante Docker Compose, integrando un navegador Playwright para renderizar webs con JavaScript.
- Ofrece filtros avanzados mediante CSS y XPath para evitar falsos positivos y centrarse solo en los datos relevantes.
- Soporta más de 85 servicios de notificación a través de Apprise, destacando la integración con ntfy y Gotify.

¿Cómo instalar Changedetection.io con Docker para vigilar cambios en cualquier página web? ¿Alguna vez te ha pasado que pierdes una oferta increíble o que un trámite administrativo se te pasa por alto porque la web no tiene sistema de avisos ni RSS? Es una faena, pero existe una solución brillante llamada changedetection.io. Esta herramienta de código abierto se encarga de hacer el trabajo sucio por ti: vigila cualquier página web que le indiques y te pega un grito en cuanto detecta que algo ha cambiado, ya sea el precio de unas zapatillas, el stock de una entrada o la publicación de una nueva versión de un software.
Lo mejor de todo es que puedes montarlo en tu propio servidor mediante Docker Compose, lo que te da el control total sobre tus datos y la frecuencia de las comprobaciones. No dependes de terceros ni de límites de planes gratuitos. En esta guía vamos a ver cómo dejarlo niquelado, incluyendo la configuración de un navegador Playwright para esas webs modernas que cargan el contenido con JavaScript y cómo encaminar las notificaciones a servicios como ntfy o Gotify para que te enteres de todo en tiempo real.
¿Qué es exactamente changedetection.io y cómo nos ayuda?

Básicamente, es un servicio de monitorización que descarga el contenido de una URL periódicamente y lo compara con la versión anterior. Si hay diferencias, te avisa. A diferencia de los lectores de RSS, que requieren que la web tenga un feed configurado, esta herramienta funciona sobre cualquier sitio porque analiza el HTML renderizado. Es como tener un empleado que refresca la página cada cinco minutos para ver si el botón de «Agotado» ha cambiado a «Comprar».
Una de sus funciones más potentes es que guarda un historial detallado de revisiones. Cuando recibes un aviso, no tienes que adivinar qué ha pasado; la aplicación te muestra un diff visual, resaltando exactamente qué texto se ha eliminado y cuál se ha añadido. Para evitar que los banners de cookies o los anuncios rotatorios te vuelvan loco con avisos falsos, puedes acotar la vigilancia a una zona concreta de la pantalla usando selectores específicos.
Instalación paso a paso con Docker Compose

Para ponerlo en marcha, lo más recomendable es usar Docker Compose. Vamos a levantar dos servicios: la aplicación principal y un contenedor de navegador Chromium. Este último es fundamental si quieres vigilar webs que usan JavaScript para mostrar los datos (como la mayoría de e-commerce actuales). Si solo vas a vigilar blogs sencillos o webs estáticas, podrías prescindir de él, pero mejor tenerlo configurado desde el principio.
Crea una carpeta para el proyecto y guarda el siguiente archivo docker-compose.yml. Es aconsejable fijar una versión específica de la imagen (como la 0.55.8) en lugar de usar la etiqueta :latest para evitar que una actualización automática rompa tu configuración:
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:0.55.8
container_name: changedetection
restart: unless-stopped
environment:
BASE_URL: https://vigilancia.tudominio.com
PLAYWRIGHT_DRIVER_URL: ws://browser-chrome:3000
volumes:
- changedetection-data:/datastore
ports:
- "127.0.0.1:5000:5000"
depends_on:
- browser-chrome
browser-chrome:
image: dgtlmoon/sockpuppetbrowser:0.0.3
container_name: changedetection-browser
hostname: browser-chrome
restart: unless-stopped
cap_add:
- SYS_ADMIN
environment:
SCREEN_WIDTH: "1920"
SCREEN_HEIGHT: "1024"
volumes:
changedetection-data:
Un detalle vital: el puerto está mapeado a 127.0.0.1:5000. Esto es así porque la herramienta no trae contraseña por defecto y exponerla directamente a Internet sería un suicidio digital. Lo ideal es colocarla detrás de un proxy inverso (como Traefik o Nginx) con HTTPS y una capa de autenticación básica para que solo tú puedas entrar.
Cómo afinar la vigilancia para evitar el ruido

Cuando añades una URL y pulsas «Watch», la herramienta crea una línea base. El problema es que las webs suelen tener elementos dinámicos que cambian siempre. Para que el sistema sea fiable, debes ir a la pestaña de Filters & Triggers y definir exactamente qué quieres mirar. Tienes tres caminos principales:
- Selectores CSS: Ideales para apuntar a un ID concreto como #precio o una clase .product-price.
- XPath: Mucho más potente y preciso, útil cuando el CSS no es suficiente para aislar el dato.
- Selector Visual: La opción más cómoda, ya que te permite hacer clic directamente en el elemento de la página y la herramienta deduce el selector automáticamente.
Además, puedes configurar disparadores específicos. Por ejemplo, puedes hacer que solo te llegue el aviso cuando aparezca la palabra «En stock» o cuando desaparezca la frase «No disponible». Esto convierte una simple alerta de cambio en una notificación inteligente y útil.
Configuración de avisos con Apprise, ntfy y Gotify

Saber que algo ha cambiado no sirve de nada si no te enteras al momento. changedetection.io integra la librería Apprise, que es una auténtica navaja suiza capaz de enviar notificaciones a más de 85 servicios distintos. Solo necesitas introducir una URL con un formato específico en el apartado de configuración.
Para los amantes del self-hosting, ntfy y Gotify son las opciones estrella. Para ntfy, usarías algo como ntfys://tu-servidor.com/tema, mientras que para Gotify necesitarías la URL de tu instancia junto con el token de la aplicación. Recuerda usar siempre las variantes seguras (con «s») si tienes HTTPS configurado. Puedes personalizar el mensaje usando tokens como {{diff}} para que el aviso en tu móvil incluya el fragmento exacto del texto que ha variado.
Casos de uso reales y optimización de recursos
Las posibilidades son infinitas. Desde vigilar la fecha de apertura de un plazo administrativo hasta trackear el precio de un componente de PC. También es genial para seguir avisos de seguridad de software que no tiene mailing list. En cuanto al rendimiento, la aplicación es muy ligera, pero el contenedor de Chromium consume más RAM y CPU porque levanta un navegador real por cada comprobación.
Para que tu servidor no sufra, ajusta los intervalos de revisión. No hace falta revisar una web cada minuto si el dato cambia una vez al día. Asimismo, limita los procesos simultáneos de Chrome mediante la variable MAX_CONCURRENT_CHROME_PROCESSES para mantener el consumo de recursos bajo control y evitar que el sistema se sature.
Montar este sistema te permite transformar cualquier rincón de la web en una fuente de datos activa. Con una instalación sencilla en Docker, el uso de filtros CSS o XPath para eliminar el ruido y la integración con servicios de notificaciones, dejas de ser un usuario reactivo que refresca páginas manualmente para convertirte en alguien que recibe la información exacta en el momento preciso. Ahora ya sabes cómo instalar Changedetection.io con Docker para vigilar cambios en cualquier página web.
Apasionado de la tecnología desde pequeñito. Me encanta estar a la última en el sector y sobre todo, comunicarlo. Por eso me dedico a la comunicación en webs de tecnología y videojuegos desde hace ya muchos años. Podrás encontrarme escribiendo sobre Android, Windows, MacOS, iOS, Nintendo o cualquier otro tema relacionado que se te pase por la cabeza.