config.json 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "type": "object",
  4. "additionalProperties": false,
  5. "properties": {
  6. "CHROME_ENABLED": {
  7. "type": "boolean",
  8. "default": true,
  9. "x-aliases": ["USE_CHROME"],
  10. "description": "Enable Chromium browser integration for archiving"
  11. },
  12. "CHROME_BINARY": {
  13. "type": "string",
  14. "default": "chromium",
  15. "x-aliases": ["CHROMIUM_BINARY", "GOOGLE_CHROME_BINARY"],
  16. "description": "Path to Chromium binary"
  17. },
  18. "CHROME_NODE_BINARY": {
  19. "type": "string",
  20. "default": "node",
  21. "x-fallback": "NODE_BINARY",
  22. "description": "Path to Node.js binary (for Puppeteer)"
  23. },
  24. "CHROME_TIMEOUT": {
  25. "type": "integer",
  26. "default": 60,
  27. "minimum": 5,
  28. "x-fallback": "TIMEOUT",
  29. "description": "Timeout for Chrome operations in seconds"
  30. },
  31. "CHROME_HEADLESS": {
  32. "type": "boolean",
  33. "default": true,
  34. "description": "Run Chrome in headless mode"
  35. },
  36. "CHROME_SANDBOX": {
  37. "type": "boolean",
  38. "default": true,
  39. "description": "Enable Chrome sandbox (disable in Docker with --no-sandbox)"
  40. },
  41. "CHROME_RESOLUTION": {
  42. "type": "string",
  43. "default": "1440,2000",
  44. "pattern": "^\\d+,\\d+$",
  45. "x-fallback": "RESOLUTION",
  46. "description": "Browser viewport resolution (width,height)"
  47. },
  48. "CHROME_USER_DATA_DIR": {
  49. "type": "string",
  50. "default": "",
  51. "description": "Path to Chrome user data directory for persistent sessions (derived from ACTIVE_PERSONA if not set)"
  52. },
  53. "CHROME_USER_AGENT": {
  54. "type": "string",
  55. "default": "",
  56. "x-fallback": "USER_AGENT",
  57. "description": "User agent string for Chrome"
  58. },
  59. "CHROME_ARGS": {
  60. "type": "array",
  61. "items": {"type": "string"},
  62. "default": [
  63. "--no-first-run",
  64. "--no-default-browser-check",
  65. "--disable-default-apps",
  66. "--disable-sync",
  67. "--disable-infobars",
  68. "--disable-blink-features=AutomationControlled",
  69. "--disable-component-update",
  70. "--disable-domain-reliability",
  71. "--disable-breakpad",
  72. "--disable-client-side-phishing-detection",
  73. "--disable-hang-monitor",
  74. "--disable-speech-synthesis-api",
  75. "--disable-speech-api",
  76. "--disable-print-preview",
  77. "--disable-notifications",
  78. "--disable-desktop-notifications",
  79. "--disable-popup-blocking",
  80. "--disable-prompt-on-repost",
  81. "--disable-external-intent-requests",
  82. "--disable-session-crashed-bubble",
  83. "--disable-search-engine-choice-screen",
  84. "--disable-datasaver-prompt",
  85. "--ash-no-nudges",
  86. "--hide-crash-restore-bubble",
  87. "--suppress-message-center-popups",
  88. "--noerrdialogs",
  89. "--no-pings",
  90. "--silent-debugger-extension-api",
  91. "--deny-permission-prompts",
  92. "--safebrowsing-disable-auto-update",
  93. "--metrics-recording-only",
  94. "--password-store=basic",
  95. "--use-mock-keychain",
  96. "--disable-cookie-encryption",
  97. "--font-render-hinting=none",
  98. "--force-color-profile=srgb",
  99. "--disable-partial-raster",
  100. "--disable-skia-runtime-opts",
  101. "--disable-2d-canvas-clip-aa",
  102. "--enable-webgl",
  103. "--hide-scrollbars",
  104. "--export-tagged-pdf",
  105. "--generate-pdf-document-outline",
  106. "--disable-lazy-loading",
  107. "--disable-renderer-backgrounding",
  108. "--disable-background-networking",
  109. "--disable-background-timer-throttling",
  110. "--disable-backgrounding-occluded-windows",
  111. "--disable-ipc-flooding-protection",
  112. "--disable-extensions-http-throttling",
  113. "--disable-field-trial-config",
  114. "--disable-back-forward-cache",
  115. "--autoplay-policy=no-user-gesture-required",
  116. "--disable-gesture-requirement-for-media-playback",
  117. "--lang=en-US,en;q=0.9",
  118. "--log-level=2",
  119. "--enable-logging=stderr"
  120. ],
  121. "x-aliases": ["CHROME_DEFAULT_ARGS"],
  122. "description": "Default Chrome command-line arguments (static flags only, dynamic args like --user-data-dir are added at runtime)"
  123. },
  124. "CHROME_ARGS_EXTRA": {
  125. "type": "array",
  126. "items": {"type": "string"},
  127. "default": [],
  128. "x-aliases": ["CHROME_EXTRA_ARGS"],
  129. "description": "Extra arguments to append to Chrome command (for user customization)"
  130. },
  131. "CHROME_PAGELOAD_TIMEOUT": {
  132. "type": "integer",
  133. "default": 60,
  134. "minimum": 5,
  135. "x-fallback": "CHROME_TIMEOUT",
  136. "description": "Timeout for page navigation/load in seconds"
  137. },
  138. "CHROME_WAIT_FOR": {
  139. "type": "string",
  140. "default": "networkidle2",
  141. "enum": ["domcontentloaded", "load", "networkidle0", "networkidle2"],
  142. "description": "Page load completion condition (domcontentloaded, load, networkidle0, networkidle2)"
  143. },
  144. "CHROME_DELAY_AFTER_LOAD": {
  145. "type": "number",
  146. "default": 0,
  147. "minimum": 0,
  148. "description": "Extra delay in seconds after page load completes before archiving (useful for JS-heavy SPAs)"
  149. },
  150. "CHROME_CHECK_SSL_VALIDITY": {
  151. "type": "boolean",
  152. "default": true,
  153. "x-fallback": "CHECK_SSL_VALIDITY",
  154. "description": "Whether to verify SSL certificates (disable for self-signed certs)"
  155. }
  156. }
  157. }