Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsApr 10, 2026·3 min de lecture

changedetection.io — Self-Hosted Website Change Monitoring

changedetection.io monitors websites for content changes and sends alerts. Track price drops, restock alerts, content updates, and page modifications automatically.

Introduction

changedetection.io is a self-hosted website change detection and monitoring tool. It periodically checks web pages for content changes and sends notifications via email, Slack, Discord, Telegram, webhooks, and 70+ notification channels. Perfect for tracking price drops, monitoring competitor sites, catching restock alerts, and watching for content updates.

With 31.1K+ GitHub stars, changedetection.io is the most popular open-source website monitoring tool, used by individuals and businesses for competitive intelligence, price monitoring, and content tracking.

What changedetection.io Does

  • Content Monitoring: Detect any text change on any web page
  • Visual Diff: Highlighted visual comparison showing exactly what changed
  • CSS/XPath Filters: Monitor specific page sections (price, stock status, etc.)
  • JavaScript Rendering: Support for JavaScript-heavy sites via Playwright browser
  • Price Tracking: Extract and track prices with notifications on drops
  • Notifications: 70+ channels via Apprise (email, Slack, Discord, Telegram, webhooks, etc.)
  • Scheduling: Configurable check intervals per watch (minutes to days)
  • Import/Export: Bulk import URLs, export monitoring configurations
  • API: REST API for programmatic management
  • Tags & Groups: Organize monitored sites with tags

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Web UI      │────▶│ changedetection│──▶│  Target      │
│  (Flask)     │     │  .io Server   │   │  Websites    │
└──────────────┘     └──────┬───────┘    └──────────────┘
                            │
              ┌─────────────┼─────────────┐
              │             │             │
       ┌──────┴──┐   ┌─────┴───┐   ┌─────┴───┐
       │Playwright│   │ Apprise │   │ SQLite  │
       │(JS sites)│   │ (Notify)│   │ (Data)  │
       └──────────┘   └─────────┘   └─────────┘

Self-Hosting

Docker Compose (with Playwright)

services:
  changedetection:
    image: dgtlmoon/changedetection.io:latest
    ports:
      - "5000:5000"
    environment:
      PLAYWRIGHT_DRIVER_URL: ws://playwright-chrome:3000
      BASE_URL: http://localhost:5000
    volumes:
      - changedetection-data:/datastore
    depends_on:
      - playwright-chrome

  playwright-chrome:
    image: dgtlmoon/sockpuppetbrowser:latest
    restart: unless-stopped
    environment:
      SCREEN_WIDTH: 1920
      SCREEN_HEIGHT: 1080

volumes:
  changedetection-data:

Use Cases

Price Drop Monitoring

Watch: https://amazon.com/product-page
CSS Filter: #priceblock_ourprice
Trigger: Text changed
Notification: "Price changed from $99.99 to $79.99!"
  → Send to Telegram + Email

Competitor Monitoring

Watch: https://competitor.com/pricing
CSS Filter: .pricing-table
Check every: 6 hours
Notification: "Competitor pricing page changed!"
  → Send to Slack #competitive-intel

Restock Alerts

Watch: https://store.com/limited-edition-item
CSS Filter: .stock-status
Trigger: Text contains "In Stock"
Notification: "Item is back in stock!"
  → Send to Discord + Push notification

Content & News Monitoring

Watch: https://gov-website.com/policy-updates
CSS Filter: .content-area
Ignore: .sidebar, .footer, .ads
Check every: 1 hour
Notification: "Government policy page updated"
  → Send via Email

Key Features

CSS/XPath Selectors

# Monitor only the price
CSS: .product-price
XPath: //span[@class="price"]

# Monitor article content, ignore sidebar
CSS: article.main-content
CSS Remove: .ads, .related-posts, .comments

# Monitor a table
CSS: table.pricing-comparison

Notification Channels

Email (SMTP)          Slack          Discord
Telegram              ntfy           Gotify
PagerDuty             Pushover       Pushbullet
Microsoft Teams       Webhooks       Matrix
IFTTT                 Home Assistant  Custom scripts
... and 60+ more via Apprise

Visual Diff

changedetection.io shows exactly what changed:

Before: "Regular Price: $99.99"
After:  "Sale Price: $79.99"     ← highlighted in green
Removed: "Regular Price: $99.99" ← highlighted in red

API

# Add a new watch
curl -X POST http://localhost:5000/api/v1/watch 
  -H "x-api-key: YOUR_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{"url": "https://example.com", "tag": "competitor", "minutes_between_check": 60}'

# List all watches
curl http://localhost:5000/api/v1/watch 
  -H "x-api-key: YOUR_API_KEY"

changedetection.io vs Alternatives

Feature changedetection.io Visualping Distill.io Huginn
Open Source Yes No No Yes
Self-hosted Yes No Browser ext. Yes
JS rendering Playwright Yes Yes Manual
Visual diff Yes Yes Yes No
Notifications 70+ channels Email Email + more Flexible
Price tracking Yes No Yes Custom
Ease of use Easy Easy Easy Complex
Pricing Free (self-host) $10+/mo Free + paid Free

FAQ

Q: Can it monitor pages that require login? A: Yes. With the Playwright browser you can configure login steps (filling forms, clicking buttons), and it supports cookie injection and custom headers.

Q: How often can checks run? A: You can go as low as once per minute. For most sites, though, stick to 15–60 minute intervals to avoid IP bans from the target.

Q: Do I need the Playwright container? A: If the sites you're monitoring are plain HTML (no JavaScript rendering), you don't need Playwright. For React/Vue/Angular SPAs, Playwright is required to render the JavaScript content.

Sources & Credits

Discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires