Skip to main content
Comprehensive reference for all environment variables relevant to self-hosting Inbox Zero.

All Environment Variables

VariableRequiredDescriptionDefault
Core
DATABASE_URLYesPostgreSQL connection string
NEXT_PUBLIC_BASE_URLYesPublic URL where app is hosted (e.g., https://yourdomain.com)
INTERNAL_API_KEYYesSecret key for internal API calls. Generate with openssl rand -hex 32
AUTH_SECRETYesbetter-auth secret. Generate with openssl rand -hex 32
NODE_ENVNoEnvironment modedevelopment
Encryption
EMAIL_ENCRYPT_SECRETYesSecret for encrypting OAuth tokens. Generate with openssl rand -hex 32
EMAIL_ENCRYPT_SALTYesSalt for encrypting OAuth tokens. Generate with openssl rand -hex 16
Google OAuth
GOOGLE_CLIENT_IDYesOAuth client ID from Google Cloud Console
GOOGLE_CLIENT_SECRETYesOAuth client secret from Google Cloud Console
Microsoft OAuth
MICROSOFT_CLIENT_IDNoOAuth client ID from Azure Portal
MICROSOFT_CLIENT_SECRETNoOAuth client secret from Azure Portal
MICROSOFT_WEBHOOK_CLIENT_STATENoSecret for Microsoft webhook verification. Generate with openssl rand -hex 32
Messaging Adapters
TEAMS_BOT_APP_IDNoMicrosoft Teams bot app ID
TEAMS_BOT_APP_PASSWORDNoMicrosoft Teams bot app password/secret
TEAMS_BOT_APP_TENANT_IDNoTenant ID for single-tenant Teams bot setups
TEAMS_BOT_APP_TYPENoTeams bot app type (MultiTenant or SingleTenant)
TELEGRAM_BOT_TOKENNoTelegram bot token from BotFather
TELEGRAM_BOT_SECRET_TOKENNoOptional Telegram webhook secret token (sent in x-telegram-bot-api-secret-token)
Google PubSub
GOOGLE_PUBSUB_TOPIC_NAMEYesFull topic name (e.g., projects/my-project/topics/gmail)
GOOGLE_PUBSUB_VERIFICATION_TOKENNoToken for webhook verification
Redis
UPSTASH_REDIS_URLNo*Upstash Redis URL or any Upstash-compatible HTTP Redis endpoint (*required if not using Docker Compose with local Redis)
UPSTASH_REDIS_TOKENNo*Upstash Redis token or serverless-redis-http token (*required if not using Docker Compose)
REDIS_URLNoRedis URL for subscriptions and the optional BullMQ worker
LLM Provider Selection
DEFAULT_LLM_PROVIDERYesPrimary LLM provider (anthropic, azure, vertex, google, openai, bedrock, openrouter, groq, aigateway, ollama)
DEFAULT_LLM_MODELNoModel to use with default providerProvider default
DEFAULT_LLM_FALLBACKSNoOrdered fallback chain (provider:model,provider:model, explicit model required)
DEFAULT_OPENROUTER_PROVIDERSNoComma-separated list of OpenRouter providers
ECONOMY_LLM_PROVIDERNoProvider for cheaper operations
ECONOMY_LLM_MODELNoModel for economy provider
ECONOMY_LLM_FALLBACKSNoFallback chain for economy model type (provider:model, explicit model required)
ECONOMY_OPENROUTER_PROVIDERSNoOpenRouter providers for economy model
CHAT_LLM_PROVIDERNoProvider for chat operationsFalls back to default
CHAT_LLM_MODELNoModel for chat provider
CHAT_LLM_FALLBACKSNoFallback chain for chat model type (provider:model, explicit model required)
CHAT_OPENROUTER_PROVIDERSNoOpenRouter providers for chat
LLM Provider Credentials
LLM_API_KEYNoShared fallback API key for LLM providers. Used when a provider-specific key is not set.
ANTHROPIC_API_KEYNoAnthropic API key
OPENAI_API_KEYNoOpenAI API key
GOOGLE_API_KEYNoGoogle Gemini API key
GOOGLE_THINKING_BUDGETNoOverride the thinking budget for Gemini 2.x/2.5 models used through Google, Vertex, or AI Gateway. Set to 0 to omit the budget. Gemini 3 models still use minimal thinking.128
GROQ_API_KEYNoGroq API key
OPENROUTER_API_KEYNoOpenRouter API key
AI_GATEWAY_API_KEYNoAI Gateway API key
PERPLEXITY_API_KEYNoPerplexity API key for guest research for meeting briefs
Azure OpenAI
AZURE_API_KEYNoAzure OpenAI API key (required when azure is used and LLM_API_KEY is not set)
AZURE_RESOURCE_NAMENoAzure OpenAI resource name (required when azure is used as a default or fallback provider)
AZURE_API_VERSIONNoAzure OpenAI API version override
Google Vertex
GOOGLE_VERTEX_PROJECTNoGoogle Cloud project ID for Vertex AI (required when vertex is used as a default or fallback provider)
GOOGLE_VERTEX_LOCATIONNoVertex AI locationus-central1
GOOGLE_VERTEX_CLIENT_EMAILNoService account client email for Vertex auth (when not using ADC file)
GOOGLE_VERTEX_PRIVATE_KEYNoService account private key for Vertex auth (supports \n escaped newlines)
GOOGLE_APPLICATION_CREDENTIALSNoPath to a Google service account JSON file for ADC/Vertex auth
AWS Bedrock
BEDROCK_ACCESS_KEYNoAWS access key for Bedrock. See AI SDK Bedrock documentation.
BEDROCK_SECRET_KEYNoAWS secret key for Bedrock
BEDROCK_REGIONNoAWS region for Bedrockus-west-2
Ollama (Local LLM)
OLLAMA_BASE_URLNoOllama API endpoint (e.g., http://localhost:11434/api)
OpenAI-Compatible (Local LLM)
OPENAI_COMPATIBLE_BASE_URLNoBase URL for an OpenAI-compatible server (e.g. LM Studio: http://localhost:1234/v1)http://localhost:1234/v1
Background Jobs (QStash, optional)
QSTASH_TOKENNoQStash API token (optional; fallback runs jobs via internal API + cron)
QSTASH_CURRENT_SIGNING_KEYNoCurrent signing key for webhooks
QSTASH_NEXT_SIGNING_KEYNoNext signing key for key rotation
QUEUE_BACKENDNoBackground job transport: qstash, bullmq, or internalAuto-detect (qstash when configured, else internal)
Sentry
SENTRY_AUTH_TOKENNoAuth token for source maps
SENTRY_ORGANIZATIONNoOrganization slug
SENTRY_PROJECTNoProject slug
NEXT_PUBLIC_SENTRY_DSNNoClient-side DSN
Resend
RESEND_API_KEYNoAPI key for transactional emails
RESEND_AUDIENCE_IDNoAudience ID for contacts
RESEND_FROM_EMAILNoFrom email addressInbox Zero <updates@transactional.getinboxzero.com>
NEXT_PUBLIC_IS_RESEND_CONFIGUREDNoClient-side flag indicating if Resend is configured
Other
CRON_SECRETNoSecret for cron job authentication
HEALTH_API_KEYNoAPI key for health checks
WEBHOOK_URLNoExternal webhook URL
Digest Controls
DIGEST_MAX_SUMMARIES_PER_24HNoMaximum digest summaries per email account in a rolling 24-hour window. Set to 0 to disable the cap.50
Admin & Access Control
ADMINSNoComma-separated list of admin emails
AUTO_ENABLE_ORG_ANALYTICSNoDefault new organization memberships to analytics enabledfalse
Feature Flags
NEXT_PUBLIC_CONTACTS_ENABLEDNoEnable contacts featurefalse
NEXT_PUBLIC_EMAIL_SEND_ENABLEDNoEnable email sendingtrue
NEXT_PUBLIC_BYPASS_PREMIUM_CHECKSNoBypass premium checks (recommended for self-hosting)true
NEXT_PUBLIC_DIGEST_ENABLEDNoEnable email digest feature, which sends periodic summaries of emails. Works without QStash (no retries).false
NEXT_PUBLIC_MEETING_BRIEFS_ENABLEDNoEnable meeting briefs, which automatically sends pre-meeting briefings to users. Requires the meeting briefs cron job to be running.false
NEXT_PUBLIC_FOLLOW_UP_REMINDERS_ENABLEDNoEnable follow-up reminders, which allows users to add labels to emails for automatic follow-up tracking. Requires the follow-up reminders cron job to be running.false
NEXT_PUBLIC_INTEGRATIONS_ENABLEDNoEnable the integrations feature, allowing users to connect external services.false
NEXT_PUBLIC_SMART_FILING_ENABLEDNoEnable the Smart Filing feature for automatic document organization from email attachments.false
NEXT_PUBLIC_AUTO_DRAFT_DISABLEDNoDisable the auto-drafting feature, which automatically drafts replies based on assistant rules.false
White Labeling (Optional)
NEXT_PUBLIC_BRAND_NAMENoBrand name used in UI text and metadataInbox Zero
NEXT_PUBLIC_BRAND_LOGO_URLNoCustom logo URL or public asset path (for example /images/brand-logo.svg)Built-in Inbox Zero logo
NEXT_PUBLIC_BRAND_ICON_URLNoCustom app icon URL or public asset path/icon.png
NEXT_PUBLIC_SUPPORT_EMAILNoContact email shown in support links and error messageselie@getinboxzero.com
Debugging
DISABLE_LOG_ZOD_ERRORSNoDisable logging Zod validation errors
ENABLE_DEBUG_LOGSNoEnable debug loggingfalse
NEXT_PUBLIC_LOG_SCOPESNoComma-separated log scopes

Setup Guides

For detailed setup instructions, see the Setup Guides:

Notes

  • If running the app in Docker and Ollama locally, use http://host.docker.internal:11434/api as the OLLAMA_BASE_URL.
  • If running the app in Docker and an OpenAI-compatible server locally, replace localhost with host.docker.internal in OPENAI_COMPATIBLE_BASE_URL.
  • When using Docker Compose with --profile all, database and Redis URLs are auto-configured. See the Docker/VPS Deployment Guide for details.
  • For Azure OpenAI, set AZURE_RESOURCE_NAME and either AZURE_API_KEY or LLM_API_KEY when using azure as a default or fallback provider.
  • For Google Vertex, set GOOGLE_VERTEX_PROJECT when using vertex as a provider. For auth, use either GOOGLE_APPLICATION_CREDENTIALS (recommended for Node.js) or both GOOGLE_VERTEX_CLIENT_EMAIL and GOOGLE_VERTEX_PRIVATE_KEY. You do not need to set all three auth variables. See AI SDK Google Vertex documentation.