2026-07-26 11:37:24 +02:00
|
|
|
# API
|
|
|
|
|
# HTTP API port.
|
2026-07-05 18:06:12 +02:00
|
|
|
PORT=8191
|
2026-05-31 11:45:00 +02:00
|
|
|
|
2026-07-26 11:37:24 +02:00
|
|
|
# Browser pool
|
|
|
|
|
# Number of warm browser instances.
|
|
|
|
|
BROWSER_POOL_SIZE=1
|
|
|
|
|
# Time to wait for a free browser before rejecting a request.
|
|
|
|
|
BROWSER_ACQUIRE_TIMEOUT_MS=15000
|
|
|
|
|
# Recycle a browser after this many temporary challenge contexts. Set 0 to disable.
|
|
|
|
|
BROWSER_RECYCLE_AFTER_CONTEXTS=8
|
|
|
|
|
# Maximum Firefox content processes per browser.
|
|
|
|
|
BROWSER_CONTENT_PROCESSES=2
|
2026-07-27 02:40:41 +02:00
|
|
|
# Grace period after a request timeout before a checked-out browser is reclaimed.
|
|
|
|
|
BROWSER_STALL_TIMEOUT_MS=180000
|
|
|
|
|
# Maximum time to wait while closing a wedged browser or context.
|
|
|
|
|
BROWSER_CLOSE_TIMEOUT_MS=10000
|
|
|
|
|
# Maximum time to wait for a browser launch.
|
|
|
|
|
BROWSER_LAUNCH_TIMEOUT_MS=90000
|
2026-07-26 11:37:24 +02:00
|
|
|
# Optional Chrome executable override.
|
2026-05-31 11:45:00 +02:00
|
|
|
CHROME_EXECUTABLE=
|
|
|
|
|
|
2026-07-26 11:37:24 +02:00
|
|
|
# Sessions
|
|
|
|
|
# Redis stores solved cookies and browser sessions.
|
|
|
|
|
REDIS_URL=redis://localhost:6379
|
|
|
|
|
# Lifetime of cached sessions in seconds.
|
|
|
|
|
SESSION_TTL_SECONDS=3600
|
|
|
|
|
|
|
|
|
|
# Upstream proxies
|
2026-07-26 16:37:28 +02:00
|
|
|
# Tier 3 datacenter proxy: HTTP, authenticated HTTP, or SOCKS5.
|
|
|
|
|
# Examples:
|
|
|
|
|
# PROXY_URL=http://proxy.example.com:8080
|
|
|
|
|
# PROXY_URL=http://user:pass@proxy.example.com:8080
|
|
|
|
|
# PROXY_URL=socks5://proxy.example.com:1080
|
|
|
|
|
# Separate multiple endpoints with commas to create a pool.
|
2026-07-26 11:37:24 +02:00
|
|
|
PROXY_URL=
|
|
|
|
|
# Optional file with one proxy URL per line.
|
|
|
|
|
PROXY_LIST_FILE=
|
2026-07-26 16:37:28 +02:00
|
|
|
# Tier 4 residential proxy. Uses the same URL and pool formats.
|
2026-07-27 03:27:57 +02:00
|
|
|
# Examples:
|
|
|
|
|
# RESIDENTIAL_PROXY_URL=http://user:pass@residential.example.com:8080
|
|
|
|
|
# RESIDENTIAL_PROXY_URL=socks5://residential.example.com:1080
|
2026-07-26 11:37:24 +02:00
|
|
|
RESIDENTIAL_PROXY_URL=
|
|
|
|
|
# Optional file with one residential proxy URL per line.
|
|
|
|
|
RESIDENTIAL_PROXY_LIST_FILE=
|
|
|
|
|
|
|
|
|
|
# HTTP/HTTPS challenge-bypassing proxy
|
|
|
|
|
# Enables the general proxy listener.
|
|
|
|
|
MITM_PROXY_ENABLED=false
|
|
|
|
|
# Proxy address and port. Use 127.0.0.1 for local-only access.
|
|
|
|
|
MITM_PROXY_HOST=0.0.0.0
|
|
|
|
|
MITM_PROXY_PORT=8192
|
|
|
|
|
# Persistent directory for the generated CA certificate and key.
|
|
|
|
|
MITM_PROXY_CA_DIR=/data/proxy-ca
|
|
|
|
|
# Highest allowed escalation tier. Leave empty to allow Tier 4.
|
|
|
|
|
MITM_PROXY_MAX_TIER=
|
|
|
|
|
# Logs proxied requests. Errors are always logged.
|
|
|
|
|
MITM_PROXY_DEBUG=false
|
|
|
|
|
|
|
|
|
|
# CAPTCHA audio
|
|
|
|
|
# Optional Whisper-compatible speech-to-text endpoint.
|
|
|
|
|
STT_URL=
|
|
|
|
|
# Optional API key sent to the speech-to-text endpoint.
|
|
|
|
|
STT_API_KEY=
|
|
|
|
|
# Optional ffmpeg executable override used for audio conversion.
|
2026-05-31 11:45:00 +02:00
|
|
|
FFMPEG_PATH=
|