Skip to main content
Running changedetection.io on Windows requires some additional setup. This guide covers installation methods and common issues specific to Windows. The easiest way to run changedetection.io on Windows is using Docker Desktop.
1

Install Docker Desktop

Download and install Docker Desktop for Windows.
Docker Desktop requires Windows 10/11 Pro, Enterprise, or Education with Hyper-V support, or Windows 10/11 Home with WSL 2.
2

Enable WSL 2 (if required)

Open PowerShell as Administrator and run:
wsl --install
Restart your computer after installation.
3

Run changedetection.io

Open PowerShell or Command Prompt:
docker run -d --restart always -p "127.0.0.1:5000:5000" -v changedetection-data:/datastore --name changedetection.io ghcr.io/dgtlmoon/changedetection.io
4

Access the web interface

Open your browser and navigate to:
http://127.0.0.1:5000

Alternative: Python Installation

You can install changedetection.io directly using Python on Windows, though some features may have limitations.

Prerequisites

1

Install Python

Download and install Python 3.10 or higher.
During installation, make sure to check “Add Python to PATH”.
2

Verify installation

Open Command Prompt or PowerShell:
python --version
pip --version

Installation

1

Install changedetection.io

pip install changedetection.io
2

Create a data directory

mkdir C:\changedetection-data
3

Run the application

changedetection.io -d C:\changedetection-data -p 5000
Or with Python module syntax:
python -m changedetectionio -d C:\changedetection-data -p 5000
4

Access the web interface

Open your browser and navigate to:
http://127.0.0.1:5000

Windows-Specific Limitations

jq Not Available

The jq package is not available on Windows via pip. You can:
  1. Use JSONPath instead for JSON filtering
  2. Download jq manually from stedolan.github.io/jq and add it to your PATH

Playwright May Not Work

Playwright installation on Windows can be problematic. If it fails:
pip install changedetection.io
# Playwright installation might fail, but the app will still work
The application will work without Playwright, but JavaScript-heavy websites won’t be supported.

File Path Differences

Use Windows-style paths:
# Correct
changedetection.io -d C:\changedetection-data -p 5000

# Also correct (forward slashes work too)
changedetection.io -d C:/changedetection-data -p 5000

# Incorrect (Unix-style path)
changedetection.io -d /var/lib/changedetection -p 5000

Running as a Windows Service

Using NSSM (Non-Sucking Service Manager)

1

Download NSSM

Download NSSM and extract it.
2

Install the service

Open Command Prompt as Administrator:
nssm install changedetection
In the NSSM GUI:
  • Path: C:\Python310\Scripts\changedetection.io.exe (adjust to your Python path)
  • Startup directory: C:\changedetection-data
  • Arguments: -d C:\changedetection-data -p 5000
3

Start the service

nssm start changedetection

Using Task Scheduler

1

Create a batch file

Create start-changedetection.bat:
start-changedetection.bat
@echo off
cd C:\changedetection-data
C:\Python310\Scripts\changedetection.io.exe -d C:\changedetection-data -p 5000
2

Create a scheduled task

  1. Open Task Scheduler
  2. Create Basic Task
  3. Trigger: “When the computer starts”
  4. Action: “Start a program”
  5. Program: Path to start-changedetection.bat
  6. Check “Run with highest privileges”

Docker Compose on Windows

If you have Docker Desktop installed:
1

Create docker-compose.yml

Create a file named docker-compose.yml:
docker-compose.yml
services:
  changedetection:
    image: ghcr.io/dgtlmoon/changedetection.io
    container_name: changedetection
    volumes:
      - changedetection-data:/datastore
    ports:
      - 127.0.0.1:5000:5000
    restart: unless-stopped

volumes:
  changedetection-data:
2

Start the service

In the same directory:
docker compose up -d

Environment Variables on Windows

Set environment variables in PowerShell:
# Temporary (current session only)
$env:PORT = "5000"
$env:LOGGER_LEVEL = "INFO"
$env:BASE_URL = "https://example.com"
changedetection.io -d C:\changedetection-data
Set permanent environment variables:
# Using PowerShell
[System.Environment]::SetEnvironmentVariable('PORT', '5000', 'User')
[System.Environment]::SetEnvironmentVariable('LOGGER_LEVEL', 'INFO', 'User')
Or through GUI:
  1. Search for “Environment Variables” in Windows
  2. Click “Edit environment variables for your account”
  3. Add new variables under “User variables”

Updating

Docker Method

docker pull ghcr.io/dgtlmoon/changedetection.io
docker stop changedetection.io
docker rm changedetection.io
docker run -d --restart always -p "127.0.0.1:5000:5000" -v changedetection-data:/datastore --name changedetection.io ghcr.io/dgtlmoon/changedetection.io

Pip Method

pip install --upgrade changedetection.io

Troubleshooting

Python not found

Ensure Python is in your PATH:
  1. Search for “Environment Variables” in Windows
  2. Edit “Path” under “System variables”
  3. Add Python installation directory (e.g., C:\Python310)
  4. Add Python Scripts directory (e.g., C:\Python310\Scripts)
  5. Restart Command Prompt/PowerShell

pip install fails with SSL error

Upgrade pip and try again:
python -m pip install --upgrade pip
pip install changedetection.io

Port 5000 already in use on Windows 10/11

Windows may reserve port 5000 for other services. Use a different port:
changedetection.io -d C:\changedetection-data -p 8080
Or free port 5000:
# Run as Administrator
net stop winnat
net start winnat

Permission denied accessing datastore

Run Command Prompt or PowerShell as Administrator, or ensure the data directory is in a location your user can write to:
mkdir C:\Users\YourUsername\changedetection-data
changedetection.io -d C:\Users\YourUsername\changedetection-data -p 5000

Docker Desktop won’t start

Common issues:
  1. Hyper-V not enabled: Enable in “Turn Windows features on or off”
  2. WSL 2 not installed: Run wsl --install in PowerShell as Administrator
  3. Virtualization disabled in BIOS: Enable Intel VT-x or AMD-V in BIOS settings

Application closes immediately

Check for errors:
changedetection.io -d C:\changedetection-data -p 5000 2>&1 | more
Or redirect to a log file:
changedetection.io -d C:\changedetection-data -p 5000 > C:\changedetection.log 2>&1

Firewall blocking access

Add an exception for Python or the port:
  1. Open Windows Defender Firewall
  2. Click “Allow an app through firewall”
  3. Click “Change settings” then “Allow another app”
  4. Browse to Python executable or add port 5000

Performance Tips

Use SSD for datastore

Store the datastore on an SSD for better performance:
changedetection.io -d D:\SSD\changedetection-data -p 5000

Reduce fetch workers

On lower-end systems, reduce concurrent fetchers:
$env:FETCH_WORKERS = "5"
changedetection.io -d C:\changedetection-data -p 5000

Docker resource limits

In Docker Desktop settings:
  1. Go to Settings > Resources
  2. Adjust CPU and Memory limits
  3. Click “Apply & Restart”

Next Steps

Configuration

Configure notifications and features

Docker Installation

Learn more about Docker method

Additional Resources

For more detailed Windows-specific information, see the official wiki.