Skip to content

Docker stack for deploying changedetection.io with headless Chrome and Cloudflare Tunnel.

License

Notifications You must be signed in to change notification settings

chriskyfung/changedetection-stack

Change Detection Stack

License: MIT

This project provides a Docker-based stack for running changedetection.io, a powerful open-source tool for monitoring and detecting changes in websites.

The stack is pre-configured with the following services:

  • changedetection.io: The main web application for change detection.
  • browser-sockpuppet-chrome: A headless Chrome browser for rendering web pages, enabling advanced change detection features.
  • cloudflared: A service for exposing the changedetection.io application to the internet using Cloudflare Tunnel.

This setup is based on the official docker-compose.yml template from the changedetection.io repository.

Features

  • Easy Deployment: Get a full change detection stack running with a single command.
  • Persistent Storage: Your changedetection.io data is stored in a Docker volume, ensuring it persists across container restarts.
  • Secure Remote Access: Expose your changedetection.io instance to the internet securely with Cloudflare Tunnel.
  • Scalable: The stack is designed to be scalable, allowing you to monitor a large number of websites.

Prerequisites

Before you begin, ensure you have the following installed:

Getting Started

  1. Clone the repository:

    git clone https://github.com/your-username/changedetection-stack.git
    cd changedetection-stack
  2. Create a .env file:

    Copy the .env.example file to .env:

    cp .env.example .env
  3. Configure the environment variables in .env:

    • TZ: Your timezone (e.g., America/New_York).
    • CLOUDFLARE_TUNNEL_TOKEN: Your Cloudflare Tunnel token.
  4. Start the services:

    docker-compose up -d

    This command will start all the services in the background.

  5. Access changedetection.io:

    Once the services are running, you can access the changedetection.io web interface through the URL provided by your Cloudflare Tunnel.

Configuration

The primary configuration is managed through environment variables in the .env file. See the "Getting Started" section for details.

You can customize the docker-compose.yml file for advanced settings, such as:

  • browser-sockpuppet-chrome:
    • SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_DEPTH: The screen resolution for the headless browser.
    • MAX_CONCURRENT_CHROME_PROCESSES: The maximum number of concurrent Chrome processes.

Volumes

  • changedetection-data: A Docker volume for persisting the changedetection.io data.

Networking

  • changedetection-net: A Docker network for communication between the services.

Contributing

Contributions are welcome! Please read the CONTRIBUTING.md file for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Releases

No releases published

Sponsor this project

  •