Skip to content

Configuration

The controller is configured with environment variables; most runtime settings (OIDC, SCIM, notifications, branding, policy) are managed in the web console and stored in Postgres.

VariableRequiredDefaultDescription
TESSERA_DATABASE_URLyes (prod)postgres://tessera:tessera@localhost:5432/tessera?sslmode=disablePostgres connection string. A dev default is used if unset; effectively required in production.
TESSERA_ENC_KEYyes (prod)ephemeral32-byte hex key for AES-GCM credential encryption.
TESSERA_JWT_SECRETyes (prod)ephemeral32-byte hex secret for signing session JWTs.
TESSERA_PUBLIC_URLrecommendedhttps://localhost:8443External URL of the controller — used for OIDC redirects and notification links.
TESSERA_HTTP_ADDRno:8443Address the controller listens on.
TESSERA_TLS_CERTnoPath to TLS certificate file. If the cert/key are unset, the controller generates an in-memory self-signed cert in any mode — terminate real TLS at a reverse proxy.
TESSERA_TLS_KEYnoPath to TLS private key file.
TESSERA_HOST_KEYno./dev-data/ssh_host_ed25519_keyPath to the SSH host key used by the SSH proxy. Generated if absent in dev mode.
TESSERA_DEVnotrue locallyDev mode: ephemeral keys, relaxed checks. Only affects locally built binaries — released/customer builds force it off, so the variable has no effect there.
TESSERA_METRICS_TOKENnoBearer token to protect the Prometheus /metrics endpoint. Unset = unauthenticated.
TESSERA_LICENSEnoPer-org license token from your portal. Also accepts @/path/to/file. Changing it and restarting installs the new licence; ignored while the controller is linked to the portal, which renews itself.
TESSERA_LICENSE_PUBKEYno— (empty)Per-org Ed25519 public key pasted from the portal, used on the legacy/dev self-verify path. Release builds verify the license against a build-time-baked master key, so this is not used there.
TESSERA_PASSWORD_LOGINnofalseBreak-glass: force-enable password login even when SSO-only is configured. Unset after recovery.
TESSERA_RECORDINGS_DIRno./dev-data/recordingsDirectory for session .cast recordings.
TESSERA_AUDIT_RETENTION_DAYSno0 (keep forever)Delete audit-log entries older than N days. A daily background job purges them; 0 disables purging.
TESSERA_RECORDING_RETENTION_DAYSno0 (keep forever)Delete session replays (.cast files + their metadata) older than N days. 0 disables purging.
TESSERA_SESSION_TTLno60One-time session token TTL in seconds.
TESSERA_OIDC_PROVIDERSnoJSON array of OIDC provider configs (alternative to web console). See OIDC guide.

Generate secrets with openssl rand -hex 32.

Configured under Settings (admin only) and persisted in the database:

  • / — web console (embedded SPA).
  • /api/* — REST API (Bearer JWT).
  • /connect — WSS tunnel (one-time session token).
  • /oidc/* — OIDC login flow.
  • /scim/v2/* — SCIM provisioning (Bearer token).
  • /metrics — Prometheus metrics (optionally tokened).
  • /healthz — health check.