docker.recipes

changedetection.io

beginner

Website change detection and monitoring.

Overview

changedetection.io is an open-source website monitoring service that automatically tracks changes across web pages, allowing users to receive notifications when content updates occur. Originally developed as a lightweight alternative to commercial monitoring services, this Python-based application excels at detecting modifications in web content, from e-commerce price changes to news updates and job postings. The service runs as a self-hosted solution, giving users complete control over their monitoring data and notification preferences. This Docker deployment creates a single-container monitoring station that can track unlimited websites simultaneously. changedetection.io operates by periodically fetching web pages, comparing them against stored snapshots, and triggering alerts when differences are detected. The application supports advanced filtering using CSS selectors and XPath expressions, enabling precise monitoring of specific page elements rather than entire pages. Homelab enthusiasts and small businesses benefit significantly from this setup, as it eliminates dependency on external monitoring services while providing enterprise-grade change detection capabilities. The containerized deployment ensures consistent operation across different environments, while the web-based interface makes it accessible to non-technical users who need to monitor competitor pricing, job boards, or news sources for specific keywords or changes.

Key Features

  • Visual diff highlighting showing exactly which content changed with before/after comparisons
  • CSS selector and XPath support for monitoring specific page elements instead of entire pages
  • Multiple notification channels including email, Discord, Slack, Telegram, and custom webhooks
  • Proxy support with rotation capabilities for monitoring sites that block automated requests
  • Built-in text filtering and ignore patterns to reduce false positives from dynamic content
  • JSON and XML monitoring capabilities for API endpoint change detection
  • Customizable check intervals from minutes to days with different schedules per monitored URL
  • Browser fetching mode using Playwright for JavaScript-heavy sites and SPAs

Common Use Cases

  • 1E-commerce price monitoring to track competitor pricing and product availability changes
  • 2Job board monitoring for new postings matching specific criteria or companies
  • 3Government and legal document tracking for policy updates and regulatory changes
  • 4Competitor website monitoring for new product launches and feature announcements
  • 5News and blog monitoring for articles containing specific keywords or topics
  • 6API endpoint monitoring to detect changes in data structures or service responses
  • 7Real estate listing monitoring for new properties matching search criteria

Prerequisites

  • Docker and Docker Compose installed on the host system
  • Minimum 512MB RAM available for the changedetection container
  • Port 5000 available and not in use by other services
  • Stable internet connection for fetching monitored websites
  • Email server credentials if using email notifications
  • Basic understanding of CSS selectors for advanced element monitoring

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 changedetection:
3 image: ghcr.io/dgtlmoon/changedetection.io:latest
4 container_name: changedetection
5 restart: unless-stopped
6 volumes:
7 - changedetection_data:/datastore
8 ports:
9 - "5000:5000"
10
11volumes:
12 changedetection_data:

.env Template

.env
1# No additional config needed

Usage Notes

  1. 1Docs: https://changedetection.io/
  2. 2Access at http://localhost:5000
  3. 3Add any URL to track - supports CSS selectors for specific elements
  4. 4Notifications via email, Slack, Discord, webhooks, and more
  5. 5Visual diff mode shows exactly what changed
  6. 6Great for tracking prices, stock, job postings, news

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 changedetection:
5 image: ghcr.io/dgtlmoon/changedetection.io:latest
6 container_name: changedetection
7 restart: unless-stopped
8 volumes:
9 - changedetection_data:/datastore
10 ports:
11 - "5000:5000"
12
13volumes:
14 changedetection_data:
15EOF
16
17# 2. Create the .env file
18cat > .env << 'EOF'
19# No additional config needed
20EOF
21
22# 3. Start the services
23docker compose up -d
24
25# 4. View logs
26docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/changedetection/run | bash

Troubleshooting

  • 403 Forbidden errors when monitoring sites: Configure user agent strings and enable proxy rotation in settings
  • JavaScript-heavy sites not detecting changes: Switch to 'Chrome/Playwright' fetching method in watch settings
  • Too many false positives from dynamic content: Add ignore patterns for timestamps, ads, and session IDs in filters
  • Notifications not sending: Verify SMTP settings and test notification channels in the settings panel
  • High memory usage with many watches: Reduce check frequency and limit the number of concurrent fetches in global settings
  • Container restart loops: Check datastore volume permissions and ensure sufficient disk space for snapshots

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space