Server Configuration
HTTP server listening portExample:Can also be set with the
-p command-line option.Host address to bind the server toValues:Can also be set with the
0.0.0.0- Listen on all IPv4 interfaces (default)::- Listen on all IPv6 interfaces127.0.0.1- Localhost only (more secure)
-h command-line option.Base URL of your changedetection.io installationImportant: Required for notification links to work correctlyExample:Used in notification templates as
{{ base_url }}.Enable proxy_pass/reverse proxy header supportWhen enabled, respects these headers:Docker Compose:See Running behind a reverse proxy for more details.
X-Forwarded-For- Client IPX-Forwarded-Proto- Original protocol (http/https)X-Forwarded-Host- Original hostnameX-Forwarded-Port- Original portX-Forwarded-Prefix- URL prefix (e.g.,/app)
SSL/TLS Configuration
Path to SSL certificate fileExample:Enables HTTPS mode when both
SSL_CERT_FILE and SSL_PRIVKEY_FILE are set.Path to SSL private key fileExample:
Logging Configuration
Log verbosity levelValues (most to least verbose):Can also be set with the
TRACE- Most detailed, includes all internal operationsDEBUG- Detailed debugging information (default)INFO- General informational messagesSUCCESS- Success confirmations onlyWARNING- Warning messagesERROR- Error messagesCRITICAL- Critical errors only
-l command-line option.Browser Configuration
Playwright/Chrome browser service URLFormat: Recommended: Use Sockpuppetbrowser for best performance and screenshot support.
ws://hostname:port or wss://hostname:portExample with Sockpuppetbrowser:WebDriver/Selenium URL (deprecated, use Playwright instead)Format:
http://hostname:port/wd/hubExample:Proxy Configuration
HTTP proxy for non-SSL requestsFormats:
http://proxy.example.com:8080socks5://proxy.example.com:1080socks5://user:pass@proxy.example.com:1080socks5h://proxy.example.com:1080(DNS through proxy)
HTTPS proxy for SSL requestsFormats: Same as
HTTP_PROXYExample:Comma-separated list of hosts to exclude from proxyingExample:Common use: Exclude notification services from proxying to avoid rate limits.
Performance Configuration
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
Absolute minimum seconds between rechecksExample:Overrides any watch-level minimum. Set to
0 to disable.Maximum retry attempts for network requestsExample:Retries on connection timeouts, read timeouts, and connection resets (not HTTP status codes).
Screenshot Configuration
Maximum screenshot height in pixelsExample:Warning: Higher values increase RAM usage significantly.
JPEG screenshot quality (1-100)Example:Higher quality = larger files. PNG screenshots always use quality 100.
Security Configuration
Hide Referer header when users click outgoing linksExample:Sets
Referrer-Policy: same-origin to prevent monitored websites from seeing your changedetection.io hostname.Allow monitoring local files with file:// URIsExample:Security Warning: Only enable if you understand the security implications of allowing file system access.
Allow fetching from private/reserved IP addressesExample:Security Warning: Enabling this allows SSRF attacks. Only enable in trusted networks.
Plugin Configuration
Space-separated list of additional Python packages to installExample:See changedetection.io plugins for available plugins.
Privacy Configuration
Disable telemetry and version checkingExample:For complete privacy if you don’t want to use the version check service.
Localization Configuration
Text processing localeExample:UTF-8 should cover 99.99% of cases.
Testing Configuration
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:Environment Variable Priority
When both environment variables and command-line options are set:- Command-line options take highest priority
- Environment variables are used if no CLI option is set
- Default values are used if neither is set
Troubleshooting
Variables Not Taking Effect
- Check Docker Compose syntax: Ensure proper YAML formatting
- Restart container:
docker compose restart changedetection - Check logs:
docker logs changedetectionfor parsing errors - Verify environment:
docker exec changedetection env | grep VARIABLE_NAME
SSL Not Working
- Verify both
SSL_CERT_FILEandSSL_PRIVKEY_FILEare set - Check certificate files are mounted correctly
- Ensure files are readable by the container user
- Check logs for SSL initialization messages
Playwright Not Connecting
- Verify
PLAYWRIGHT_DRIVER_URLformat:ws://hostname:port - Check browser container is running:
docker ps - Test connectivity:
docker exec changedetection curl -v ws://browser-sockpuppet-chrome:3000 - Check firewall/network policies
Related Documentation
- Proxy Setup - Detailed proxy configuration
- Notifications Setup - BASE_URL usage in notifications
- Docker Compose Reference - Official docker-compose.yml