Por qué alojar tu propio detector de cambios
Los servicios SaaS de detección de cambios cobran por verificación, limitan el número de URLs monitorizadas y hacen pasar el contenido vigilado por sus servidores. Changedetection.io invierte el modelo: lo ejecutas en tu VPS, monitorizas un número ilimitado de URLs a la frecuencia que elijas, y todos los datos permanecen en tu infraestructura.
Como se basa en almacenamiento de archivos sin base de datos externa, la sobrecarga es mínima — el contenedor consume menos de 256 MB de RAM en reposo y arranca en menos de 10 segundos. Los snapshots de cada página vigilada se almacenan localmente en un volumen Docker montado en /datastore: tus datos nunca salen de tu servidor, ni siquiera para páginas protegidas con contraseña.
Añade un sidecar Playwright/Chromium para páginas renderizadas con JavaScript y obtendrás la fidelidad de un navegador completo para SPAs, contadores de pedidos y elementos de precio cargados dinámicamente — cosas que una simple petición HTTP nunca podrá ver.
Qué obtienes con un Changedetection.io autoalojado
- Monitoriza un número ilimitado de URLs — páginas de producto, portales de licitación, sitios de la competencia, bolsas de trabajo — a cualquier intervalo.
- Filtros por selector CSS, XPath y palabra clave — vigila solo el elemento que te importa, no toda la página.
- Más de 80 canales de notificación vía Apprise: correo (SMTP), Telegram, Slack, Discord, ntfy, Gotify, Matrix, webhooks y muchos más.
- Sidecar Playwright/Chromium opcional para páginas renderizadas con JavaScript — el renderizado ocurre en un navegador real, no en un simple cliente HTTP.
- Visor de diferencias completo — ve exactamente qué cambió, resaltado en contexto, con un historial de snapshots anteriores.
- Verificaciones programadas con jitter — de cada minuto a cada 24 horas; el tiempo aleatorio evita las heurísticas de detección de bots.
- Un solo contenedor Docker, almacenamiento en archivos, menos de 256 MB de RAM — sin dependencias externas.
- Licencia Apache 2.0 — sin tarifas por verificación, sin cuenta cloud, sin telemetría.
Requisitos previos
Un VPS ServOrbit con Ubuntu 24.04 y al menos 1 GB de RAM. Changedetection.io solo consume menos de 256 MB en reposo; si añades el sidecar Playwright, prevé 2 GB en total.
Docker y Docker Compose se aprovisionan automáticamente al desplegar desde el marketplace de ServOrbit. No se requiere nombre de dominio — la interfaz web es accesible directamente en el puerto 5000, pero se recomienda colocarla detrás de un reverse proxy con HTTPS para despliegues duraderos.
Una nota sobre qué versión desplegar. La etiqueta latest sigue el tag más reciente publicado en GitHub. Desde que salió la v0.60.2 el 2 de septiembre de 2026, dos regresiones activas afectan a esa etiqueta (ver la sección dedicada más abajo). Si despliegas hoy sin haber leído la sección de resolución de problemas, fija explícitamente dgtlmoon/changedetection.io:0.55.8 en tu docker-compose.yml hasta que llegue el parche.
Desplegar Changedetection.io en tu VPS
Despliegue con un clic desde el marketplace de ServOrbit
Abre tu panel de control de ServOrbit, ve a Marketplace → Monitoring & Observability → Changedetection.io y haz clic en Desplegar. Docker descarga
dgtlmoon/changedetection.io:lateste inicia el contenedor. La interfaz web está disponible en el puerto 5000 en menos de 10 segundos — sin crear cuenta, sin configuración inicial.Añade tu primera URL a monitorizar
Ve a
http://<your-vps-ip>:5000. Haz clic en el botón azul + en la parte superior derecha, pega la URL que quieres vigilar — una página de producto, una oferta de empleo, un portal público — y haz clic en Watch. Changedetection.io obtiene la página inmediatamente y la guarda como referencia. La próxima verificación se programa según tu intervalo predeterminado (minutos u horas).Añade un filtro para aislar el elemento que te interesa
Sin filtro, Changedetection.io detecta cualquier cambio en la página — incluidos banners publicitarios, marcas de tiempo y actualizaciones de navegación. Para centrarte solo en el campo de precio o stock, abre la configuración de la vigilancia (icono de lápiz), ve a la pestaña Filtros e introduce un selector CSS como
.price,#stock-statusospan.availability. También puedes usar expresiones XPath o un disparador por palabra clave (alertar solo cuando el texto "In stock" aparece o desaparece).Configura un canal de notificación
Abre la configuración de la vigilancia → pestaña Notificaciones. Changedetection.io usa Apprise para las notificaciones. Para enviar un mensaje de Telegram, introduce
tgram://bottoken/chatid. Para correo, usamailto://user:[email protected]. Para Slack, usa el formato de URL de webhookslack://tokenA/tokenB/tokenC. Puedes acumular varios canales — las bajadas de precio, por ejemplo, pueden ir a Telegram para recepción móvil instantánea y también registrarse en un webhook para tu panel de supervisión.Activa Playwright para páginas renderizadas con JavaScript (opcional)
Si la página que quieres monitorizar es una SPA en React o Vue, o carga su contador de precios de forma asíncrona, una simple petición HTTP solo verá un caparazón vacío. Para activar el soporte de Playwright, añade un segundo contenedor —
browserless/chromeoplaywright-stealth— junto a Changedetection.io en un archivo Docker Compose, y establece la variable de entornoPLAYWRIGHT_DRIVER_URLpara que apunte a él. En la configuración de la vigilancia, cambia el Fetch Backend aplaywright. Changedetection.io lanzará entonces un navegador headless, esperará a que la página se renderice y tomará un snapshot del DOM en vivo.Primer acceso
Changedetection.io se abre directamente en la lista de vigilancia sin cuenta ni credenciales: puedes añadir tu primera URL enseguida. Lo primero que debes hacer después: abrir Settings → General y establecer una contraseña.
Casos de uso prácticos para desarrolladores y pymes
Changedetection.io cubre una gama de necesidades de automatización sorprendentemente amplia, más allá de las simples «alertas de reposición».
Inteligencia competitiva: vigila la página de precios de un competidor con un selector CSS apuntando a la tabla de precios. En cuanto cambie una columna — facturación mensual que pasa a anual, nuevo nivel enterprise — recibirás una notificación en tiempo real, sin visitas manuales al sitio.
Seguimiento de versiones de software: configura una vigilancia en la página GitHub Releases de una herramienta de la que dependes. Un filtro por palabra clave en v o Release y una notificación de Slack: nunca volverás a perderte una actualización de seguridad crítica.
Licitaciones y contratación pública: los portales de licitación publican sus adjudicaciones en horarios impredecibles. Vigilar la página de resultados con verificación horaria te ahorra múltiples accesos manuales al día.
Alertas de reposición en e-commerce: un filtro CSS en .in-stock, un intervalo de 15 minutos y una notificación ntfy en tu teléfono — suficiente para no perderte ninguna reposición de un artículo agotado.
Cualquier URL, cualquier elemento, cualquier canal de notificación — la combinación de filtros CSS, disparadores por palabra clave y los más de 80 backends de Apprise lo convierte en una primitiva de monitorización genuinamente componible.
Regresiones activas en v0.60.2 — lo que necesitas saber
La versión 0.60.2, publicada el 2 de septiembre de 2026, introduce dos regresiones simultáneas documentadas en el tracker de GitHub:
Regresión 1 — el botón «Recheck» devuelve HTTP 404 (issue #4369). Un refuerzo de seguridad convirtió un endpoint de GET a POST-only sin crear el handler POST correspondiente. El botón de reverificación manual falla en cada llamada. Existe un workaround si usas Traefik como reverse proxy: añade la variable de entorno SOCKETIO_CORS_ORIGINS=https://<tu-dominio> al contenedor. Se abrió un PR (#4370) el mismo día por parte del equipo; no se había fusionado a 5 de septiembre de 2026.
Regresión 2 — «Time Between Check» deja de dispararse tras la actualización (issue #4368). El intervalo de verificación programada ya no se ejecuta tras actualizar a 0.60.2. Las vigilancias aparecen activas en la UI pero no lanzan ninguna verificación automática. El botón Recheck manual sería el único workaround — pero está roto por la regresión 1.
Recomendación: quédate en v0.55.8 o vuelve a ella si ya actualizaste, hasta que salga un parche 0.60.x que corrija ambos issues. La siguiente sección detalla el procedimiento de actualización segura con fijación de versión.
Actualizar Changedetection.io de forma segura — y fijar una versión
Nunca uses la etiqueta `latest` en producción
La etiqueta
latestsigue automáticamente el tag más reciente publicado en Docker Hub. Una actualización silenciosa (Docker Watchtower, pull automático al reiniciar) puede introducir una regresión sin que lo hayas decidido. Fija siempre una versión explícita en tudocker-compose.yml:services: changedetection: image: dgtlmoon/changedetection.io:0.55.8Actualiza la versión de forma manual y deliberada, después de revisar el changelog de GitHub y los issues abiertos para el tag objetivo.
Haz una copia de seguridad del datastore antes de cualquier actualización
Toda la configuración e historial de snapshots vive en el volumen montado en
/datastore. Antes de cambiar de versión:docker compose stop changedetection cp -r /opt/changedetection/datastore /opt/changedetection/datastore.bak-$(date +%Y%m%d)Esta copia te permite volver al estado anterior si hay problemas, sin perder tus reglas de vigilancia ni tus historiales.
Actualiza a una versión concreta
Edita tu
docker-compose.ymlpara apuntar al nuevo tag, luego descarga la imagen y reinicia:docker compose pull changedetection docker compose up -d changedetectionVerifica que la versión mostrada en Settings → General coincide con la que has fijado. Si algo no funciona — botón Recheck roto, verificaciones programadas que se detienen — tienes tu copia de seguridad para revertir de inmediato.
Volver de v0.60.2 a v0.55.8
Si ya actualizaste a 0.60.2 y observas las dos regresiones descritas, este es el procedimiento:
docker compose stop changedetection # edita image: a dgtlmoon/changedetection.io:0.55.8 en docker-compose.yml docker compose pull changedetection docker compose up -d changedetectionEl datastore es compatible entre ambas versiones: tus vigilancias, filtros e historiales de snapshots se conservan.
Elige un intervalo de verificación más largo (30 a 60 minutos) para los sitios web públicos, para ser un ciudadano web responsable y evitar el rate-limiting o el bloqueo por IP. Activa la opción jitter para distribuir las verificaciones a lo largo de toda la ventana de intervalo y evitar consultar el servidor objetivo exactamente en el mismo segundo cada vez. Si una verificación debe ser frecuente (cada 5 minutos), prefiere apuntar a un elemento muy específico mediante un selector CSS en lugar de toda la página: el diff es más rápido de calcular y produce menos falsos positivos.