| # Server configuration | |
| server: | |
| # Host address to bind the server (0.0.0.0 listens on all interfaces) | |
| host: '0.0.0.0' | |
| # Port the server listens on. In hosted environments, PORT / WEB2API_SERVER_PORT can override this. | |
| port: 9000 | |
| auth: | |
| # Leave empty to disable API key authentication. | |
| # If set, all /{type}/v1/* requests must include a matching key. | |
| # Supports a single string, comma-separated string, or YAML list. | |
| api_key: '' | |
| # Leave empty to disable the config page. | |
| # File-backed mode writes back a hashed secret; env-override mode hashes it in memory only. | |
| config_secret: '' | |
| # Maximum number of failed login attempts before locking | |
| config_login_max_failures: 5 | |
| # Duration in seconds to lock the config page after too many failed attempts | |
| config_login_lock_seconds: 600 | |
| browser: | |
| # Fixed path to fingerprint-chromium inside the container | |
| chromium_bin: '/opt/fingerprint-chromium/chrome' | |
| # Headless mode is not recommended for Claude; Xvfb virtual display is used by default | |
| headless: false | |
| # Disable sandbox inside containers to prevent Chromium startup failures due to permission restrictions | |
| no_sandbox: true | |
| # GPU is typically unavailable in container environments; explicitly disable it | |
| disable_gpu: true | |
| # GPU sandbox can also cause issues in some container environments | |
| disable_gpu_sandbox: true | |
| # Starting port number for CDP (Chrome DevTools Protocol) connections | |
| cdp_port_start: 9222 | |
| # Number of CDP ports available | |
| cdp_port_count: 20 | |
| # CDP readiness wait settings (tune for slow/cold starts in Docker) | |
| # Total wait time ≈ cdp_wait_max_attempts * cdp_wait_interval_seconds | |
| cdp_wait_max_attempts: 60 | |
| cdp_wait_interval_seconds: 2.0 | |
| # Per-attempt TCP connect timeout when probing the CDP port | |
| cdp_wait_connect_timeout_seconds: 2.0 | |
| scheduler: | |
| # Maximum number of tabs allowed to run concurrently | |
| tab_max_concurrent: 1 | |
| # Interval in seconds for browser garbage collection | |
| browser_gc_interval_seconds: 300 | |
| # Seconds of inactivity before a tab is considered idle | |
| tab_idle_seconds: 900 | |
| # Number of browser instances to keep resident (pre-warmed) | |
| resident_browser_count: 1 | |
| claude: | |
| # URL to open when starting Claude (leave empty for default) | |
| start_url: '' | |
| # Custom API base URL (leave empty to use the default endpoint) | |
| api_base: '' | |
| # Model name mapping: public model id -> Claude upstream model id | |
| # Defaults are defined in ClaudePlugin.DEFAULT_MODEL_MAPPING. | |
| # Override or extend here as needed. | |
| model_mapping: {} | |
| mock: | |
| # Port for the mock server | |
| port: 8002 | |