Skip to main content
Configure changedetection.io using environment variables. Set these in your Docker Compose file, shell environment, or container orchestration platform.

Server Configuration

integer
default:"5000"
HTTP server listening portExample:
Can also be set with the -p command-line option.
string
default:"0.0.0.0"
Host address to bind the server toValues:
  • 0.0.0.0 - Listen on all IPv4 interfaces (default)
  • :: - Listen on all IPv6 interfaces
  • 127.0.0.1 - Localhost only (more secure)
Example:
Can also be set with the -h command-line option.
string
Base URL of your changedetection.io installationImportant: Required for notification links to work correctlyExample:
Used in notification templates as {{ base_url }}.
boolean
default:"false"
Enable proxy_pass/reverse proxy header supportWhen enabled, respects these headers:
  • X-Forwarded-For - Client IP
  • X-Forwarded-Proto - Original protocol (http/https)
  • X-Forwarded-Host - Original hostname
  • X-Forwarded-Port - Original port
  • X-Forwarded-Prefix - URL prefix (e.g., /app)
Example Nginx configuration:
Docker Compose:
See Running behind a reverse proxy for more details.

SSL/TLS Configuration

string
default:"cert.pem"
Path to SSL certificate fileExample:
Enables HTTPS mode when both SSL_CERT_FILE and SSL_PRIVKEY_FILE are set.
string
default:"privkey.pem"
Path to SSL private key fileExample:

Logging Configuration

string
default:"DEBUG"
Log verbosity levelValues (most to least verbose):
  • TRACE - Most detailed, includes all internal operations
  • DEBUG - Detailed debugging information (default)
  • INFO - General informational messages
  • SUCCESS - Success confirmations only
  • WARNING - Warning messages
  • ERROR - Error messages
  • CRITICAL - Critical errors only
Example:
Can also be set with the -l command-line option.

Browser Configuration

string
Playwright/Chrome browser service URLFormat: ws://hostname:port or wss://hostname:portExample with Sockpuppetbrowser:
Recommended: Use Sockpuppetbrowser for best performance and screenshot support.
string
WebDriver/Selenium URL (deprecated, use Playwright instead)Format: http://hostname:port/wd/hubExample:
WebDriver is deprecated. Does not support full-page screenshots or proper status code reporting. Use PLAYWRIGHT_DRIVER_URL instead.

Proxy Configuration

string
HTTP proxy for non-SSL requestsFormats:
  • http://proxy.example.com:8080
  • socks5://proxy.example.com:1080
  • socks5://user:pass@proxy.example.com:1080
  • socks5h://proxy.example.com:1080 (DNS through proxy)
Example:
string
HTTPS proxy for SSL requestsFormats: Same as HTTP_PROXYExample:
string
Comma-separated list of hosts to exclude from proxyingExample:
Common use: Exclude notification services from proxying to avoid rate limits.

Performance Configuration

integer
default:"10"
Number of concurrent fetcher workersExample:
Recommendations:
  • Increase for faster parallel checking (more CPU/memory)
  • Decrease for resource-constrained environments
  • Default of 10 works well for most setups
integer
default:"3"
Absolute minimum seconds between rechecksExample:
Overrides any watch-level minimum. Set to 0 to disable.
integer
default:"6"
Maximum retry attempts for network requestsExample:
Retries on connection timeouts, read timeouts, and connection resets (not HTTP status codes).

Screenshot Configuration

integer
default:"16000"
Maximum screenshot height in pixelsExample:
Warning: Higher values increase RAM usage significantly.
integer
default:"72"
JPEG screenshot quality (1-100)Example:
Higher quality = larger files. PNG screenshots always use quality 100.

Security Configuration

boolean
default:"false"
Hide Referer header when users click outgoing linksExample:
Sets Referrer-Policy: same-origin to prevent monitored websites from seeing your changedetection.io hostname.
boolean
default:"false"
Allow monitoring local files with file:// URIsExample:
Security Warning: Only enable if you understand the security implications of allowing file system access.
boolean
default:"false"
Allow fetching from private/reserved IP addressesExample:
Security Warning: Enabling this allows SSRF attacks. Only enable in trusted networks.

Plugin Configuration

string
Space-separated list of additional Python packages to installExample:
See changedetection.io plugins for available plugins.

Privacy Configuration

boolean
default:"false"
Disable telemetry and version checkingExample:
For complete privacy if you don’t want to use the version check service.

Localization Configuration

string
Timezone for scheduling and timestampsFormat: TZ database nameExamples:
string
default:"en_US.UTF-8"
Text processing localeExample:
UTF-8 should cover 99.99% of cases.

Testing Configuration

boolean
default:"false"
Exit cleanly after datastore initialization (for CI/CD testing)Example:
Used in automated upgrade tests.

Complete Docker Compose Example

Command-Line Options

Some settings can also be configured via command-line arguments:
Example:

Environment Variable Priority

When both environment variables and command-line options are set:
  1. Command-line options take highest priority
  2. Environment variables are used if no CLI option is set
  3. Default values are used if neither is set
Example:

Troubleshooting

Variables Not Taking Effect

  1. Check Docker Compose syntax: Ensure proper YAML formatting
  2. Restart container: docker compose restart changedetection
  3. Check logs: docker logs changedetection for parsing errors
  4. Verify environment: docker exec changedetection env | grep VARIABLE_NAME

SSL Not Working

  1. Verify both SSL_CERT_FILE and SSL_PRIVKEY_FILE are set
  2. Check certificate files are mounted correctly
  3. Ensure files are readable by the container user
  4. Check logs for SSL initialization messages

Playwright Not Connecting

  1. Verify PLAYWRIGHT_DRIVER_URL format: ws://hostname:port
  2. Check browser container is running: docker ps
  3. Test connectivity: docker exec changedetection curl -v ws://browser-sockpuppet-chrome:3000
  4. Check firewall/network policies