TL;DR — Quick Summary

Deploy Changedetection.io to monitor website changes. Track price drops, content updates, and regulatory pages with email, Slack, Ntfy, and webhook alerts.

Why Changedetection.io?

Manually checking websites for updates is tedious. Changedetection.io does it for you:

  • Price tracking — Get alerted when a product drops in price.
  • Competitor monitoring — Know when competitors update pricing or features.
  • Regulatory compliance — Track government policy pages for changes.
  • API monitoring — Watch JSON endpoints for schema or value changes.
  • Job listings — Get notified about new positions instantly.

Prerequisites

  • Docker on any machine.
  • At least 128 MB RAM.

Step 1: Deploy with Docker

docker run -d \
  --name changedetection \
  --restart=always \
  -p 5000:5000 \
  -v changedetection-data:/datastore \
  dgtlmoon/changedetection.io

For JavaScript-rendered pages, add Playwright:

# docker-compose.yml
version: "3"
services:
  changedetection:
    image: dgtlmoon/changedetection.io
    ports:
      - "5000:5000"
    volumes:
      - ./data:/datastore
    environment:
      - PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000
    restart: always

  playwright-chrome:
    image: dgtlmoon/sockpuppetbrowser:latest
    restart: always

Step 2: Monitoring Strategies

Use Case CSS Selector Check Interval
Product price .price, #product-price Every 2 hours
Blog/news updates article, .post-list Every 6 hours
API response (JSON mode) Every 15 minutes
Government regulation #content, .regulation-text Daily
Job listings .job-list, #positions Every hour
Competitor pricing .pricing-table Every 4 hours

Step 3: Notification Setup

Configure in Settings > Notifications using Apprise URLs:

# Email
mailto://user:password@smtp.gmail.com?to=alerts@example.com

# Slack
slack://TokenA/TokenB/TokenC/#channel

# Ntfy
ntfy://ntfy.example.com/alerts

# Discord
discord://WebhookID/WebhookToken

# Telegram
tgram://BotToken/ChatID

Step 4: Advanced Filters

Use triggers to only alert on meaningful changes:

Filter Example Purpose
Text added “In stock” appeared Product back in stock
Text removed “Available” disappeared Product sold out
Threshold Price changed by >10% Significant price drops
Ignore text “Last updated:” Skip dynamic timestamps

Troubleshooting

Problem Solution
Too many false alerts Add CSS selectors to target specific content; use “Ignore text” filters
JavaScript page not rendering Enable Playwright browser container in docker-compose
Check timing is off Verify the schedule format; minimum interval is 1 minute
Notifications not sending Test the Apprise URL in Settings > Test Notification
Page requires login Use the “Request headers” option to send cookies or auth tokens

Summary

  • One Docker container monitors unlimited URLs.
  • CSS selectors target specific page elements to avoid false alerts.
  • 70+ notification services via Apprise integration.
  • Playwright option for JavaScript-rendered pages.