one-click-apps/public/v4/apps/browserless.yml

166 lines
9.2 KiB
YAML

captainVersion: 4
services:
$$cap_appname:
documentation: https://docs.browserless.io/docs/docker-quickstart.html
image: browserless/chrome:$$cap_browserless_version
restart: always
volumes:
- $$cap_appname-workspace:/downloads
- $$cap_appname-metrics:/metrics
- $$cap_appname-user-data:/user-data
environment:
DEMO_MODE: $$cap_demo_mode
ENABLE_DEBUGGER: $$cap_enable_debugger
MAX_CONCURRENT_SESSIONS: $$cap_max_concurrent_sessions
CONNECTION_TIMEOUT: $$cap_connection_timeout
MAX_QUEUE_LENGTH: $$cap_max_queue_length
WORKSPACE_DIR: $$cap_workspace_dir
WORKSPACE_DELETE_EXPIRED: $$cap_workspace_delete_expired
WORKSPACE_EXPIRE_DAYS: $$cap_workspace_expire_days
DEFAULT_USER_DATA_DIR: $$cap_default_user_data_dir
METRICS_JSON_PATH: $$cap_metrics_json_path
DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR: $$cap_disable_auto_set_download_behavior
DEFAULT_BLOCK_ADS: $$cap_default_block_ads
ENABLE_API_GET: $$cap_enable_api_get
TOKEN: $$cap_token
ENABLE_CORS: $$cap_enable_cors
ENABLE_XVBF: $$cap_enable_xvbf
EXIT_ON_HEALTH_FAILURE: $$cap_exit_on_health_failure
DEFAULT_IGNORE_HTTPS_ERRORS: $$cap_default_ignore_https_errors
DEFAULT_IGNORE_DEFAULT_ARGS: $$cap_default_ignore_default_args
DISABLED_FEATURES: $$cap_disabled_features
PREBOOT_CHROME: $$cap_preboot_chrome
KEEP_ALIVE: $$cap_keep_alive
CHROME_REFRESH_TIME: $$cap_chrome_refresh_time
FUNCTION_ENABLE_INCOGNITO_MODE: $$cap_function_enable_incognito_mode
caproverExtra:
containerHttpPort: '3000'
caproverOneClickApp:
variables:
- id: $$cap_browserless_version
label: Browserless Version
defaultValue: 1-chrome-stable
description: Browserless Image Version
validRegex: /^([^\s^\/])+$/
- id: $$cap_demo_mode
label: Demo Mode
defaultValue: 'false'
validRegex: /^(true|false)$/
description: If you want to serve the interactive debugger, but not allow it to handle puppeteer.connect calls, you can do so via the DEMO_MODE flag.
- id: $$cap_enable_debugger
label: Enable Debugger
defaultValue: 'true'
validRegex: /^(true|false)$/
description: If you want to disable the debugger (and all accompnaying HTML) you can set the ENABLE_DEBUGGER to false to only allow puppeteer.connect calls to succeed.
- id: $$cap_max_concurrent_sessions
label: Max Concurrent Sessions
defaultValue: 5
description: Since running Chrome can be rather resource intensive you'll probably want to limit the number of concurrent sessions. This is, by default, set to 5 when not specified. Once the limit is reached then queueing begins to take place and requests will wait until more workers are ready.
- id: $$cap_connection_timeout
label: Connection Timeout
defaultValue: 30000
description: Connection timeout is a parameter that sets how long any session can run for. This is in place to prevent scripts that don't cleanup properly, or run into errors tha cause them to hang. The value of which can be set in milliseconds, and defaults to 30000, or 30 seconds.
- id: $$cap_max_queue_length
label: Max Queue Length
defaultValue: 5
description: This value determines how many items in the queue are allowed before requests are issued a 429 response code and closed.
- id: $$cap_workspace_dir
label: workspace location
defaultValue: /downloads
description: Defining a workspace location
- id: $$cap_workspace_delete_expired
label: Deleting workspace files automatically
defaultValue: 'false'
validRegex: /^(true|false)$/
description: When downloads from Chrome are larger, it's easy for the docker image to fill it's disk-space if you forget to periodically delete files.
- id: $$cap_workspace_expire_days
label: time to delete workspace files
defaultValue: 30
description: When WORKSPACE_DELETE_EXPIRED is true, browserless attempts to delete files older than 30 days in the workspace directory.
- id: $$cap_default_user_data_dir
label: User Data Dir
defaultValue: /user-data
description: Sets a default directory to cache user data to (cookies, local-storage and more).
- id: $$cap_metrics_json_path
label: Persisting Metrics
defaultValue: /metrics/metrics.json
description: browserless captures metrics while it's running, and exposes them via the /metrics endpoint.
- id: $$cap_disable_auto_set_download_behavior
label: Disable download behavior
defaultValue: 'false'
validRegex: /^(true|false)$/
description: By default, browserless tells chromium to use a special directory in /tmp for storing files. If you want opt-out of this behavior, set to true
- id: $$cap_default_block_ads
label: Block Ads
defaultValue: 'false'
validRegex: /^(true|false)$/
description: Starts all sessions with the ad-blocker already running
- id: $$cap_enable_api_get
label: Enable API GET
defaultValue: 'true'
validRegex: /^(true|false)$/
description: Allows for enabling an expiremental GET-style operation, as opposed to POSTing bodies of code to run on our APIs.
- id: $$cap_token
label: Token
defaultValue: $$cap_gen_random_hex(32)
validRegex: /^([^\s^\/])+$/
description: If you're exposing your instance to the world, but don't want anyone to use it, you can optionally apply a TOKEN param that will restrict calls without a token query-string parameter.
- id: $$cap_enable_cors
label: Enable CORS
defaultValue: 'true'
validRegex: /^(true|false)$/
description: You can enable cross-origin-resource-sharing with browserless
- id: $$cap_enable_xvbf
label: Enable XVFB
defaultValue: 'true'
validRegex: /^(true|false)$/
description: in some hosting environments it's not possible to write to the appropriate folders to support XVFB and you should set this parameter to false.
- id: $$cap_exit_on_health_failure
label: Exit on health failure
defaultValue: 'true'
validRegex: /^(true|false)$/
description: In order for browserless to restart on health-failure checks, you'll have to set to true.
- id: $$cap_default_ignore_https_errors
label: Ignore HTTPS errors
defaultValue: 'true'
validRegex: /^(true|false)$/
description: Tells browserless to, by default, ignore or not ignore HTTPS errors on sites.
- id: $$cap_default_ignore_default_args
label: Ignore Default Args
defaultValue: 'false'
validRegex: /^(true|false)$/
description: When set this will override any default arguments set by browserless to Chrome's launch arguments
- id: $$cap_disabled_features
label: Disable Routes
defaultValue: ''
description: Allows for disabling routes by supplying a list of routes to disable
- id: $$cap_preboot_chrome
label: Pre-booting Chrome
defaultValue: 'false'
validRegex: /^(true|false)$/
description: You can, optionally, pre-boot Chrome and keep it in a pool of instances (determined by MAX_CONCURRENT_SESSIONS) in order to cut-down on the boot time.
- id: $$cap_keep_alive
label: Keeping Chrome Alive
defaultValue: 'false'
validRegex: /^(true|false)$/
description: When the PREBOOT_CHROME flag is set, you can optionally keep Chrome "alive" after sessions are complete. This allows you to re-use Chrome instances without having to start and stop them (making for much faster execution).
- id: $$cap_chrome_refresh_time
label: Chrome Refresh Time
defaultValue: 3600000
description: When both PREBOOT_CHROME and KEEP_ALIVE are true browserless keeps track of how long Chrome has been running, and will attempt to close it after a certain period.
- id: $$cap_function_enable_incognito_mode
label: Function Incognito Mode
defaultValue: 'false'
validRegex: /^(true|false)$/
description: When set, and PREBOOT_CHROME and KEEP_ALIVE are set, allows for generating a fresh page (incognito page) from a re-used browser.
instructions:
start: >-
Browserless Web is communication between web applications without the need for a web browser.
end: >-
Your service is available at http://$$cap_appname.$$cap_root_domain?token=$$cap_token
Atention: you need activate Websocket Support!
displayName: Browserless
isOfficial: true
description: Browserless Web is communication between web applications without the need for a web browser.
documentation: https://docs.browserless.io/docs/docker.html