Changedetection.io
Changedetection.io est un outil de surveillance de pages web gratuit et open source : il garde un œil sur n’importe quelle URL et vous prévient dès qu’un détail bouge, une baisse de prix, un produit qui revient en stock, une nouvelle ligne dans un changelog, ou un seul mot changé au milieu d’un pavé de texte. Il tourne dans un unique conteneur Docker, conserve tout l’historique des versions qu’il a déjà vues, et sait comparer bien plus que du HTML brut : réponses d’API JSON, PDF et flux RSS/Atom entrent aussi dans le jeu. C’est ce qui se rapproche le plus, côté auto-hébergé, de Visualping ou Distill.io, sans l’abonnement mensuel.
Licence : le code source de Changedetection.io est publié sous licence Apache 2.0, comme le confirme directement le fichier LICENSE du dépôt GitHub dgtlmoon/changedetection.io. Mais lisez quand même la section dédiée plus bas : ce même dépôt contient aussi un fichier COMMERCIAL_LICENCE.md distinct, qui ajoute des restrictions contractuelles sur la revente ou l’hébergement du logiciel pour des tiers, et les deux documents ne se recoupent pas parfaitement.
En bref : site officiel changedetection.io · GitHub dgtlmoon/changedetection.io, plus de 32 000 étoiles · version actuelle 0.55.7 · image Docker officielle ghcr.io/dgtlmoon/changedetection.io · développé par Web Technologies s.r.o., qui propose aussi une version cloud payante à partir de 8,99 $/mois.
Ce que fait vraiment Changedetection.io
Au fond, changedetection.io est un moteur de récupération et de comparaison programmé, exactement le genre d’outil pour lequel on paie d’habitude un abonnement SaaS. Vous ajoutez une URL et fixez un intervalle de vérification, cinq minutes au plus rapide. L’outil va chercher la page selon ce planning, puis compare la nouvelle version à la dernière qu’il a enregistrée. Dès qu’une différence apparaît, jusqu’à un seul mot près si vous poussez la précision jusque-là, il envoie une notification et garde tout l’historique consultable. C’est exactement le principe de Visualping ou Distill.io, sauf que chaque vérification tourne sur votre propre matériel, sans autre plafond que ce que votre serveur peut encaisser.
Fonctionnalités clés
- Sélecteur visuel : cliquez directement sur l’élément affiché à l’écran, un prix, un badge de stock, plutôt que d’écrire un sélecteur CSS à la main
- Comparaison textuelle et visuelle : diff mot à mot, ligne à ligne, ou capture d’écran complète, ancienne et nouvelle version affichées côte à côte
- Filtres CSS/XPath, règles Trigger Text et Ignore Text, pour que les publicités qui tournent en boucle ou les horodatages ne déclenchent pas de fausses alertes
- Détection de restock et de baisse de prix, avec des actions conditionnelles qui n’alertent qu’une fois un seuil que vous définissez franchi
- Browser Steps : clics, connexions et remplissage de formulaires scriptés avant chaque vérification, utile pour du contenu caché derrière une connexion ou un bouton « charger plus »
- Un navigateur Chrome headless via Playwright (l’image maison dgtlmoon/sockpuppetbrowser est le sidecar recommandé) pour les pages riches en JavaScript qu’une simple requête ne peut pas afficher
- Plus de 85 services de notification via Apprise : Discord, Slack, Telegram, ntfy, Matrix, email, et bien d’autres, sans limite d’alertes
- Au-delà du HTML classique : API JSON, flux RSS/Atom et documents PDF se surveillent exactement comme une page web
- Une API REST complète pour ajouter et interroger des watches par programmation plutôt qu’en cliquant dans l’interface
Installer Changedetection.io avec Docker
Le docker-compose.yml officiel du projet est livré en grande partie commenté, puisque le support Playwright et proxy reste optionnel. Voici une configuration fonctionnelle, avec le sidecar de navigateur headless recommandé pour les pages riches en JavaScript :
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io
container_name: changedetection
hostname: changedetection
restart: unless-stopped
ports:
- 127.0.0.1:5000:5000
environment:
- PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000
volumes:
- changedetection-data:/datastore
depends_on:
- browser-sockpuppet-chrome
browser-sockpuppet-chrome:
hostname: browser-sockpuppet-chrome
image: dgtlmoon/sockpuppetbrowser:latest
cap_add:
- SYS_ADMIN
restart: unless-stopped
environment:
- MAX_CONCURRENT_CHROME_PROCESSES=10
volumes:
changedetection-data:
docker compose up -d
- Enregistrez le fichier compose ci-dessus puis lancez
docker compose up -d; le premier démarrage télécharge les deux images et peut prendre une minute. - Ouvrez
http://ip-de-votre-serveur:5000et ajoutez un watch : collez une URL, puis utilisez le sélecteur visuel pour cliquer directement sur l’élément qui vous intéresse plutôt que sur la page entière. - Basculez la méthode de récupération de ce watch sur « Playwright » si la page dépend de JavaScript, ce qui la fait passer par le sidecar sockpuppetbrowser.
- Dans Settings → Notifications, ajoutez une URL Apprise pour au moins un canal avant d’en avoir réellement besoin.
- Fixez un intervalle de vérification réaliste : le minimum de 3 minutes proposé par l’interface est excessif pour la plupart des watches, entre 15 et 60 minutes ménage à la fois votre serveur et le site surveillé.
Matériel : le conteneur changedetection principal est léger, appuyé sur SQLite, et un Raspberry Pi ou un vieux mini PC encaisse sans peine des dizaines de watches en simple HTTP. C’est le sidecar sockpuppetbrowser qui coûte réellement de la RAM, une vraie instance Chrome par récupération Playwright simultanée, donc les watches gourmands en JavaScript rapprochent le besoin d’un cœur de libre et de 1 à 2 Go de RAM. Vous hésitez encore sur quel matériel installer tout ça ? Notre guide pour monter votre premier homelab détaille ces arbitrages.
Licence : du code Apache 2.0, avec un piège sur l’hébergement commercial
Celle-là mérite d’être lue en détail plutôt que de se fier à un badge. Le fichier LICENSE à la racine du dépôt est une Apache License 2.0 standard, non modifiée, une licence permissive classique approuvée par l’OSI qui autorise usage commercial, modification et hébergement sans redevance à verser à personne.
Mais ce même dépôt contient aussi un fichier COMMERCIAL_LICENCE.md, qui se lit comme un contrat à part : il indique que toute activité d’« hébergement » commercial, définie largement comme le fait de proposer le logiciel à des tiers en tant que service, de le revendre, ou de l’intégrer à un produit payant, nécessite une licence commerciale payante auprès de Web Technologies s.r.o., la société derrière le projet. Pris au pied de la lettre, cela entre en contradiction avec l’Apache 2.0, qui accorde déjà sans condition les droits d’hébergement et de revente. Des utilisateurs ont directement signalé cette contradiction au mainteneur sur GitHub (issue #4237, toujours ouverte mi-2026), suggérant qu’une licence source-available comme l’Elastic License 2.0 exprimerait l’intention de façon plus claire. Rien de tout cela ne concerne une installation homelab classique comme celle décrite ici : vous faites tourner votre propre instance pour vous-même, sans la revendre ni l’héberger pour des tiers, donc l’Apache 2.0 s’applique sans réserve. La friction n’apparaît que si vous comptez revendre changedetection.io ou l’héberger comme service pour d’autres.
Changedetection.io : avantages et inconvénients
- Gratuit et sous licence Apache 2.0 pour un usage auto-hébergé, aucune limite de watches en dehors de celle de votre propre matériel
- Va bien au-delà du HTML classique : API JSON, flux RSS/Atom et PDF sont tous surveillables
- Le sélecteur visuel et les Browser Steps rendent une surveillance précise et compatible JavaScript accessible sans écrire de scraper
- Plus de 85 intégrations de notification via Apprise, plus une API REST complète pour automatiser
- Les pages riches en JavaScript demandent le sidecar Playwright/sockpuppetbrowser, un second conteneur et une vraie surcharge de RAM, pas juste l’image principale
- Le fichier COMMERCIAL_LICENCE.md rend le sujet de la licence plus confus qu’un simple badge MIT ou Apache ne le laisserait penser
- Des intervalles de vérification trop agressifs sur des sites qui n’apprécient pas d’être scrapés peuvent faire limiter ou bloquer votre IP
- Pas d’application mobile native ; les notifications passent par des services tiers plutôt que par un client dédié
Des alternatives à connaître
Visualping et Distill.io restent les alternatives cloud évidentes si monter un serveur juste pour surveiller quelques pages semble disproportionné ; les deux proposent un palier gratuit avec un nombre de vérifications limité, au prix de voir vos URL surveillées hébergées chez quelqu’un d’autre. Côté auto-hébergé, urlwatch est un outil CLI plus léger, piloté par fichier de configuration, sans tableau de bord web : à considérer si un fichier YAML vous convient mieux qu’une interface de navigateur. Pour surveiller si un service répond plutôt que si son contenu a changé, Uptime Kuma répond à un problème voisin mais différent : l’un vous dit qu’un site est joignable, l’autre vous dit ce qui a changé dessus.
FAQ
Changedetection.io est-il vraiment gratuit ?
Oui, l’auto-hébergement est gratuit sous licence Apache 2.0, avec le code source complet sur GitHub et aucune limite de watches en dehors de celle imposée par votre propre matériel. Une version cloud payante existe à partir de 8,99 $/mois pour qui préfère ne pas gérer de serveur, mais le logiciel auto-hébergé n’est pas bridé pour vous pousser vers cette offre.
Ai-je besoin du sidecar Playwright pour chaque watch ?
Non. La récupération HTTP classique, celle par défaut, fonctionne très bien pour la plupart des pages statiques ou générées côté serveur, et reste plus légère en ressources. Le sidecar Playwright/sockpuppetbrowser n’est nécessaire que pour les pages qui construisent leur contenu en JavaScript côté client.
Ai-je le droit de surveiller n’importe quel site ?
L’outil ne vérifie pas pour vous les conditions d’utilisation d’un site. Surveiller une page publique à un intervalle raisonnable est largement admis, dans la même catégorie qu’un humain qui rafraîchit une page à la main, mais scraper du contenu caché derrière une connexion, ignorer le robots.txt, ou marteler un petit site avec des intervalles agressifs peut franchir une limite que ses conditions d’utilisation n’accepteront pas. Dans le doute, préférez toujours une API officielle ou un flux RSS plutôt que le scraping de HTML.
Changedetection.io mérite sa place dans un homelab pour la même raison qu’Uptime Kuma : un petit conteneur mono-fonction qui répond bien à une seule question, ici « est-ce que cette page a vraiment changé ». Associez une alerte de restock à n8n pour transformer un ping Discord en workflow complet. Notre guide pour monter votre premier homelab couvre les bases Docker dont il dépend.