7-Step changedetection.io Ultimate Setup Guide 2025
Unlock the power of web monitoring with our ultimate 2025 guide. Learn to install and configure changedetection.io in 7 easy steps using Docker for total control.
Alex Volkov
Self-hosting enthusiast and open-source software advocate specializing in automation and monitoring tools.
Why Monitor Website Changes in 2025?
In a digital world overflowing with information, staying updated on specific web content is more crucial than ever. Whether you're tracking a competitor's pricing, waiting for a product to come back in stock, monitoring legislative updates, or simply keeping tabs on a favorite blog, manual checking is inefficient and unreliable. This is where changedetection.io comes in.
changedetection.io is a powerful, open-source, and self-hostable platform that automates the process of monitoring website changes. Instead of paying for subscription services that limit your checks and hold your data, you can run your own robust monitoring service. This guide will walk you through the ultimate 7-step setup for 2025, empowering you to take full control of your web monitoring needs.
Before You Begin: System Requirements
Before we dive into the setup, let's ensure you have the necessary tools. This setup is incredibly lightweight and can run on almost anything, from a cloud VPS to a Raspberry Pi in your home.
Docker and Docker Compose
We'll be using Docker to containerize our application. This simplifies installation, isolates dependencies, and makes management a breeze. You'll need both Docker and Docker Compose installed on your system. Most modern operating systems have straightforward installation guides on the official Docker website.
A Host Machine
This can be any machine running Linux, Windows, or macOS that can run Docker. Popular choices include:
- A small cloud VPS from providers like DigitalOcean, Vultr, or Hetzner.
- A home server or a dedicated machine.
- A single-board computer like a Raspberry Pi 4 (or newer).
- Your local desktop or laptop for testing purposes.
The 7-Step Ultimate changedetection.io Setup
Let's get our hands dirty and build your personal web monitoring powerhouse. Follow these seven steps for a complete and robust installation.
Step 1: Prepare Your Directory Structure
First, create a dedicated directory for your changedetection.io project. This keeps your configuration files organized. Open your terminal and run:
mkdir changedetection
cd changedetection
Step 2: Create the docker-compose.yml File
Inside your `changedetection` directory, create a file named `docker-compose.yml`. This file will define the services, networks, and volumes for our application.
touch docker-compose.yml
Step 3: Configure the Core Services
Now, open `docker-compose.yml` with your favorite text editor and paste the following configuration. This setup includes both the main application and a Playwright browser, which is essential for monitoring modern, JavaScript-heavy websites.
version: '3.7'
services:
changedetection:
image: dgtlmoon/changedetection.io:latest
container_name: changedetection
hostname: changedetection
volumes:
- ./changedetection-data:/datastore
environment:
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000/
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- "5000:5000"
restart: unless-stopped
playwright-chrome:
image: browserless/chrome:latest
container_name: playwright-chrome
restart: unless-stopped
What does this do?
- changedetection: This is the main application service. We map a local directory (`./changedetection-data`) to the container's data directory to persist your watch list and settings. We also connect it to the Playwright service and expose port 5000.
- playwright-chrome: This service runs a headless Chrome browser. changedetection.io can connect to it to render pages that rely heavily on JavaScript, ensuring you can accurately track changes on any website.
Step 4: Launch and Verify the Application
With your `docker-compose.yml` file saved, it's time to bring your services to life. In your terminal, from within the `changedetection` directory, run:
docker-compose up -d
Docker will now pull the necessary images and start the containers in the background (`-d` for detached mode). You can check if the containers are running with `docker-compose ps`. You should see both `changedetection` and `playwright-chrome` with a status of 'Up'.
Step 5: Secure and Configure Your Instance
Your monitoring service is now running! Open your web browser and navigate to `http://YOUR_SERVER_IP:5000` (or `http://localhost:5000` if running locally).
The first thing you should do is secure your instance. Click on the [Settings] tab. Under the Password section, set a strong password to prevent unauthorized access. You can also configure other global settings here, but a password is the most critical first step.
Step 6: Set Up Your First Watch and Notifications
Let's add your first website to monitor.
- Click back to the main [Watches] tab.
- In the "Add new watch" section, enter the URL you want to monitor.
- You can add a tag to keep things organized.
- Go to the [Edit] tab for your new watch. Here you can configure how it's checked. For JavaScript-heavy sites, select "Playwright/Puppeteer/WebDriver Chrome/Firefox" under Fetch Method.
- Now, let's set up a notification. In the [Settings] tab, go to the Notifications sub-tab. Here you'll find a huge list of services. For Discord, you would enter your webhook URL in the format `discord://webhook_id/webhook_token`.
- Save your global notification settings. Then, in your watch's [Edit] tab, add your notification URL to the Notifications box to link it to that specific watch.
Step 7: Master Advanced Features for Power Users
To truly unlock the power of changedetection.io, explore these advanced features in the watch's [Edit] tab:
- CSS Selector: Instead of watching the whole page, you can monitor a specific part. Use your browser's developer tools to find the CSS selector for an element (e.g., `#price-tag`, `.product-availability`). This reduces false positives from ads or timestamps.
- Filters: Use the "Text Filter" to ignore certain lines or words. For example, you can filter out lines containing "Last updated on" to avoid unnecessary notifications.
changedetection.io vs. The Competition
How does a self-hosted solution stack up against popular commercial services? Here's a quick comparison.
Feature | changedetection.io | Visualping | Distill.io |
---|---|---|---|
Cost | Free (plus minimal hosting costs) | Freemium, paid tiers for more checks | Freemium, paid tiers for more checks |
Data Privacy | Excellent (Your data, your server) | Vendor-controlled | Vendor-controlled |
Customization | Unlimited (Full control over settings) | Limited by plan | Limited by plan |
JS Rendering | Included (via Playwright/WebDriver) | Premium feature | Premium feature |
Notification Channels | Extensive, 60+ built-in integrations | Limited, tiered by plan | Limited, tiered by plan |
Check Frequency | As fast as your server can handle | Limited by plan (e.g., daily, hourly) | Limited by plan |
Maintenance and Best Practices
Running your own service means taking care of it. Thankfully, it's simple with Docker.
Regular Updates
The developer of changedetection.io releases updates frequently with new features and fixes. To update, navigate to your project directory in the terminal and run:
docker-compose pull
docker-compose up -d
This will pull the latest images and restart your containers with the new versions. Your data will be preserved because it's stored in the volume we created.
Backup Strategies
Your entire configuration is stored in the `changedetection-data` directory you created in Step 1. To back up your instance, simply stop the containers (`docker-compose down`) and create a compressed archive of this directory. Store this backup in a safe, separate location.
Conclusion: You're Now a Web Monitoring Pro!
Congratulations! You have successfully deployed a powerful, private, and infinitely customizable web monitoring solution. By following these seven steps, you've moved beyond the limitations of commercial services and taken full control of your data and monitoring capabilities. You can now track prices, monitor stock, get news alerts, and so much more—all from a service that you own and manage. Happy monitoring!