{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "CHROME_ENABLED": { "type": "boolean", "default": true, "x-aliases": ["USE_CHROME"], "description": "Enable Chrome/Chromium browser integration for archiving" }, "CHROME_BINARY": { "type": "string", "default": "chromium", "x-aliases": ["CHROMIUM_BINARY", "GOOGLE_CHROME_BINARY"], "description": "Path to Chrome/Chromium binary" }, "CHROME_NODE_BINARY": { "type": "string", "default": "node", "x-fallback": "NODE_BINARY", "description": "Path to Node.js binary (for Puppeteer)" }, "CHROME_TIMEOUT": { "type": "integer", "default": 60, "minimum": 5, "x-fallback": "TIMEOUT", "description": "Timeout for Chrome operations in seconds" }, "CHROME_HEADLESS": { "type": "boolean", "default": true, "description": "Run Chrome in headless mode" }, "CHROME_SANDBOX": { "type": "boolean", "default": true, "description": "Enable Chrome sandbox (disable in Docker with --no-sandbox)" }, "CHROME_RESOLUTION": { "type": "string", "default": "1440,2000", "pattern": "^\\d+,\\d+$", "x-fallback": "RESOLUTION", "description": "Browser viewport resolution (width,height)" }, "CHROME_USER_DATA_DIR": { "type": "string", "default": "", "description": "Path to Chrome user data directory for persistent sessions (derived from ACTIVE_PERSONA if not set)" }, "CHROME_USER_AGENT": { "type": "string", "default": "", "x-fallback": "USER_AGENT", "description": "User agent string for Chrome" }, "CHROME_ARGS": { "type": "array", "items": {"type": "string"}, "default": [ "--no-first-run", "--no-default-browser-check", "--disable-default-apps", "--disable-sync", "--disable-infobars", "--disable-blink-features=AutomationControlled", "--disable-component-update", "--disable-domain-reliability", "--disable-breakpad", "--disable-client-side-phishing-detection", "--disable-hang-monitor", "--disable-speech-synthesis-api", "--disable-speech-api", "--disable-print-preview", "--disable-notifications", "--disable-desktop-notifications", "--disable-popup-blocking", "--disable-prompt-on-repost", "--disable-external-intent-requests", "--disable-session-crashed-bubble", "--disable-search-engine-choice-screen", "--disable-datasaver-prompt", "--ash-no-nudges", "--hide-crash-restore-bubble", "--suppress-message-center-popups", "--noerrdialogs", "--no-pings", "--silent-debugger-extension-api", "--deny-permission-prompts", "--safebrowsing-disable-auto-update", "--metrics-recording-only", "--password-store=basic", "--use-mock-keychain", "--disable-cookie-encryption", "--font-render-hinting=none", "--force-color-profile=srgb", "--disable-partial-raster", "--disable-skia-runtime-opts", "--disable-2d-canvas-clip-aa", "--enable-webgl", "--hide-scrollbars", "--export-tagged-pdf", "--generate-pdf-document-outline", "--disable-lazy-loading", "--disable-renderer-backgrounding", "--disable-background-networking", "--disable-background-timer-throttling", "--disable-backgrounding-occluded-windows", "--disable-ipc-flooding-protection", "--disable-extensions-http-throttling", "--disable-field-trial-config", "--disable-back-forward-cache", "--autoplay-policy=no-user-gesture-required", "--disable-gesture-requirement-for-media-playback", "--lang=en-US,en;q=0.9", "--log-level=2", "--enable-logging=stderr" ], "x-aliases": ["CHROME_DEFAULT_ARGS"], "description": "Default Chrome command-line arguments (static flags only, dynamic args like --user-data-dir are added at runtime)" }, "CHROME_ARGS_EXTRA": { "type": "array", "items": {"type": "string"}, "default": [], "x-aliases": ["CHROME_EXTRA_ARGS"], "description": "Extra arguments to append to Chrome command (for user customization)" }, "CHROME_PAGELOAD_TIMEOUT": { "type": "integer", "default": 60, "minimum": 5, "x-fallback": "CHROME_TIMEOUT", "description": "Timeout for page navigation/load in seconds" }, "CHROME_WAIT_FOR": { "type": "string", "default": "networkidle2", "enum": ["domcontentloaded", "load", "networkidle0", "networkidle2"], "description": "Page load completion condition (domcontentloaded, load, networkidle0, networkidle2)" }, "CHROME_DELAY_AFTER_LOAD": { "type": "number", "default": 0, "minimum": 0, "description": "Extra delay in seconds after page load completes before archiving (useful for JS-heavy SPAs)" }, "CHROME_CHECK_SSL_VALIDITY": { "type": "boolean", "default": true, "x-fallback": "CHECK_SSL_VALIDITY", "description": "Whether to verify SSL certificates (disable for self-signed certs)" } } }