Configuration

Environment variables, deployment modes, and advanced configuration options.

Deployment Modes

Elmo supports several deployment modes, controlled by the DEPLOYMENT_MODE environment variable:

ModeDescription
localSingle-org, email/password auth. Best for individual use. (default)
demoRead-only mode for showcasing Elmo without allowing changes.
whitelabelMulti-org with Auth0 SSO. Deploy under your own brand. See White Label.
cloudManaged 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

VariableDescriptionDefault
DEPLOYMENT_MODEDeployment modelocal
DATABASE_URLPostgreSQL connection stringGenerated by CLI
BETTER_AUTH_SECRETSecret key for session encryptionAuto-generated
DISABLE_TELEMETRYSet to 1 to disable all telemetry

AI Provider Keys

At least one AI provider is required for Elmo to track visibility.

VariableDescription
OPENAI_API_KEYOpenAI API key — enables ChatGPT tracking with web search
ANTHROPIC_API_KEYAnthropic API key — enables Claude tracking
DATAFORSEO_LOGINDataForSEO login — enables Google AI Overviews tracking
DATAFORSEO_PASSWORDDataForSEO password

Branding (White Label)

These variables customize the UI when running in whitelabel mode:

VariableDescription
VITE_APP_NAMEApplication name displayed in the UI
VITE_APP_ICONURL to your app icon
VITE_APP_URLYour deployment URL
VITE_APP_PARENT_NAMEYour agency/company name
VITE_APP_PARENT_URLYour agency/company URL
VITE_CHART_COLORSComma-separated hex colors for charts

Auth0 (White Label)

Required when DEPLOYMENT_MODE=whitelabel:

VariableDescription
VITE_AUTH0_DOMAINAuth0 tenant domain
VITE_AUTH0_CLIENT_IDAuth0 client ID (public)
AUTH0_DOMAINAuth0 tenant domain (server-side)
AUTH0_CLIENT_IDAuth0 client ID (server-side)
AUTH0_CLIENT_SECRETAuth0 client secret

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 start

Regenerating Docker Compose

If you need to regenerate the elmo.yaml file (e.g. after changing Postgres mode):

elmo regen

This 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:

  1. Choose "Use existing Postgres" during elmo init, or
  2. Edit .env to set DATABASE_URL to your connection string
  3. Run elmo regen to update elmo.yaml (removes the Postgres container)
  4. Restart with elmo stop && elmo start

Your database must be PostgreSQL 15 or later.

Telemetry

Elmo collects anonymous usage data to help improve the product. This includes CLI install events and web app usage metrics.

To disable all telemetry:

DISABLE_TELEMETRY=1

Add this to your .env file, or export it in your shell before running CLI commands.

Was this page helpful?