changedetection.io
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:latest4 container_name: changedetection5 restart: unless-stopped6 volumes: 7 - changedetection_data:/datastore8 ports: 9 - "5000:5000"1011volumes: 12 changedetection_data: .env Template
.env
1# No additional config neededUsage Notes
- 1Docs: https://changedetection.io/
- 2Access at http://localhost:5000
- 3Add any URL to track - supports CSS selectors for specific elements
- 4Notifications via email, Slack, Discord, webhooks, and more
- 5Visual diff mode shows exactly what changed
- 6Great for tracking prices, stock, job postings, news
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 changedetection:5 image: ghcr.io/dgtlmoon/changedetection.io:latest6 container_name: changedetection7 restart: unless-stopped8 volumes:9 - changedetection_data:/datastore10 ports:11 - "5000:5000"1213volumes:14 changedetection_data:15EOF1617# 2. Create the .env file18cat > .env << 'EOF'19# No additional config needed20EOF2122# 3. Start the services23docker compose up -d2425# 4. View logs26docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/changedetection/run | bashTroubleshooting
- 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
Shortcuts: C CopyF FavoriteD Download