Configuration
Environment variables, deployment modes, and advanced configuration options.
Deployment Modes
Elmo supports several deployment modes, controlled by the DEPLOYMENT_MODE environment variable:
| Mode | Description |
|---|---|
local | Single-org, email/password auth. Best for individual use. (default) |
demo | Read-only mode for showcasing Elmo without allowing changes. |
cloud | Managed hosting (coming soon). |
Environment Variables
When you run elmo init, the CLI generates a .env file in your config directory. You can edit this file directly to change settings.
Core Settings
| Variable | Description | Default |
|---|---|---|
DEPLOYMENT_MODE | Deployment mode | local |
DATABASE_URL | PostgreSQL connection string | Generated by CLI |
BETTER_AUTH_SECRET | Secret key for session encryption | Auto-generated |
DISABLE_TELEMETRY | Set to 1 to disable all telemetry. See Telemetry. | — |
AI Provider Keys
At least one provider is required for Elmo to track visibility. See Providers for a full cost/capability breakdown and recommended setups.
| Variable | Description |
|---|---|
BRIGHTDATA_API_TOKEN | BrightData token — recommended scraper for ChatGPT + Google AI Mode. Sign up |
OLOSTEP_API_KEY | Olostep key — recommended scraper, powers most large-scale trackers. Sign up |
OPENAI_API_KEY | OpenAI API key — enables ChatGPT (via API, not the consumer UI) |
ANTHROPIC_API_KEY | Anthropic API key — enables Claude tracking |
OPENROUTER_API_KEY | OpenRouter key — one key for Claude + other hosted models |
DATAFORSEO_LOGIN | DataForSEO login — optional, unlocks Google AI Mode scraping and keyword brainstorming in the onboarding wizard |
DATAFORSEO_PASSWORD | DataForSEO password |
SCRAPE_TARGETS | Comma-separated model:provider[:version][:online] entries. See Providers. |
Updating Configuration
To change environment variables after initial setup:
# Edit the .env file
nano ./elmo/.env
# Restart services to pick up changes
elmo stop
elmo startRegenerating Docker Compose
If you need to regenerate the elmo.yaml file (e.g. after changing Postgres mode):
elmo regenThis rebuilds elmo.yaml from your current settings without touching .env.
Using an External Database
By default, elmo init provisions a PostgreSQL container. To use an existing database instead:
- Choose "Use existing Postgres" during
elmo init, or - Edit
.envto setDATABASE_URLto your connection string - Run
elmo regento updateelmo.yaml(removes the Postgres container) - Restart with
elmo stop && elmo start
Your database must be PostgreSQL 15 or later.
Was this page helpful?