All Selu configuration is done through environment variables, typically set in your .env file next to docker-compose.yml. This page lists every available variable.
These must be set for Selu to start:
Variable Description SELU_SECRET_KEYMaster encryption key for credentials. Use a random string of at least 32 characters. POSTGRES_PASSWORDPassword for the PostgreSQL database.
Variable Description Default SELU_PORTPort the Selu dashboard listens on 3000SELU_HOSTHostname or IP to bind to 0.0.0.0SELU__EXTERNAL_URLPublic URL of your Selu instance (used for webhooks) http://localhost:3000SELU__BASE_PATHURL path prefix for reverse-proxy deployments (e.g. /selu) — SELU_LOG_LEVELLogging verbosity: debug, info, warn, error info
Configure the built-in system update functionality:
Variable Description Default SELU_RELEASE_CHANNELDefault release channel: stable, dev, nightly stableSELU__RELEASE_METADATA_URLUpdate metadata endpoint URL https://selu.bot/api/releases/seluSELU__COMPOSE_FILEPath to the Docker Compose file used for updates ./docker-compose.ymlSELU__COMPOSE_SERVICEDocker Compose service name for the Selu container seluSELU__COMPOSE_ENV_FILEPath to the environment file updated when the channel changes ./.env
Variable Description Default DATABASE_URLFull PostgreSQL connection string (overrides individual vars) — POSTGRES_HOSTDatabase hostname selu-dbPOSTGRES_PORTDatabase port 5432POSTGRES_DBDatabase name seluPOSTGRES_USERDatabase username postgresPOSTGRES_PASSWORDDatabase password —
Variable Description Default TELEGRAM_BOT_TOKENTelegram bot token (alternative to setting it in the dashboard) — BLUEBUBBLES_URLBlueBubbles server URL for iMessage — BLUEBUBBLES_PASSWORDBlueBubbles server password —
Variable Description Default ANTHROPIC_API_KEYAnthropic API key — OPENAI_API_KEYOpenAI API key — XAI_API_KEYxAI API key for Grok models — AWS_ACCESS_KEY_IDAWS access key for Bedrock — AWS_SECRET_ACCESS_KEYAWS secret key for Bedrock — AWS_REGIONAWS region for Bedrock us-east-1
Variable Description Default SELU_AGENT_NETWORKDocker network name for agent containers selu-agentsSELU_AGENT_TIMEOUTDefault gRPC timeout for agent calls (seconds) 30SELU_AGENT_MAX_MEMORYMemory limit per agent container 512m
Variable Description Default SELU_SESSION_IDLE_TIMEOUTIdle timeout before a session expires (minutes) 30SELU_SESSION_MAX_HISTORYMaximum messages kept in session context 100
Place your .env file in the same directory as docker-compose.yml. Docker Compose picks it up automatically:
SELU_SECRET_KEY = a1b2c3d4e5f6...
POSTGRES_PASSWORD = my-strong-password
SELU__EXTERNAL_URL = https://selu.example.com
SELU_RELEASE_CHANNEL = stable
You can also set variables directly in docker-compose.yml under the environment key, but the .env file is cleaner for most setups.
Selu uses double underscores (__) for nested configuration keys. For example:
SELU__EXTERNAL_URL maps to the external_url field in configuration
SELU__BASE_PATH maps to the base_path field
Single underscores separate words within the same configuration level.