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 must be configured. That means a provider key — except for Google, which also works with Application Default Credentials alone. 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, claude-opus-4-6, claude-opus-4-8, claude-opus-5
OpenAIOPENAI_API_KEYgpt-4o-mini, gpt-5, gpt-5-mini, gpt-5-nano, gpt-5.1, gpt-5.2, gpt-5.4, gpt-5.5, gpt-5.6-luna, gpt-5.6-sol, gpt-5.6-terra
GoogleGOOGLE_API_KEYgemini-3-flash-preview, gemini-3-pro-preview, gemini-3.5-flash, gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash
DeepSeekDEEPSEEK_API_KEYdeepseek-v4-flash, deepseek-v4-pro
XiaomiXIAOMI_API_KEYmimo-v2.5-pro, mimo-v2.5
OpenRouterOPENROUTER_API_KEYz-ai/glm-5.2, z-ai/glm-5.3, z-ai/glm-5.3-flash, qwen/qwen3.8-max, qwen/qwen3.8-27b, qwen/qwen3.8-2.4t-a95b
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

There are no sandbox environment variables. Code-execution sandboxes (OpenSandbox, Daytona, Google Cloud Run) are registered by a workspace admin under Settings → Sandboxes, with their endpoint and credential stored encrypted in the database, and bound to agents from the agent editor. See Sandbox.

The one indirect requirement: a Cloud Run sandbox with a GCS snapshot bucket needs the backend to hold Application Default Credentials that can write to that bucket.

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