Skip to main content
This page is the authoritative reference for IMP environment variables. Variables are verified against the backend source (src/ and ee/) and the frontend source. Variables in the example .env that do not match code-level names are called out explicitly. Required? means the backend throws or the feature silently fails at startup if the variable is absent. Optional means it is feature-gated or has a safe default.

Core

Consumer configuration

FRONTEND is a deployment-convention variable used by consumer projects and templates (e.g. exulu-example) to supply the public frontend URL for invite and notification links. It is not read by @exulu/backend itself (process.env.FRONTEND does not appear in the backend source). Set it in whichever layer of your deployment config constructs those links.

Postgres

See Postgres service for connection pool settings and max_connections requirements.

Redis

Redis is required for background workers (embeddings, evals, routines). If REDIS_HOST and REDIS_PORT are absent, the server starts without worker support.

S3-compatible storage

IMP uses an S3-compatible bucket for file uploads (via the Uppy companion proxy). MinIO is the recommended self-hosted option.
The frontend also reads COMPANION_S3_ENDPOINT to construct upload URLs for the browser. Set it in both environments.
See S3 storage service for bucket creation and CORS configuration.

LiteLLM


Model providers

These variables appear in config.litellm.yaml under litellm_params using LiteLLM’s os.environ/ interpolation syntax. Set them in the backend container environment so LiteLLM can read them at startup. Add other provider API keys (OpenAI, Anthropic, Azure, etc.) the same way — expose them in the container environment and reference them from config.litellm.yaml with os.environ/VARIABLE_NAME.

Transcription

Transcription requires a running Whisper server. See Whisper service.

Meetings (Recall)

Meeting recording via Recall.ai is optional.

SMTP

There are two separate SMTP variable namespaces. See SMTP and authentication for the full explanation. Backend variables — used by the agent email tool (SMTP_*):
The shared .env.example in the example repo lists SMTP_USERNAME, SMTP_SENDER_EMAIL, and SMTP_TLS. These names do not match what the backend code reads. Use SMTP_USER, SMTP_FROM, and SMTP_SECURE in the backend container environment.
Frontend variables — used by NextAuth for OTP sign-in emails (EMAIL_SERVER_*):

Telemetry

OpenTelemetry export to SigNoz is optional. All three must be set for telemetry to initialise. See Observability.

Sandbox


Frontend-only variables

The following variables are read exclusively by the frontend container. They do not appear in the backend source.

Debug and internal variables

These variables are read by the source but are not intended for operator configuration in normal deployments.