Skip to content

Configuration Reference

All XeroML configuration is done via environment variables. This page documents the available variables for self-hosted deployments.

Required

VariableDescription
NEXTAUTH_URLThe canonical URL of your XeroML instance (e.g., https://xeroml.yourdomain.com)
NEXTAUTH_SECRETRandom secret for session encryption. Generate with: openssl rand -hex 32
SALTRandom secret for hashing. Generate with: openssl rand -hex 32
DATABASE_URLPostgreSQL connection string: postgresql://user:pass@host:5432/xeroml

Database

VariableDefaultDescription
DATABASE_URL—PostgreSQL connection string
DIRECT_URLSame as DATABASE_URLDirect connection URL (required for migrations)
SHADOW_DATABASE_URL—Shadow database for migrations in some environments

ClickHouse (Optional)

ClickHouse is required for large-scale trace storage. Without it, traces are stored in PostgreSQL (limited to ~1M traces).

VariableDefaultDescription
CLICKHOUSE_URL—ClickHouse connection URL
CLICKHOUSE_USERdefaultClickHouse username
CLICKHOUSE_PASSWORD—ClickHouse password

Redis

VariableDefaultDescription
REDIS_CONNECTION_STRING—Redis connection URL (redis://host:6379)
REDIS_TLS_ENABLEDfalseEnable TLS for Redis connection

Storage

VariableDefaultDescription
XEROML_S3_MEDIA_UPLOAD_ENABLEDfalseEnable S3-compatible blob storage
S3_BUCKET_NAME—Bucket name
S3_ENDPOINT—S3 endpoint URL (for non-AWS providers)
S3_REGIONus-east-1AWS region
S3_ACCESS_KEY—Access key ID
S3_SECRET_KEY—Secret access key

Authentication

VariableDefaultDescription
AUTH_DISABLE_USERNAME_PASSWORDfalseDisable email/password login
AUTH_GOOGLE_CLIENT_ID—Google OAuth client ID
AUTH_GOOGLE_CLIENT_SECRET—Google OAuth client secret
AUTH_GITHUB_CLIENT_ID—GitHub OAuth client ID
AUTH_GITHUB_CLIENT_SECRET—GitHub OAuth client secret
AUTH_OKTA_CLIENT_ID—Okta OIDC client ID
AUTH_OKTA_CLIENT_SECRET—Okta OIDC client secret
AUTH_OKTA_ISSUER—Okta issuer URL

Email

VariableDefaultDescription
SMTP_HOST—SMTP server hostname
SMTP_PORT587SMTP port
SMTP_USER—SMTP username
SMTP_PASSWORD—SMTP password
EMAIL_FROM—Sender address for transactional emails

Telemetry

VariableDefaultDescription
XEROML_ENABLE_EXPERIMENTAL_FEATURESfalseEnable features in active development
XEROML_DISABLE_EXPENSIVE_POSTGRES_QUERIESfalseOptimize for high trace volume on PostgreSQL-only setups
XEROML_LOG_LEVELinfoLog verbosity: debug, info, warn, error

Security

VariableDefaultDescription
ALLOWED_ORIGINS—Comma-separated list of allowed CORS origins
HTTP_PROXY—Outbound HTTP proxy for LLM API calls from evaluators
HTTPS_PROXY—Outbound HTTPS proxy
NO_PROXY—Hosts to bypass proxy