Skip to main content
Docker Compose provides the easiest way to run changedetection.io with optional browser automation support for JavaScript-heavy websites.

Quick Start

1

Clone or download the repository

Alternatively, download just the docker-compose.yml file from the repository.
2

Start the service

3

Access the web interface

Open your browser and navigate to:

Basic Configuration

The default docker-compose.yml provides a minimal setup:
docker-compose.yml
Mac users should change the port mapping to 127.0.0.1:5050:5000 to avoid conflicts with Airplay.

Environment Variables

Uncomment and configure environment variables in your docker-compose.yml:
docker-compose.yml

Key Environment Variables

Reverse Proxy Configuration

When using a reverse proxy, set USE_X_SETTINGS=1 to respect X-Forwarded-Prefix and similar headers.

Proxy Configuration

Plugin Installation

For multiple plugins, separate with spaces:

Browser Automation Setup

For JavaScript-heavy websites, add browser automation using Playwright (recommended) or Selenium.
docker-compose.yml
Sockpuppet Browser provides the best performance and supports full-page screenshots and the Visual Selector feature.
The SYS_ADMIN capability is required for Chrome to run in some environments. See the Puppeteer troubleshooting guide for alternatives.

Option 2: Selenium WebDriver (Legacy)

docker-compose.yml
Selenium WebDriver is deprecated and doesn’t support full-page screenshots or status codes. Use Playwright/Sockpuppet Browser for new installations.

Advanced Volume Configuration

Proxy List Support

Mount a custom proxy configuration file:
See the proxy configuration wiki for format details.

SSL Certificate Mounting

Updating

1

Pull the latest images

2

Restart services

Docker Compose will automatically recreate containers with updated images while preserving your data.

Network Configuration

Behind a Reverse Proxy

Comment out the ports section and use a custom network:

Troubleshooting

Services won’t start

Check logs for all services:
Or for a specific service:

Browser automation not working

Verify the browser service is running:
Check browser service logs:
Ensure the PLAYWRIGHT_DRIVER_URL or WEBDRIVER_URL environment variable is set correctly.

Permission issues

Reset volume permissions:
Removing the volume will delete all data. Back up your datastore first.

Port conflicts on Mac

Change the port mapping to avoid Airplay conflicts:

Out of memory errors with browser

Increase Docker memory limits or reduce concurrent Chrome processes:

Platform-Specific Notes

Raspberry Pi / ARM Devices

For ARM platforms, use the appropriate Selenium image:
Playwright/Sockpuppet Browser also works on ARM64 devices.

Next Steps

Configuration

Configure notifications and advanced features

Browser Fetchers

Learn about different fetching methods