Skip to Content
Deploy & ConfigureEnvironment Variables

Environment Variables

Every auxilia deployment is configured through environment variables. This page is the complete reference — start here to understand what to set, then follow the Cloud Run or VM / Docker host guide for the deployment-specific wiring.

A full example lives in .env.example at the repo root.

Required variables

These must be set for auxilia to start. Missing any of them will fail backend boot.

VariableNotes
DATABASE_URLpostgresql+psycopg://user:pass@host:5432/dbname connection string
REDIS_HOST / REDIS_PORTReachable from the backend (OAuth tokens are cached here)
JWT_SECRET_KEY32+ random characters — used to sign session cookies
SALTSalt for AES-GCM encryption of stored MCP API keys
FRONTEND_URLPublic URL of the web app (used as OAuth redirect base)
BACKEND_URLInternal URL the Next.js proxy uses to reach the backend (web only)
One LLM keySee LLM providers — at least one is required

In production, also set:

VariableValueWhy
COOKIE_SECUREtrueForces session cookies to be HTTPS-only (recommended)

LLM providers

At least one provider key is required. Configuring a provider makes its models eligible for the picker — configure multiple to give agent authors a choice. Which models actually appear (and which one is preselected) is managed by workspace admins under Settings → Models; see Available models.

ProviderEnvironment variableModels
AnthropicANTHROPIC_API_KEYclaude-haiku-4-5, claude-sonnet-4-6, claude-sonnet-5
OpenAIOPENAI_API_KEYgpt-4o-mini
GoogleGOOGLE_API_KEYgemini-3-flash-preview, gemini-3-pro-preview
DeepSeekDEEPSEEK_API_KEYdeepseek-v4-flash, deepseek-v4-pro
XiaomiXIAOMI_API_KEYmimo-v2.5-pro, mimo-v2.5
OpenRouterOPENROUTER_API_KEYglm-5.2-max, glm-5.2-high
MetaMETAAI_API_KEYmuse-spark-1.2

Anthropic models run with thinking enabled by default; Google models run with include_thoughts=True. Defaults live in app/model_providers/catalog.py.

Google via Application Default Credentials

GOOGLE_API_KEY is not the only way to enable Gemini. If it is unset but Application Default Credentials  are available — a GCP service account on Cloud Run/GKE/Compute, gcloud auth application-default login, or GOOGLE_APPLICATION_CREDENTIALS — the backend serves Gemini models through Vertex AI using those credentials instead of the Gemini Developer API. The identity needs permission to call Vertex AI (e.g. the Vertex AI User role). When GOOGLE_API_KEY is set, it always wins.

Authentication

VariableNotes
GOOGLE_CLIENT_IDOAuth client ID for Google sign-in
GOOGLE_CLIENT_SECRETOAuth client secret
GOOGLE_REDIRECT_URIe.g. https://your-host/auth/google/callback
AUTH_GOOGLE_EXCLUSIVEtrue disables email/password signup — Google OAuth only

Leaving these unset keeps email/password signup as the only path. See User Management for the full flow.

Sandbox (optional)

Agent code execution supports two providers, selected with:

VariableNotes
SANDBOX_PROVIDERopensandbox (default) or cloudrun

OpenSandbox

If you’re running OpenSandbox :

VariableNotes
OPEN_SANDBOX_DOMAINe.g. localhost:8083 or a private DNS name
OPEN_SANDBOX_API_KEYIf your OpenSandbox controller requires one
OPEN_SANDBOX_USE_SERVER_PROXYtrue routes file ops through the OpenSandbox server (recommended)
OPEN_SANDBOX_DEFAULT_IMAGEBase image, e.g. python:3.12-slim
OPEN_SANDBOX_DEFAULT_PACKAGESPre-installed packages, e.g. ["pandas","matplotlib"]
OPEN_SANDBOX_TIMEOUTPer-command timeout (seconds). Default 1800
OPEN_SANDBOX_VOLUME_MOUNTSHost mounts, comma-separated host:sandbox[:ro]

If OPEN_SANDBOX_DOMAIN is missing, the sandbox toggle on agents is silently disabled. Details: Sandbox.

Cloud Run sandboxes

If SANDBOX_PROVIDER=cloudrun, the backend drives Google Cloud Run sandboxes through the dedicated sandbox gateway service:

VariableNotes
CLOUD_RUN_SANDBOX_GATEWAY_URLURL of the deployed sandbox-gateway Cloud Run service
CLOUD_RUN_SANDBOX_GATEWAY_SECRETShared secret, sent as a bearer token — the gateway fails closed without it
CLOUD_RUN_SANDBOX_GCS_BUCKETGCS bucket for turn-end snapshots (optional, enables cross-instance restore)
CLOUD_RUN_SANDBOX_SNAPSHOT_PREFIXObject prefix inside the bucket. Default sandbox-snapshots/
CLOUD_RUN_SANDBOX_ALLOW_EGRESStrue requests outbound network per sandbox (gateway must also allow egress)
CLOUD_RUN_SANDBOX_DEFAULT_PACKAGESExtra packages pip-installed into each fresh sandbox
CLOUD_RUN_SANDBOX_TIMEOUTPer-command timeout (seconds). Default 1800

Both CLOUD_RUN_SANDBOX_GATEWAY_URL and CLOUD_RUN_SANDBOX_GATEWAY_SECRET must be set for the sandbox toggle to be active. Details: Cloud Run Sandboxes.

Observability (optional)

VariableNotes
LANGFUSE_PUBLIC_KEYLangfuse project public key
LANGFUSE_SECRET_KEYLangfuse project secret key
LANGFUSE_BASE_URLhttps://cloud.langfuse.com or your self-hosted URL
LANGFUSE_TIMEOUTAPI request timeout in seconds (positive integer; default 15)

The public key, secret key, and base URL are required to enable Langfuse; missing any of them disables the integration silently. The timeout is optional. Details: Observability (Langfuse).

Slack (optional)

VariableNotes
SLACK_SIGNING_SECRETFrom Basic Information in your Slack app config
SLACK_BOT_TOKENxoxb-… Bot User OAuth Token

Missing values make the Slack endpoints reject all incoming requests. Details: Slack Integration.

Tuning & debugging

VariableDefaultNotes
LOG_LEVELINFOSet to DEBUG for verbose logs (MCP traces, etc.)
RECURSION_LIMIT100Max LangGraph steps per agent invocation
INVOKE_PROFILINGfalseEmit per-step timing on each agent invocation