Environment Variables

Configuration reference for SteelEngine

Required

VariableDescription
DATABASE_URLPostgreSQL connection string
BETTER_AUTH_SECRETAuth secret (32 hex chars): openssl rand -hex 32
BETTER_AUTH_URLYour app URL
ENCRYPTION_KEYEncryption key (32 hex chars): openssl rand -hex 32
INTERNAL_API_SECRETInternal API secret (32 hex chars): openssl rand -hex 32
TEMPORAL_WORKER_BROKER_SECRETSeparate 32+ byte secret used only between web and the Temporal Worker credential broker
NEXT_PUBLIC_APP_URLPublic app URL
NEXT_PUBLIC_SOCKET_URLWebSocket URL (default: http://localhost:3002)

AI Providers

VariableProvider
OPENAI_API_KEYOpenAI
ANTHROPIC_API_KEY_1Anthropic Claude
GEMINI_API_KEY_1Google Gemini
MISTRAL_API_KEYMistral
OLLAMA_URLOllama (default: http://localhost:11434)

For load balancing, add multiple keys with _1, _2, _3 suffixes (e.g., OPENAI_API_KEY_1, OPENAI_API_KEY_2). Works with OpenAI, Anthropic, and Gemini.

In Docker, use OLLAMA_URL=http://host.docker.internal:11434 for host-machine Ollama.

Azure OpenAI

VariableDescription
AZURE_OPENAI_API_KEYAzure OpenAI API key
AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URL
AZURE_OPENAI_API_VERSIONAPI version (e.g., 2024-02-15-preview)

vLLM (Self-Hosted)

VariableDescription
VLLM_BASE_URLvLLM server URL (e.g., http://localhost:8000/v1)
VLLM_API_KEYOptional bearer token for vLLM

OAuth Providers

VariableDescription
GOOGLE_CLIENT_IDGoogle OAuth client ID
GOOGLE_CLIENT_SECRETGoogle OAuth client secret
GITHUB_CLIENT_IDGitHub OAuth client ID
GITHUB_CLIENT_SECRETGitHub OAuth client secret

Workflow Source Control

These server-side variables configure the deployment-wide GitHub App used by Workflow Source Control. They are separate from the personal GitHub OAuth variables above.

VariableDescription
GITHUB_APP_IDSource Control GitHub App identifier
GITHUB_APP_PRIVATE_KEYGitHub App PEM private key; escaped \n newlines are supported
GITHUB_APP_WEBHOOK_SECRETGitHub webhook signing secret (minimum 16 characters)

Hosted customers do not set these variables. SteelEngine manages the platform GitHub App; organization admins only install it and choose repository access.

Optional

VariableDescription
API_ENCRYPTION_KEYEncrypts stored API keys (32 hex chars): openssl rand -hex 32
COPILOT_API_KEYAPI key for the Chat assistant backend (variable keeps its legacy name)
ADMIN_API_KEYAdmin API key for GitOps operations
RESEND_API_KEYEmail service for notifications
ALLOWED_LOGIN_DOMAINSRestrict signups to domains (comma-separated)
ALLOWED_LOGIN_EMAILSRestrict signups to specific emails (comma-separated)
DISABLE_REGISTRATIONSet to true to disable new user signups

Example .env

DATABASE_URL=postgresql://postgres:postgres@db:5432/steelengine
BETTER_AUTH_SECRET=<openssl rand -hex 32>
BETTER_AUTH_URL=https://steelengine.yourdomain.com
ENCRYPTION_KEY=<openssl rand -hex 32>
INTERNAL_API_SECRET=<openssl rand -hex 32>
TEMPORAL_WORKER_BROKER_SECRET=<a different openssl rand -hex 32 value>
NEXT_PUBLIC_APP_URL=https://steelengine.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://steelengine.yourdomain.com
OPENAI_API_KEY=sk-...

See apps/web/.env.example for all options.

On this page