Skip to content

Configuration

Kelly Ferrone edited this page Sep 26, 2026 · 5 revisions

Configuration

Every setting can be set in a YAML config file, in the environment, or on the command line, and a later one wins: default < config < env < args. A setting's file path is its name: redis.host is REDIS_HOST and --redis-host.

The file is named by --config-file or CONFIG_FILE. There is no default location. A file with an unknown key stops the server with the reason.

server

Where it listens, and where it lives.

Config Env Flag Default What
config_file CONFIG_FILE --config-file — The YAML file read at start.
transport TRANSPORT --transport http http, or stdio for one local client.
host HOST --host 0.0.0.0 Address to listen on.
port PORT --port 8000 Port to listen on.
log_level LOG_LEVEL --log-level INFO DEBUG, INFO, WARNING or ERROR.
route_prefix ROUTE_PREFIX --route-prefix / Path the whole server is mounted under.
public_base_url PUBLIC_BASE_URL --public-base-url — Where browsers reach this server, for links.

auth

The bearer token every request needs.

Config Env Flag Default What
auth.token AUTH_TOKEN --auth-token — Bearer token for every request. Unset is open. Sensitive.

grid

The Selenium Grid it drives.

Config Env Flag Default What
grid.url GRID_URL --grid-url http://selenium-grid-selenium-hub.flow.svc.cluster.local:4444 The Selenium Grid hub.
grid.console_url GRID_CONSOLE_URL --grid-console-url / Where the Grid console tab is framed from.

session

How sessions are kept, and how new browsers open.

Config Env Flag Default What
session.store SESSION_STORE --session-store memory memory; redis.host or redis.url switches it to redis.
session.ttl SESSION_TTL --session-ttl 86400 Seconds a session is kept after its last use.
session.browser SESSION_BROWSER --session-browser — chrome or firefox, for new sessions.
session.width SESSION_WIDTH --session-width — Window width for new sessions.
session.height SESSION_HEIGHT --session-height — Window height for new sessions.
session.page_load_timeout SESSION_PAGE_LOAD_TIMEOUT --session-page-load-timeout — Seconds a page may take to load.
session.script_timeout SESSION_SCRIPT_TIMEOUT --session-script-timeout — Seconds a script may run.

redis

The session store’s connection.

Config Env Flag Default What
redis.url REDIS_URL --redis-url — A full Redis URL, instead of host and port. Sensitive.
redis.host REDIS_HOST --redis-host localhost Redis host.
redis.port REDIS_PORT --redis-port 6379 Redis port.
redis.db REDIS_DB --redis-db 0 Redis database number.
redis.username REDIS_USERNAME --redis-username — Redis username.
redis.password REDIS_PASSWORD --redis-password — Redis password. Sensitive.
redis.ssl REDIS_SSL --redis-ssl false Connect to Redis over TLS.
redis.prefix REDIS_PREFIX --redis-prefix selenium-flow:session: Prefix on every key, so a shared database is safe.

flow

Saved flows and kept files.

Config Env Flag Default What
flow.data_dir FLOW_DATA_DIR --flow-data-dir — Where flows and kept files live. Unset turns flows off.

secrets

Where secrets are read from.

Config Env Flag Default What
secrets.dirs SECRETS_DIRS --secrets-dirs — Directories of secrets. First match wins.

mcp

What MCP clients are offered beyond tools.

Config Env Flag Default What
mcp.skill MCP_SKILL --mcp-skill true Serve the agent skill as resources.
mcp.apps MCP_APPS --mcp-apps true Offer MCP Apps views.

One value in each place

# /etc/selenium-flow/config.yaml
session:
  ttl: 86400
redis:
  host: redis.data
  db: 2
export CONFIG_FILE=/etc/selenium-flow/config.yaml
export GRID_URL=http://selenium-hub:4444
selenium-flow --log-level DEBUG

The Settings tab of the admin UI shows every value and where it came from.

Worth setting

session.page_load_timeout: with no bound, one hung page holds a Grid slot until the Grid reaps it.

The environment is lenient, the file is not

An environment variable the server does not know is ignored: Kubernetes injects <SERVICE>_PORT variables into every pod. A key the file does not know stops the boot, because it is a typo.

The exception: a Kubernetes Service literally named redis injects REDIS_PORT=tcp://…, which is a known leaf and stops the boot on a value that was never meant as one. Hence enableServiceLinks: false on the pod.

Lists and booleans in env and flags

secrets.dirs splits like PATH, on the OS path separator (:). A boolean setting accepts true/false, 1/0, yes/no and on/off.

Secrets

The file's secrets.entries section defines secrets. See Secrets.

Clone this wiki locally