Skip to content

Environment Variables

This page lists supported Roster environment variables and defaults.

Secrets should come from your deployment secret manager. Do not commit real values to source control or bake them into a custom image.

Run this command twice and use the two outputs for ROSTER_AUTH_SECRET and ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY. Generate a strong, unique bootstrap password as well:

Terminal window
openssl rand -base64 48
printf 'Roster-1!%s\n' "$(openssl rand -base64 32 | tr -d '\n')"

Choose one model provider example, update ROSTER_AUTH_URL, replace the generated secrets, and add the provider API key.

ROSTER_AUTH_URL=<your-roster-public-url>
ROSTER_AUTH_SECRET=<generated-auth-secret>
ROSTER_BOOTSTRAP_ADMIN_PASSWORD=<generated-strong-password>
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<generated-provider-secret-encryption-key>
ROSTER_MODEL_PROVIDER=openai
ROSTER_MODEL_NAME=gpt-5.5
ROSTER_MODEL_EFFORT=low
OPENAI_API_KEY=<openai-api-key>
# Optional paid license.
# ROSTER_LICENSE_KEY=<license-jwt>
ROSTER_AUTH_URL=<your-roster-public-url>
ROSTER_AUTH_SECRET=<generated-auth-secret>
ROSTER_BOOTSTRAP_ADMIN_PASSWORD=<generated-strong-password>
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<generated-provider-secret-encryption-key>
ROSTER_MODEL_PROVIDER=mistral
ROSTER_MODEL_NAME=mistral-large-2512
ROSTER_MODEL_EFFORT=low
MISTRAL_API_KEY=<mistral-api-key>
# Optional paid license.
# ROSTER_LICENSE_KEY=<license-jwt>
ROSTER_AUTH_URL=<your-roster-public-url>
ROSTER_AUTH_SECRET=<generated-auth-secret>
ROSTER_BOOTSTRAP_ADMIN_PASSWORD=<generated-strong-password>
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<generated-provider-secret-encryption-key>
ROSTER_MODEL_PROVIDER=anthropic
ROSTER_MODEL_NAME=claude-opus-4-8
ROSTER_MODEL_EFFORT=low
ANTHROPIC_API_KEY=<anthropic-api-key>
# Optional paid license.
# ROSTER_LICENSE_KEY=<license-jwt>

OpenRouter uses the OpenAI provider with an OpenAI-compatible base URL.

ROSTER_AUTH_URL=<your-roster-public-url>
ROSTER_AUTH_SECRET=<generated-auth-secret>
ROSTER_BOOTSTRAP_ADMIN_PASSWORD=<generated-strong-password>
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY=<generated-provider-secret-encryption-key>
ROSTER_MODEL_PROVIDER=openai
ROSTER_MODEL_NAME=openai/gpt-5.4-mini
ROSTER_MODEL_EFFORT=low
OPENAI_API_KEY=<openrouter-api-key>
OPENAI_BASE_URL=https://openrouter.ai/api/v1
# Optional paid license.
# ROSTER_LICENSE_KEY=<license-jwt>

The advantys/roster container sets these Roster runtime defaults:

VariableDefaultPurpose
ROSTER_DATA_DIR/dataRuntime directory for SQLite data, worker journals, connector files, and state.
ROSTER_DATABASE_URLUnset; uses /data/roster.db through ROSTER_DATA_DIR=/dataOptional SQLite file: URL override used by Roster and runtime migrations.
ROSTER_AUTH_URLhttp://localhost:3000 in the containerPublic origin used for auth callbacks, OAuth issuer metadata, and MCP OAuth resource discovery. Set it to the externally reachable HTTPS origin before exposing Roster or connecting OAuth MCP clients.
ROSTER_AUTH_TRUSTED_ORIGINSNoneComma-separated extra browser origins allowed to call auth endpoints.

When ROSTER_DATABASE_URL is unset, the container stores SQLite data at /data/roster.db.

VariableDefaultPurpose
ROSTER_AUTH_SECRETNoneRequired secret for signed auth state and encrypted platform settings.
ROSTER_BOOTSTRAP_ADMIN_PASSWORDNoneRequired only when a production database has no bootstrap administrator. It is not needed after the bootstrap account exists.
ROSTER_PROVIDER_SECRET_ENCRYPTION_KEYNoneRequired secret for encrypted connector and provider credentials.

Use separate high-entropy values and keep them stable across container restarts. Changing ROSTER_AUTH_SECRET invalidates sessions. Changing ROSTER_PROVIDER_SECRET_ENCRYPTION_KEY can prevent encrypted settings and provider credentials from decrypting.

Run this command to generate a compatible 48-byte random base64 value:

Terminal window
openssl rand -base64 48
VariableDefaultPurpose
ROSTER_MCP_AUTH_MODEapi_key,oauthMCP authentication mode. Supported values are api_key, oauth, api_key,oauth, and local-only none.
ROSTER_OAUTH_DYNAMIC_CLIENT_REGISTRATIONDisabled in the containerExposes OAuth Dynamic Client Registration for MCP clients. Registration still requires a Roster browser session unless the separate unauthenticated override is enabled.
ROSTER_OAUTH_UNAUTHENTICATED_CLIENT_REGISTRATIONDisabled in the containerAllows a self-registering MCP client to call Dynamic Client Registration without a Roster session. Enable only for a restricted setup window, then disable it.
ROSTER_OAUTH_ACCESS_TOKEN_TTL_SECONDS3600OAuth access-token lifetime.
ROSTER_OAUTH_REFRESH_TOKEN_TTL_SECONDS7776000OAuth refresh-token lifetime, 90 days.
ROSTER_OAUTH_AUTH_CODE_TTL_SECONDS600OAuth authorization-code lifetime.

Roster derives the MCP OAuth resource URI automatically as ${ROSTER_AUTH_URL}/mcp.

Self-registering clients require both registration variables during their controlled setup window. Pre-registered clients require neither. See the Claude setup guide for the safe onboarding sequence.

VariableDefaultPurpose
ROSTER_PROVIDER_SECRET_KEY_IDenv:defaultIdentifier stored with encrypted provider credentials to support future key rotation.

Roster runs one resolver model provider at a time. The provider value is only the provider family; the API is selected separately by ROSTER_MODEL_API when you need to override the provider default.

VariableDefaultPurpose
ROSTER_MODEL_PROVIDERopenaiResolver model provider. Supported values are openai, mistral, and anthropic.
ROSTER_MODEL_APIProvider defaultOptional API selector. Defaults are listed below.
ROSTER_MODEL_NAMEProvider defaultResolver model ID. Defaults are listed below.
ROSTER_MODEL_EFFORTlowEffort value accepted by the runtime. Supported values are none, minimal, low, medium, high, xhigh, and max.
VariableDefaultPurpose
OPENAI_API_KEYNoneRequired when ROSTER_MODEL_PROVIDER=openai.
OPENAI_BASE_URLOpenAI SDK default endpointOptional OpenAI-compatible API base URL. Set only for a provider proxy, regional endpoint, or approved gateway.
ROSTER_MODEL_APIresponsesDefault API for the OpenAI provider.
ROSTER_MODEL_NAMEgpt-5.5Default OpenAI model.
ROSTER_MODEL_OPENAI_RESPONSES_MAX_OUTPUT_TOKENSUnset for direct OpenAI; 2048 for non-default OpenAI-compatible gatewaysOptional positive integer sent as max_output_tokens for OpenAI Responses requests.
VariableDefaultPurpose
MISTRAL_API_KEYNoneRequired when ROSTER_MODEL_PROVIDER=mistral.
MISTRAL_BASE_URLMistral SDK default endpointOptional Mistral API base URL. Set only for a provider proxy, regional endpoint, or approved gateway.
ROSTER_MODEL_APIchat-completionsDefault API for the Mistral provider.
ROSTER_MODEL_NAMEmistral-large-2512Default Mistral model.
VariableDefaultPurpose
ANTHROPIC_API_KEYNoneRequired when ROSTER_MODEL_PROVIDER=anthropic.
ANTHROPIC_BASE_URLAnthropic SDK default endpointOptional Anthropic API base URL. Set only for a provider proxy, regional endpoint, or approved gateway.
ROSTER_MODEL_APImessagesDefault API for the Anthropic provider.
ROSTER_MODEL_NAMEclaude-opus-4-8Default Anthropic model.

OpenRouter uses the OpenAI provider because it exposes an OpenAI-compatible gateway:

OPENAI_API_KEY=<openrouter-api-key>
OPENAI_BASE_URL=https://openrouter.ai/api/v1
ROSTER_MODEL_PROVIDER=openai
ROSTER_MODEL_NAME=<openrouter-model-id>

When OPENAI_BASE_URL points to a non-default OpenAI-compatible gateway, Roster defaults ROSTER_MODEL_OPENAI_RESPONSES_MAX_OUTPUT_TOKENS to 2048.

VariableDefaultPurpose
ROSTER_LICENSE_KEYNoneSigned license JWT. If omitted, Roster runs as Free edition.
ROSTER_LICENSE_FILENonePath to a mounted file containing the signed license JWT.
ROSTER_LICENSE_JWKS_FILE/app/roster-license-jwks.jsonOptional local JWKS/public keyring override for offline paid-license verification.

The Roster CLI also supports these environment variables:

VariableDefaultPurpose
ROSTER_HOME~/.rosterCLI profile and OAuth credential storage directory.
ROSTER_MCP_URLNoneMCP endpoint used when --mcp-url is not provided and no selected profile supplies one.
ROSTER_API_KEYNoneAPI-key bearer token used when --api-key is not provided. Takes precedence over saved OAuth profile credentials.