Configuration Reference

All environment variables that control Steward behavior.

Environment Variables

VariableRequiredDefaultDescription
SECRET_KEY_BASEProdAuto-generated (dev)Phoenix session signing secret. Generate with mix phx.gen.secret.
DATABASE_PATHNovar/acs.sqlite (dev)SQLite database file path. Dev default: var/acs.sqlite.
DATABASE_URLProd (PG)PostgreSQL connection string. Not needed for SQLite dev setup.
POOL_SIZENo5 (SQLite) / 10 (PG)Database connection pool size.
ACS_CLUSTER_NAMENodev (dev) / default (prod)Cluster identity for multi-cluster deployments.
ACS_PROJECT_NAMENo""Project name for memory scoping and attribution.
ACS_DEVELOPER_NAMENounknownDeveloper identity tag for memory attribution.
ACS_USERNAMENoadminDashboard username.
ACS_PASSWORDProdadminDashboard password. Must change in production.
MCP_API_KEYProddev-api-key (dev)API key for MCP tool authentication.
SERVICE_API_KEYProddev-service-key (dev)Service-level key for cross-system integrations.
LOG_INGEST_KEYNodev-log-ingest-key (dev)Shared key for log ingestion endpoint.
MCP_AUTH_LOCAL_FALLBACKNofalseAllow unauthenticated MCP calls from localhost.
MCP_QUERY_KEY_AUTHNofalseAllow ?api_key= on MCP SSE (legacy connector fallback).
MCP_TOOLS_PATHNo/app/acs/acstoolsComma-separated directories for YAML tool definitions.
COOKIE_SIGNING_SALTNoDerived from SECRET_KEY_BASESession cookie salt for stable LiveView auth across restarts.
SESSION_VALIDITY_DAYSNo7Dashboard session lifetime in days.
CORS_ORIGINSNo*Comma-separated browser origins allowed for MCP CORS.
PHX_HOST / DOMAINProdPublic hostname for URL generation and LiveView origin checks.
MEMORY_STORENoyamlStorage format: yaml or obsidian.
OBSIDIAN_VAULT_PATHNoFilesystem path to Obsidian vault (when MEMORY_STORE=obsidian).
META_HARNESS_ENABLEDNofalseEnable meta-harness analysis and reporting.
BRIDGE_ALLOWED_HOSTSNoComma-separated allowed hosts for HTTP bridge.
ALLOWED_COMMANDSNoecho,ls,cat (dev)Comma-separated allowed commands for exec_command tool.
ALLOWED_PATHSNo/tmp,/appComma-separated allowed paths for file tools.
HTTP_SLEEP_MAX_MSNoMax sleep duration for sleep tool (ms).
ACS_ADMIN_EMAILSNoadmin@localhost (dev)Comma-separated admin emails for notifications.

LLM Provider Configuration

Memory auditing and semantic search need at least one LLM provider. Set any of these:

VariableProviderDescription
NIM_API_KEYNVIDIA NIMNVIDIA NIM API key for LLM evaluation
MIMO_API_KEYMimoMimo API key for LLM evaluation
MINIMAX_API_KEYMiniMaxMiniMax API key for LLM evaluation
OPENAI_API_KEYOpenAIOpenAI API key
OPENAI_BASE_URLOpenAICustom OpenAI-compatible endpoint URL
OPENAI_MODELOpenAIOpenAI model name override
ENABLED_LLM_PROVIDERSAllComma-separated whitelist (e.g. mimo,nim)
OLLAMA_URLOllamaOllama endpoint for local embeddings: http://localhost:11434

Memory Auditor Pre-filter Configuration

Optional rules to auto-reject low-quality proposed memories:

VariableDescription
AUDITOR_REJECT_TITLE_PREFIXESComma-separated title prefix patterns for auto-rejection
AUDITOR_REJECT_TITLE_EXACTComma-separated exact title matches for auto-rejection
AUDITOR_REJECT_SCOPE_PREFIXESComma-separated scope prefix patterns for auto-rejection
AUDITOR_REJECT_ID_PREFIXESComma-separated ID prefix patterns for auto-rejection
AUDITOR_REJECT_ID_CONTAINSComma-separated ID substring patterns for auto-rejection
AUDITOR_MIN_CONTENT_LENGTHMinimum content length before auto-reject
AUDITOR_LOW_CONTENT_LENGTHContent length threshold for low-quality flagging
AUDITOR_FUZZY_THRESHOLDSimilarity threshold for fuzzy duplicate detection (0.0-1.0)
AUDITOR_REJECT_EMPTY_SCOPEAuto-reject memories with empty scope path
AUDITOR_REJECT_TITLE_EQUALS_CONTENTAuto-reject when title equals content verbatim
AUDITOR_INTERVALPolling interval in ms (default: 30000)

OAuth / Auth0 (Optional)

For Claude Connectors or production deployments:

VariableDefaultDescription
OAUTH_BEARER_ENABLEDfalseEnable Auth0 JWT validation for Claude Connectors
AUTH0_DOMAINdev-jw5wgp2b.us.auth0.comAuth0 tenant domain
AUTH0_AUDIENCEhttps://prod.stewardacs.xyz/mcp/sseMCP API identifier
AUTH0_ISSUERDerived from domainOverride OIDC issuer if non-standard
MCP_PUBLIC_URLhttps://${DOMAIN}Public base URL for OAuth metadata
MCP_RESOURCE_URLSame as audienceResource URL in protected-resource metadata

Database Configuration

Dev (SQLite — single container, zero deps)

  • Default path: var/acs.sqlite
  • Override with DATABASE_PATH env var
  • Pool size: 5 (SQLite is single-writer)

Production (PostgreSQL)

Two options: set DATABASE_URL for full connection string, or set individual PG vars:

Env VarDefaultDescription
PGUSERpostgresUsername
PGPASSWORDpostgresPassword
PGHOSTlocalhostHost
PGPORT5432Port
PGDATABASEacs_prodDatabase name
PGSSLfalseEnable SSL
---