ENV_VARIABLES.md

July 1, 2026 ยท View on GitHub

ENV variableDefault valueDescriptionCLI option represent
SE_SCREEN_WIDTH1920Use in Node to set the screen width
SE_SCREEN_HEIGHT1080Use in Node to set the screen height
SE_VIDEO_FILE_NAMEautoUse in function video recording to set the output file name. Set auto for dynamic file name relying on test metadata
SE_FRAME_RATE15Set the frame rate for FFmpeg in video recording
SE_CODEClibx264Set the codec for FFmpeg in video recording
SE_PRESET-preset ultrafastSet the preset for FFmpeg in video recording
SE_VIDEO_UPLOAD_ENABLEDfalseDeprecated in event-driven mode (video_service.py); upload enablement is now derived from non-empty SE_UPLOAD_DESTINATION_PREFIX
SE_VIDEO_INTERNAL_UPLOADtrueEnable video upload using Rclone in the same recorder container
SE_UPLOAD_DESTINATION_PREFIXRemote name and destination path to upload
SE_UPLOAD_PIPE_FILE_NAMESet the pipe file name for video upload to consume
SE_SERVER_PROTOCOLhttpProtocol for communication between components
SE_VIDEO_POLL_INTERVAL1
SE_VIDEO_WAIT_ATTEMPTS
SE_VIDEO_FILE_READY_WAIT_ATTEMPTS
SE_VIDEO_WAIT_UPLOADER_SHUTDOWN_ATTEMPTS
SE_LOG_TIMESTAMP_FORMAT%Y-%m-%d %H:%M:%S,%3N
SE_VIDEO_RECORD_STANDALONE
SE_NODE_PORT--port
SE_ROUTER_USERNAMESet the username for basic authentication--username
SE_ROUTER_PASSWORDSet the password for basic authentication
SE_SUPERVISORD_PID_FILE/tmp/supervisord.pidDefault pid file will be created by supervisord
SE_DRAIN_AFTER_SESSION_COUNT0Drain and detach node from grid after session count exceeds--drain-after-session-count
SE_SUB_PATHA sub-path that should be considered for all user facing routes on the Hub/Router/Standalone--sub-path
SE_NODE_GRID_URLNode config, public URL of the Grid as a whole (typically the address of the Hub or the Router)--grid-url
SE_HUB_HOSTHub config, host address the Hub should listen on--host
SE_ROUTER_HOSTRouter config, host address the Router should listen on--host
SE_HUB_PORT4444Hub config, port the Hub should listen on (default 4444)--port
SE_ROUTER_PORT4444Router config, port the Router should listen on (default 4444)--port
SE_NODE_GRID_GRAPHQL_URLVideo recording config, GraphQL URL to query test metadata for dynamic file name
SE_VIDEO_FILE_NAME_TRIM_REGEX[^a-zA-Z0-9-_]Python regex to trim the file name if it is too long
SE_VIDEO_FILE_NAME_SUFFIXtrueAppend a suffix session id along with test metadata
SE_RCLONE_CONFIG
SE_UPLOAD_COMMAND
SE_UPLOAD_OPTS
SE_UPLOAD_RETAIN_LOCAL_FILE
SE_VIDEO_UPLOAD_BATCH_CHECK
SE_RCLONE_
SE_OPTSThis is used to pass any additional CLI options (which doesn't have environment variable representation) to the component. Refer to list supported options per component in documentation
SE_EVENT_BUS_HOST
SE_EVENT_BUS_PORT5557
SE_LOG_LEVELINFOLog level. Default logging level is INFO. Log levels are described here--log-level
SE_HTTP_LOGSfalse--http-logs
SE_STRUCTURED_LOGSfalse--structured-logs
SE_EXTERNAL_URL--external-url
SE_ENABLE_TLSfalse
SE_JAVA_SSL_TRUST_STORE/opt/selenium/secrets/server.jks
SE_JAVA_OPTS
SE_JAVA_SSL_TRUST_STORE_PASSWORD/opt/selenium/secrets/server.pass
SE_JAVA_DISABLE_HOSTNAME_VERIFICATIONtrue
SE_HTTPS_CERTIFICATE/opt/selenium/secrets/tls.crt--https-certificate
SE_HTTPS_PRIVATE_KEY/opt/selenium/secrets/tls.key--https-private-key
SE_ENABLE_TRACINGtrue--tracing
SE_OTEL_EXPORTER_ENDPOINT-Dotel.exporter.otlp.endpoint=
SE_OTEL_SERVICE_NAMEselenium-router-Dotel.resource.attributes=service.name=
SE_OTEL_JVM_ARGS
SE_OTEL_TRACES_EXPORTERotlp-Dotel.traces.exporter
SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLEDtrue
SE_JAVA_HTTPCLIENT_VERSIONHTTP_1_1-Dwebdriver.httpclient.version
SE_JAVA_OPTS_DEFAULT
SE_JAVA_HEAP_DUMPfalse
SE_BIND_HOSTfalse
SE_SCREEN_DEPTH24
SE_SCREEN_DPI96
SE_START_XVFBtrue
SE_START_VNCtrue
SE_START_NO_VNCtrue
SE_VNC_ULIMIT
SE_NO_VNC_PORT7900
SE_VNC_PORT5900
SE_VNC_NO_PASSWORD
SE_VNC_VIEW_ONLY
SE_VNC_PASSWORD
SE_EVENT_BUS_PUBLISH_PORT4442
SE_EVENT_BUS_SUBSCRIBE_PORT4443
SE_NODE_SESSION_TIMEOUT300--session-timeout
SE_NODE_ENABLE_MANAGED_DOWNLOADStrueThis causes the Node to auto manage files downloaded for a given session on the Node--enable-managed-downloads
SE_NODE_ENABLE_CDPEnable CDP proxying in Grid. A Grid admin can disable CDP if the network doesnot allow websockets. True by default.--enable-cdp
SE_NODE_REGISTER_PERIOD120--register-period
SE_NODE_REGISTER_CYCLE10--register-cycle
SE_NODE_HEARTBEAT_PERIOD15--heartbeat-period
SE_REGISTRATION_SECRET--registration-secret
SE_BROWSER_LEFTOVERS_PROCESSES_SECS7200
SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS1
SE_BROWSER_LEFTOVERS_INTERVAL_SECS3600
SE_DISABLE_UI--disable-ui
SE_REJECT_UNSUPPORTED_CAPSfalse--reject-unsupported-caps
SE_NEW_SESSION_THREAD_POOL_SIZE--newsession-threadpool-size
SE_SESSION_REQUEST_TIMEOUT300--session-request-timeout
SE_SESSION_RETRY_INTERVAL15--session-retry-interval
SE_HEALTHCHECK_INTERVAL120--healthcheck-interval
SE_RELAX_CHECKStrue--relax-checks
SE_SESSION_QUEUE_HOST--sessionqueue-host
SE_SESSION_QUEUE_PORT5559--sessionqueue-port
SE_VIDEO_FOLDER
SE_LOG_LISTEN_GRAPHQL
SE_NODE_PRESTOP_WAIT_STRATEGY
SE_SESSIONS_MAP_EXTERNAL_DATASTOREfalse
SE_SESSIONS_MAP_HOST--sessions-host
SE_SESSIONS_MAP_PORT5556--sessions-port
SE_DISTRIBUTOR_HOST
SE_DISTRIBUTOR_PORT5553
SE_GRID_URL--grid-url
SE_NODE_DOCKER_CONFIG_FILENAMEdocker.toml
SE_NODE_GRACEFUL_SHUTDOWN
SE_VIDEO_CONTAINER_NAME
SE_RECORD_VIDEOfalse
SE_ENABLE_BROWSER_LEFTOVERS_CLEANUPfalse
SE_NODE_MAX_SESSIONS1Set the number of maximum concurrent sessions per browser Node, by default is 1--max-sessions
SE_NODE_OVERRIDE_MAX_SESSIONSfalseBy default is false, enable this flag for setting max session take effect in browser Node--override-max-sessions
SE_OFFLINEtrueSelenium Manager offline mode, use the browser and driver pre-configured in the image
SE_NODE_BROWSER_VERSIONstableOverwrite the default browserVersion in Node stereotype. By default, it is short version of current browser installed in Node. For example 139.0
SE_NODE_PLATFORM_NAMELinuxOverwrite the default platformName in Node stereotype. By default, it is Linux
SE_SUPERVISORD_LOG_LEVELinfo
SE_SUPERVISORD_CHILD_LOG_DIR/tmp
SE_SUPERVISORD_LOG_FILE/tmp/supervisord.log
SE_SUPERVISORD_AUTO_RESTARTtrue
SE_SUPERVISORD_START_RETRIES5
SE_RECORD_AUDIOfalseFlag to enable recording the audio source (default is Pulse Audio input)
SE_AUDIO_SOURCE-f pulse -ac 2 -i defaultFFmpeg arguments to record the audio source
SE_BROWSER_BINARY_LOCATIONBrowser binary location set to Node driver configuration. This helpful in case you customize on top of official Docker image to install another browser in other path and still using GENERATE_CONFIG=true (where enforce detect-drivers = false and controlled by our config logic). By default in corresponding browser, default path would be /usr/bin/google-chrome, /usr/bin/chromium, /usr/bin/firefox, /usr/bin/microsoft-edge. Example usage: SE_BROWSER_BINARY_LOCATION=/opt/google-chrome
SE_NODE_BROWSER_NAME
SE_NODE_CONTAINER_NAMESet a unique name to identify the Node is running in which container (via session capabilities se:containerName). This is helpful when deploying Node in Kubernetes cluster, where is able to use metadata pod name set to this env variable. By default, it is the $(hostname) (a.k.a container id could be seen via docker ps)
SE_NODE_HOST
SE_NODE_RELAY_BROWSER_NAME
SE_NODE_RELAY_MAX_SESSIONS
SE_NODE_RELAY_PLATFORM_NAME
SE_NODE_RELAY_PLATFORM_VERSION
SE_NODE_RELAY_PROTOCOL_VERSION
SE_NODE_RELAY_STATUS_ENDPOINT
SE_NODE_RELAY_URL
SE_NODE_STEREOTYPECapabilities in JSON string to overwrite the default Node stereotype
SE_NODE_STEREOTYPE_EXTRAExtra capabilities in JSON string that wants to merge to the default Node stereotype. This is helpful when you want to retain the default Node stereotype and append additional capabilities. Example usage SE_NODE_STEREOTYPE_EXTRA={"myApp:version":"beta","myApp:publish":"public"}
SE_SESSIONS_MAP_EXTERNAL_HOSTNAME
SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION
SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD
SE_SESSIONS_MAP_EXTERNAL_JDBC_URL
SE_SESSIONS_MAP_EXTERNAL_JDBC_USER
SE_SESSIONS_MAP_EXTERNAL_PORT
SE_SESSIONS_MAP_EXTERNAL_SCHEME
SE_NODE_RELAY_STEREOTYPECapabilities in JSON string to overwrite the default Node relay stereotype
SE_NODE_RELAY_STEREOTYPE_EXTRAExtra capabilities in JSON string that wants to merge to the default Node relay stereotype
SE_NODE_REGISTER_SHUTDOWN_ON_FAILUREtrueIf this flag is enabled, the Node will shut down after the register period is completed. This is useful for container environments to restart and register again. If restarted multiple times, the Node container status will be CrashLoopBackOff--register-shutdown-on-failure
SE_NODE_RELAY_BROWSER_VERSION
SE_NODE_RELAY_ONLYtrue
SE_EXTRA_LIBSExtra jars to add to the classpath in server component bootstrap--ext
SE_NODE_CONNECTION_LIMIT_PER_SESSION20
SE_SUPERVISORD_UNIX_SERVER_PASSWORDsecret
SE_FFMPEG_THREADS
SE_OTEL_RESOURCE_ATTRIBUTESAdd more attributes to the OpenTelemetry resource, e.g. "service.version=1.0.0,deployment.environment=production"
SE_VIDEO_BUFSIZE
SE_VIDEO_CRF
SE_VIDEO_MAXRATE
SE_NODE_DELETE_SESSION_ON_UItrueEnable capability to support deleting session on Grid UI--delete-session-on-ui
SE_UPDATE_CHROME_COMPONENTSApplicable for node-chrome, standalone-chrome (arch linux/amd64). Update the latest version of Chrome and ChromeDriver at the beginning of the container startup. Read more: #2872
SE_DISTRIBUTOR_SLOT_SELECTORFull class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched. Switch to built-in Greedy strategy, use class name org.openqa.selenium.grid.distributor.selector.GreedySlotSelector--slot-selector
SE_EVENT_BUS_HEARTBEAT_PERIODHow often, in seconds, will the EventBus socket send heartbeats--eventbus-heartbeat-period
SE_NODE_ENABLE_BROWSERCheckout usage of SE_NODE_ENABLE_BROWSER_* in below
SE_NODE_ENABLE_BROWSER_This is used in node/standalone all browsers in one container, append suffix CHROME, FIREFOX or EDGE to disable correspoding browser in Node stereotypes. For example: SE_NODE_ENABLE_BROWSER_CHROME=false
SE_NODE_DOWN_FAILURE_THRESHOLD0Maximum number of consecutive session creation failures before the Node is marked as DOWN. This helps detect and isolate unhealthy Nodes that consistently fail to create sessions. A value of 0 (default) disables this feature, allowing unlimited retries. A value higher than zero enables this feature.--node-down-failure-threshold
SE_BIND_BUStrueWhen true, the Standalone will start the Event Bus and connect itself. Standalone also expose publishing and subscribing port for sidecar service can listen on session events.--bind-bus
SE_EVENT_BUS_IMPLEMENTATIONFull class name of non-default event bus implementation. For example: org.openqa.selenium.events.zeromq.ZeroMqEventBus--events-implementation
SE_NODE_KUBERNETES_CONFIG_FILENAMEkubernetes.tomlA separate TOML config file name for Dynamic Grid in Kubernetes, which avoid conflict with browser config if shared mouted volume
SE_VIDEO_EVENT_DRIVENtrueBackend of video recorder and uploader will subscribe to Grid Event Bus for session event lifecycle for processing instead of traditional polling Node session capabilities via /status endpoint.
SE_PLAIN_LOGStrueUse plain log lines--plain-logs
SE_DYNAMIC_MAX_SESSIONSSet the number of maximum concurrent sessions of Dynamic Node (both Docker and Kubernetes)
SE_DYNAMIC_OVERRIDE_MAX_SESSIONSEnable this flag for setting max session take effect in Dynamic Node (both Docker and Kubernetes)
SE_FAILURE_SESSION_EVENTS:failed,:failure,:error,:abortedBy default, a failure session event type contains ":failed", ":failure", ":error" or ":aborted" substrings that trigger the retain-on-failure sub-sequence. User can define more event types which handled in your test framework, separated by comma.
SE_RETAIN_ON_FAILUREfalseWhen true, recordings for sessions that pass are discarded immediately. Only sessions that fail (via failure events or abnormal close) retain their recordings and are queued for upload.
SE_DISTRIBUTOR_BACKEND_URLRedis URL for Distributor connection when using RedisBackedDistributor implementation, e.g. redis://redis:6379--distributor-backend-url
SE_DISTRIBUTOR_IMPLEMENTATIONConfigure external datastore for Distributor. When enabled, all replicas share state through the backend (node registrations, slot reservations, health-check coordination)--distributor-implementation
SE_TCP_TUNNELfalse--tcp-tunnel
SE_SESSION_QUEUE_BACKEND_URL
SE_SESSION_QUEUE_IMPLEMENTATION
SE_VIDEO_SESSION_SUBFOLDERfalse