Skip to main content
Manifest reads its configuration from environment variables. In the bundled Docker setup these come from ~/manifest/.env. For docker run, pass them with -e. For non-Docker installs, export them in the shell before launching the backend.
This page is for self-hosted instances only. On Manifest Cloud there is no server to configure and no .env to edit — everything you can change lives in the dashboard.

Core

Network & security

Database

LLM proxy

How Manifest talks to upstream providers.

Request recordings

Storage and retention for request logs. The bundled Docker setup already sets the filesystem path and mounts a volume for it, so a default install needs none of these.
A partial S3 configuration disables recording rather than falling back to local disk. Set bucket and region, and either both access-key variables or neither.

Autofix

Autofix works with zero configuration; AUTOFIX_GLOBAL_ENABLED=false is the kill switch.

Email

Used for both Better Auth transactional emails (signup verification, password reset) and threshold alerts. Set one provider block.
Without an email provider, signup verification is waived (users are created as unverified-but-usable) and password reset silently no-ops. Hard-limit blocks still work; alerts just don’t email.

Legacy Mailgun-only

Older deployments used these. Kept for backward compatibility; new installs should use EMAIL_* instead.

OAuth logins

Each provider activates automatically when both *_CLIENT_ID and *_CLIENT_SECRET are set. Configure the callback URL in the provider’s console as ${BETTER_AUTH_URL}/api/auth/callback/<provider>. Subscription OAuth (ChatGPT, Claude, MiniMax) uses Manifest-side client IDs by default. Override only if you’ve registered your own app:

Telemetry

Error monitoring

Sentry is opt-in and stays off unless you give it a DSN.

Operations

Postgres bundled volume

When you run the bundled compose file, Manifest brings up its own Postgres container. To use a stronger password than the default, set both of these. They must agree, and special characters in the password must be percent-encoded in DATABASE_URL: Special-char encoding: @%40, :%3A, /%2F.