Durabull Documentation

Environment Variables

Complete runtime environment variable reference for local and production Durabull deployments.

Core Runtime

VariableRequiredPurpose
NODE_ENVNoRuntime mode (development, test, production)
PORTNoAPI server port
APP_BASE_URLRecommendedCanonical app URL used by auth and email flows
VITE_PUBLIC_APP_URLRecommendedPublic URL exposed to browser clients

Auth and Identity

VariableRequiredPurpose
DURABULL_AUTHLESSNoEnable/disable authless mode
BETTER_AUTH_SECRETRequired when auth enabledSession/auth signing secret
GOOGLE_OAUTH_CLIENT_IDOptionalGoogle OAuth client ID
GOOGLE_OAUTH_CLIENT_SECRETOptionalGoogle OAuth secret
GITHUB_OAUTH_CLIENT_IDOptionalGitHub OAuth client ID
GITHUB_OAUTH_CLIENT_SECRETOptionalGitHub OAuth secret

Persistence and Data

VariableRequiredPurpose
DURABULL_POSTGRES_PORTOptionalHost port mapped to Docker Postgres (55432 default)
DATABASE_URLOptionalEnables PostgreSQL mode when set
REDIS_URLOptionalGeneric Redis URL used by scripts/defaults
DURABULL_PGLITE_DIROptionalOverride PGlite data directory

Connection Mode

VariableRequiredPurpose
DURABULL_ENV_CONNECTIONSNoUse env-driven connection set
DURABULL_REDIS_URL_DEFAULTRecommendedDefault env connection key
DURABULL_REDIS_URL_<NAME>When env mode enabledRedis URL for named connection
DURABULL_REDIS_URL_<NAME>_ENVIRONMENTOptionaldevelopment, staging, or production

Optional Integrations

VariableRequiredPurpose
RESEND_API_KEYOptionalInvitation email delivery
POSTHOG_KEYOptionalPostHog project API key
POSTHOG_HOSTOptionalPostHog upstream host for the reverse proxy (defaults to https://us.i.posthog.com)

Note: The web app receives PostHog configuration from the API at /api/app/config. You only need to set the server-side POSTHOG_KEY and POSTHOG_HOST variables — no VITE_ prefix is required. Set POSTHOG_HOST to PostHog's ingestion domain (for example https://us.i.posthog.com), not your own app /ingest URL. The API reverse-proxies analytics traffic through /ingest to bypass ad blockers.

Optional Runtime Toggles

VariableRequiredPurpose
DISABLE_RATE_LIMITNoDisable in-memory rate limiting
ASSET_PRELOAD_MAX_SIZENoAsset preload tuning
ASSET_PRELOAD_VERBOSE_LOGGINGNoExtra preload diagnostics
NODE_ENV=production
APP_BASE_URL=https://your-domain.example
VITE_PUBLIC_APP_URL=https://your-domain.example
DURABULL_AUTHLESS=false
BETTER_AUTH_SECRET=<long-random-secret>
DURABULL_ENV_CONNECTIONS=true
DURABULL_REDIS_URL_MAIN=redis://...
DURABULL_REDIS_URL_MAIN_ENVIRONMENT=production
DURABULL_REDIS_URL_DEFAULT=MAIN

Screenshot placeholder: .env sample file in docs-friendly format.