Skip to main content
Complete reference for security-relevant server and CLI environment variables. Defaults are in .env.example and built into the CLI.

File-backed values

Every credential listed with file support accepts NAME_FILE=/path/to/secret instead of NAME=value. Files must be UTF-8, are limited to 64 KiB, and may end with one newline. Configuring both forms is an error. The server-package installer writes generated credentials to operator-owned files under secrets/, with read access limited to the configured container service group.

Server (observal-server)

Core / security

Databases

SSO

OIDC, SAML, and SSO-only mode are configured in Admin → SSO and stored in dynamic settings. OIDC client changes require an API restart. Existing direct OAUTH_*, SSO_ONLY, and SAML_* values are imported once when the matching database setting is empty. File-backed forms such as OAUTH_CLIENT_SECRET_FILE, GOOGLE_OAUTH_CLIENT_SECRET_FILE, GITHUB_OAUTH_CLIENT_SECRET_FILE, INSIGHTS_API_KEY_FILE, SAML_IDP_X509_CERT_FILE, and SAML_SP_KEY_ENCRYPTION_PASSWORD_FILE remain in memory and are not imported into PostgreSQL or Redis. SAML_SP_PRIVATE_KEY_FILE and SAML_SP_X509_CERT_FILE must be configured together and override generated database SP material.

JWT signing

AWS (Bedrock)

Note: Bedrock now supports API keys — generate one from the AWS console and use it like any other provider. See Insights LLM Setup.
These environment variables are not required if you use Bedrock API keys (recommended). They exist only for legacy setups using instance roles or ECS task roles where LiteLLM auto-discovers credentials from the environment.

Git operations (submission analysis)

Demo accounts (seeded on first startup if no users exist)

Each demo password supports its corresponding _FILE form. Remove demo variables and files before a real deployment.

Docker host ports

Used only by Docker Compose. Prometheus and Grafana ports apply only when docker-compose.observability.yml is included. Remap if a default is already in use.

Grafana

Only used when the optional Grafana overlay or Terraform observability_stack = "grafana" is enabled.

CLI (observal-cli)

Read from the environment at invocation time. Override values in ~/.observal/config.json per invocation. The token and password variables support corresponding _FILE forms. Configuring both a direct variable and its file form is an error. When multiple token aliases are present, the legacy precedence remains OBSERVAL_TOKEN, then OBSERVAL_API_KEY, then OBSERVAL_ACCESS_TOKEN. Example CI usage: