Skip to content

Environment variables

Lupid is configured almost entirely from environment variables. The repo’s .env.example is the canonical list; this page documents what each one means.

The agentum binary reads two prefixes:

  • AGENTUM_* (single underscore) — variables used by helper scripts, the CLI, and the bootstrap admin.
  • AGENTUM__* (double underscore) — typed config fields mapped 1:1 onto the AgentumConfig Rust struct. AGENTUM__FIELD_NAME overrides field_name in agentum.yaml.
VariableRequiredDefaultPurpose
POSTGRES_USERyesPostgres user (the compose file builds the URL from this)
POSTGRES_PASSWORDyesPostgres password
POSTGRES_DByesPostgres database name
AGENTUM__DATABASE_URLinheritsbuilt from aboveFull Postgres URL; overrides the above

The docker-compose interpolation uses :? so startup fails loudly if any of the three Postgres vars is unset — no quiet defaults.

VariableRequiredFormatPurpose
AGENTUM_ENCRYPTION_KEY_HEXyes64 hex charsRoot encryption key for AES-256-GCM at rest (credentials, agent private keys)
AGENTUM_CAPABILITY_SECRET_HEXyes64 hex charsHMAC key for capability tokens
AGENTUM_OPERATOR_SECRET_HEXyes64 hex charsHMAC key for dashboard → API request signing
NEXTAUTH_SECRETyes32+ random bytesEncrypts the dashboard session cookie (AES-GCM)

Generate each with openssl rand -hex 32 (or openssl rand -base64 32 for NEXTAUTH_SECRET). The installer does this for you.

VariableRequiredDefaultPurpose
NEXTAUTH_URLyeshttp://localhost:3000Origin the dashboard runs on (CSRF + cookie)
AUTH_TRUST_HOSTyestrueAllow NextAuth to trust the host header
VariableRequiredPurpose
AGENTUM_ADMIN_EMAILrecommendedFirst admin operator, created on first boot when the operators table is empty
AGENTUM_ADMIN_PASSWORDrecommendedPlaintext password for that admin. Bcrypt-hashed before storage

Both must be set together for the bootstrap to fire. The hook is idempotent — once an admin exists, changing these values has no effect. See Identity & access → Bootstrap.

VariableDefaultOptionsPurpose
AGENTUM_DLP_ACTION_HIGHblockobserve / warn / redact / blockAction for High-severity DLP hits
AGENTUM_DLP_ACTION_CRITICALblocksameAction for Critical-severity DLP hits
VariableDefaultPurpose
AGENTUM__GATEWAY_MODEenforceobserve or enforce
AGENTUM__GATEWAY_PORT7070HTTPS-CONNECT gateway port
AGENTUM__API_PORT7071REST API port
AGENTUM__MCP_GATEWAY_PORT7072MCP gateway port
AGENTUM__POLICIES_DIR/app/policies/cedarRuntime directory for .cedar files
AGENTUM__CERTS_DIR/app/certsLocal CA cert dir
AGENTUM__HITL_TIMEOUT_SECONDS300How long a HITL request waits
AGENTUM__ACCESS_REVIEW_DAYS90Default access-review cadence
AGENTUM__H2_LLM_FILTER0Enable HTTP/2 LLM body filtering
AGENTUM_CORS_ORIGINhttp://localhost:3000CORS origin for the API
AGENTUM_BIND_HOST127.0.0.1Bind interface for all listeners
AGENTUM__LOG_LEVELinfotracing log level
RUST_LOGvariousPer-module log filter
VariableWhen requiredPurpose
AGENTUM__CLICKHOUSE_URLwhen using --profile auditClickHouse connection URL
AGENTUM__CLICKHOUSE_DATABASEalways (has a default)ClickHouse database name (defaults to agentum)
CLICKHOUSE_PASSWORDwhen using --profile auditClickHouse password
VariableWhen requiredPurpose
AGENTUM__VAULT_BACKENDoptional (defaults to static)static / hashicorp / aws / azure
AGENTUM__VAULT_HASHICORP_ADDRwhen VAULT_BACKEND=hashicorpHashiCorp Vault address
AGENTUM__VAULT_HASHICORP_TOKENwhen VAULT_BACKEND=hashicorpVault token (or AppRole RoleID)
AGENTUM__VAULT_HASHICORP_MOUNToptional (default secret)KV v2 mount path
AGENTUM__VAULT_AWS_REGIONwhen VAULT_BACKEND=awsAWS region
AGENTUM__VAULT_AWS_ACCESS_KEY_IDwhen VAULT_BACKEND=awsAWS access key (or use IAM role)
AGENTUM__VAULT_AWS_SECRET_ACCESS_KEYwhen VAULT_BACKEND=awsAWS secret access key
AGENTUM__VAULT_AZURE_URLwhen VAULT_BACKEND=azureKey Vault URL
AGENTUM__VAULT_AZURE_TENANT_IDwhen VAULT_BACKEND=azureAzure tenant id
AGENTUM__VAULT_AZURE_CLIENT_IDwhen VAULT_BACKEND=azureAzure client id
AGENTUM__VAULT_AZURE_CLIENT_SECRETwhen VAULT_BACKEND=azureAzure client secret
VariableRequiredPurpose
OTLP_ENDPOINTnoOpenTelemetry OTLP gRPC endpoint (e.g. http://otel:4317)
METRICS_BEARER_TOKENnoRequire Bearer auth on /metrics
AGENTUM_DB_POOL_MAX / _MIN / _ACQUIRE_MSnoOverride Postgres pool tuning (defaults 20/2/3000)