> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/dgtlmoon/changedetection.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Windows Installation

> Install changedetection.io on Microsoft Windows

Running changedetection.io on Windows requires some additional setup. This guide covers installation methods and common issues specific to Windows.

## Recommended Method: Docker Desktop

The easiest way to run changedetection.io on Windows is using Docker Desktop.

<Steps>
  <Step title="Install Docker Desktop">
    Download and install [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/).

    <Note>
      Docker Desktop requires Windows 10/11 Pro, Enterprise, or Education with Hyper-V support, or Windows 10/11 Home with WSL 2.
    </Note>
  </Step>

  <Step title="Enable WSL 2 (if required)">
    Open PowerShell as Administrator and run:

    ```powershell theme={null}
    wsl --install
    ```

    Restart your computer after installation.
  </Step>

  <Step title="Run changedetection.io">
    Open PowerShell or Command Prompt:

    ```powershell theme={null}
    docker run -d --restart always -p "127.0.0.1:5000:5000" -v changedetection-data:/datastore --name changedetection.io ghcr.io/dgtlmoon/changedetection.io
    ```
  </Step>

  <Step title="Access the web interface">
    Open your browser and navigate to:

    ```
    http://127.0.0.1:5000
    ```
  </Step>
</Steps>

## Alternative: Python Installation

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

### Prerequisites

<Steps>
  <Step title="Install Python">
    Download and install [Python 3.10 or higher](https://www.python.org/downloads/).

    <Warning>
      During installation, make sure to check **"Add Python to PATH"**.
    </Warning>
  </Step>

  <Step title="Verify installation">
    Open Command Prompt or PowerShell:

    ```powershell theme={null}
    python --version
    pip --version
    ```
  </Step>
</Steps>

### Installation

<Steps>
  <Step title="Install changedetection.io">
    ```powershell theme={null}
    pip install changedetection.io
    ```
  </Step>

  <Step title="Create a data directory">
    ```powershell theme={null}
    mkdir C:\changedetection-data
    ```
  </Step>

  <Step title="Run the application">
    ```powershell theme={null}
    changedetection.io -d C:\changedetection-data -p 5000
    ```

    Or with Python module syntax:

    ```powershell theme={null}
    python -m changedetectionio -d C:\changedetection-data -p 5000
    ```
  </Step>

  <Step title="Access the web interface">
    Open your browser and navigate to:

    ```
    http://127.0.0.1:5000
    ```
  </Step>
</Steps>

## 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](https://stedolan.github.io/jq/download/) and add it to your PATH

### Playwright May Not Work

Playwright installation on Windows can be problematic. If it fails:

```powershell theme={null}
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:

```powershell theme={null}
# 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)

<Steps>
  <Step title="Download NSSM">
    Download [NSSM](https://nssm.cc/download) and extract it.
  </Step>

  <Step title="Install the service">
    Open Command Prompt as Administrator:

    ```cmd theme={null}
    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`
  </Step>

  <Step title="Start the service">
    ```cmd theme={null}
    nssm start changedetection
    ```
  </Step>
</Steps>

### Using Task Scheduler

<Steps>
  <Step title="Create a batch file">
    Create `start-changedetection.bat`:

    ```batch start-changedetection.bat theme={null}
    @echo off
    cd C:\changedetection-data
    C:\Python310\Scripts\changedetection.io.exe -d C:\changedetection-data -p 5000
    ```
  </Step>

  <Step title="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"
  </Step>
</Steps>

## Docker Compose on Windows

If you have Docker Desktop installed:

<Steps>
  <Step title="Create docker-compose.yml">
    Create a file named `docker-compose.yml`:

    ```yaml docker-compose.yml theme={null}
    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:
    ```
  </Step>

  <Step title="Start the service">
    In the same directory:

    ```powershell theme={null}
    docker compose up -d
    ```
  </Step>
</Steps>

## Environment Variables on Windows

Set environment variables in PowerShell:

```powershell theme={null}
# 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:

```powershell theme={null}
# 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

```powershell theme={null}
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

```powershell theme={null}
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:

```powershell theme={null}
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:

```powershell theme={null}
changedetection.io -d C:\changedetection-data -p 8080
```

Or free port 5000:

```powershell theme={null}
# 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:

```powershell theme={null}
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:

```powershell theme={null}
changedetection.io -d C:\changedetection-data -p 5000 2>&1 | more
```

Or redirect to a log file:

```powershell theme={null}
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:

```powershell theme={null}
changedetection.io -d D:\SSD\changedetection-data -p 5000
```

### Reduce fetch workers

On lower-end systems, reduce concurrent fetchers:

```powershell theme={null}
$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

<CardGroup cols={2}>
  <Card title="Configuration" icon="gear" href="/configuration/environment-variables">
    Configure notifications and features
  </Card>

  <Card title="Docker Installation" icon="docker" href="/installation/docker">
    Learn more about Docker method
  </Card>
</CardGroup>

## Additional Resources

For more detailed Windows-specific information, see the [official wiki](https://github.com/dgtlmoon/changedetection.io/wiki/Microsoft-Windows).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.