Updated 24 October 2026 · For version 0.3.0 · Edit on GitHub
Outbound OS reads its settings from .env in the project folder. Only ADMIN_EMAIL is needed to start; everything else is either generated on first boot or belongs to a channel you choose to connect. The complete, commented list is .env.example in the repository.
After changing .env, apply it with docker compose up -d.
Sign-in
Setting
Default
What it does
ADMIN_EMAIL
—
The first admin, created on first boot. Set this before starting.
ADMIN_PASSWORD
generated
Their password. Left empty, a random one is printed once in the log.
AUTH_PROVIDER
local
local for built-in email and password; clerk for Clerk-hosted sign-in.
CLERK_SECRET_KEY, CLERK_PUBLISHABLE_KEY
—
Only with AUTH_PROVIDER=clerk.
JWT_SECRET
generated
Signs sessions. Generated into instance-secrets.json if empty.
Your business
Also editable in the setup wizard and Settings → Workspace; values saved there win over .env.
Setting
Default
What it does
BUSINESS_NAME, BUSINESS_WEBSITE
—
Your identity in outgoing messages and emails.
BUSINESS_TIMEZONE
UTC
An IANA name such as Europe/London. When “today” starts for limits and reports.
DEFAULT_COUNTRY_CODE
—
Calling code added to numbers entered without one: 1, 44, 91…
BUSINESS_CURRENCY
USD
Currency for supplier costs, profit and reports.
EMAIL_SIGNATURE_NAME, EMAIL_FOOTER_NOTE
—
Signature and footer in outreach emails.
Server
Setting
Default
What it does
OUTBOUNDOS_PORT
3001
Port published on the host by Docker Compose.
TRUST_PROXY
local proxies
How many proxy hops to trust for client addresses. Behind a CDN, use its hop count.
CORS_ORIGIN
—
Only if the dashboard is served from a different origin.
WhatsApp
Numbers are connected in Settings → WhatsApp. These are for receiving webhooks and defaults.
Setting
Default
What it does
META_APP_SECRET
—
Verifies Meta webhook signatures. Required to receive replies from the Cloud API.
META_WEBHOOK_VERIFY_TOKEN
—
Any random string; the same value goes in Meta’s webhook form.
META_TEMPLATE_LANGUAGE
en
Default language code of your approved templates.
WA_FIRST_TOUCH_TEMPLATE
—
First-contact template for numbers without their own default.
WA_WARMUP_WEEK
1
Warm-up stage, 1–8. Controls how quickly daily volume ramps up.
Email
Mailboxes are added in Settings → Email; their credentials are encrypted in the database.
Setting
Default
What it does
BREVO_WEBHOOK_PUBLIC_URL
—
Your public HTTPS base address, for Brevo event callbacks.
BREVO_WEBHOOK_SECRET
—
Shared secret Brevo must send with each event.
Encryption and other webhooks
Setting
Default
What it does
LEAD_SYNC_ENCRYPTION_KEY
generated
Encrypts stored channel credentials. Never change it once set.
IMESSAGE_WEBHOOK_SECRET
—
Required to accept BlueBubbles (iMessage) webhooks.
MCP server
Setting
Default
What it does
MCP_SERVICE_TOKEN
—
Shared between the app and the MCP server so it can call the API.
MCP_BEARER_TOKEN
—
The token AI clients send. Also the OAuth sign-in password unless OAUTH_PASSWORD is set.
OAUTH_PASSWORD
—
Optional separate password for the claude.ai OAuth sign-in step.
OUTBOUNDOS_MCP_PORT
3010
Port published for the MCP server.
Generated secrets
If JWT_SECRET or LEAD_SYNC_ENCRYPTION_KEY is empty, the first boot generates it into instance-secrets.json next to the database, in the data volume. Keep that file with your backups: without the encryption key, saved channel credentials cannot be read. See backups and upgrades.