remoteEaze
Deployment

Environment Reference

Canonical reference for runtime, build, bootstrap, storage, email, frontend, and testing environment variables.

Last updated

This is the canonical environment-variable reference for deployment and local operation.

The backend and worker runtime schema is validated from:

  • packages/config/src/index.ts

Use this page as the source of truth, then use the smaller env excerpts shown on each deployment page as practical starting points.

Reading this page

ColumnMeaning
RequiredYes means the variable is required for that deployment context
DefaultValue used when the application or compose file provides one
ScopeWhere the variable matters

Compose bootstrap variables

These variables are used mainly by the compose deployment variants.

VariableRequiredDefaultScopePurpose
POSTGRES_USERUsually yes for compose-managed PostgresremoteeazeCompose infraDatabase superuser / app DB owner for the bundled Postgres service
POSTGRES_PASSWORDYes for compose-managed PostgresNoneCompose infraPassword for the bundled Postgres service
POSTGRES_DBUsually yes for compose-managed Postgresremote_eazeCompose infraDatabase name created by the bundled Postgres service
REDIS_PASSWORDYes for compose-managed RedisNoneCompose infraPassword for the bundled Redis service
API_PORTOptional3000Compose, manual runtimePublic or mapped API port
WEB_PORTOptional5173ComposePublic or mapped web port
DOCS_PORTOptional3001Compose docsPublic or mapped docs port
IMAGE_TAGOptionallatestDokploy, registry imagesImage tag for GHCR runtime images
SKIP_INFISICALOptionalfalseRegistry/source/manualBypasses the Infisical entrypoint wrapper when set to true

Infisical bootstrap variables

These variables are needed when you use Infisical-backed startup.

VariableRequiredDefaultScopePurpose
INFISICAL_PROJECT_IDYes when using InfisicalNoneCompose, manual runtimeIdentifies the Infisical project to read secrets from
INFISICAL_ENVYes when using Infisicaldev or prod depending on compose fileCompose, manual runtimeInfisical environment slug
INFISICAL_API_URLOptionalhttps://app.infisical.comCompose, manual runtimeInfisical API base URL
INFISICAL_TOKEN_APIYes when using Infisical composeNoneDokploy, source, registryToken used by the API container
INFISICAL_TOKEN_WORKERYes when using Infisical composeNoneDokploy, source, registryToken used by the worker container
INFISICAL_TOKEN_MIGRATEYes when using Infisical composeNoneDokploy, source, registryToken used by the migration container
INFISICAL_TOKEN_TOOLSRequired only when using the tools profile with InfisicalNoneDokploy, source, registryToken used by the tools container

Infisical versus raw envs

If you use Infisical, these bootstrap variables get the containers to the point where they can fetch the real app configuration. If you do not use Infisical, you must provide the full runtime env set directly and use SKIP_INFISICAL=true where supported. The Dokploy compose variant is intentionally Infisical-backed; use the source-build, registry-images, or manual-runtime paths if you want a raw-env deployment.

Core runtime variables

These are the main backend and worker runtime variables.

VariableRequiredDefaultScopePurpose
NODE_ENVOptionaldevelopmentAll app servicesRuntime mode
DATABASE_URLYesNoneAPI, worker, tools, migratePostgreSQL connection string
REDIS_URLYesNoneAPI, worker, toolsRedis connection string
LOG_LEVELOptionalinfoAPI, worker, toolsStructured log verbosity

Auth and security variables

VariableRequiredDefaultScopePurpose
BETTER_AUTH_SECRETYesNoneAPI, auth flows, toolsBetter Auth signing and internal security secret
BETTER_AUTH_URLYesNoneAPI, auth flowsPublic backend auth base URL
ENCRYPTION_KEYYesNoneAPI, workerApplication encryption key
ENCRYPTION_SALTYesNoneAPI, workerApplication encryption salt
LICENSE_SECRET_KEYYesNoneAPI, workerLicense signing / verification secret
FRONTEND_URLYesNoneAPI, worker, emailPublic web app URL used in links and trusted-origins resolution
ADDITIONAL_TRUSTED_ORIGINSOptionalEmptyAPI/authExtra comma-separated request origins allowed for auth and browser-like clients
FRONTEND_NATIVE_URLSOptionalEmptyAPI/authExtra comma-separated native-shell origins trusted by auth/session logic

Notes on trusted origins

Typical use cases for ADDITIONAL_TRUSTED_ORIGINS or FRONTEND_NATIVE_URLS:

  • Android emulator traffic
  • Capacitor shells
  • embedded/native wrappers that call auth endpoints directly

Examples:

ADDITIONAL_TRUSTED_ORIGINS=http://10.0.2.2
FRONTEND_NATIVE_URLS=capacitor://localhost

Email and notification variables

VariableRequiredDefaultScopePurpose
RESEND_API_KEYYes in the current runtime schemaNoneAPI, worker, toolsResend API authentication
RESEND_FROM_EMAILYes in the current runtime schemaNoneAPI, worker, toolsSender address used for outbound emails
REMOTE_EAZE_DISABLE_OUTBOUND_EMAILOptionalfalseAPI, worker, toolsDisables actual outbound email delivery while keeping the code paths intact

Email disable flag does not remove the env requirement

The current env schema still requires RESEND_API_KEY and RESEND_FROM_EMAIL even when REMOTE_EAZE_DISABLE_OUTBOUND_EMAIL=true.

Worker and scheduler variables

VariableRequiredDefaultScopePurpose
WORKER_CONCURRENCYOptional15WorkerMax parallel jobs processed across queues
WORKER_SHUTDOWN_TIMEOUT_MSOptional30000WorkerGraceful worker shutdown timeout
SYSTEM_SESSION_TIMEOUTOptional900API, workerSYSTEM tenant inactivity timeout in seconds
SESSION_CLEANUP_INTERVAL_MSOptional120000WorkerHow often the session cleanup job runs
FDT_DUE_SCAN_INTERVAL_MSOptional60000WorkerHow often the forward-dated due-scan runs
COB_SCHEDULER_INTERVAL_MSOptional60000WorkerHow often the COB scheduler scans for due runs
HOLIDAY_CHANGE_BUFFER_DAYSOptional1APIPrevents adding public holidays too close to the current working day
WORKBENCH_OFFLINE_SESSION_TIMEOUTOptional86400API, workerOffline field-agent session timeout in seconds

Storage variables

The storage plugin is startup-critical. If these values are wrong, the API can fail early.

VariableRequiredDefaultScopePurpose
STORAGE_ENDPOINTYesNoneAPI, worker, web buildS3-compatible endpoint URL
STORAGE_REGIONOptionalus-east-1API, workerS3 region string
STORAGE_BUCKETYesNoneAPI, workerBucket name
STORAGE_ACCESS_KEYYesNoneAPI, workerStorage access key
STORAGE_SECRET_KEYYesNoneAPI, workerStorage secret key
STORAGE_PRESIGN_UPLOAD_EXPIRY_SECONDSOptional300APIPresigned upload URL lifetime
STORAGE_PRESIGN_DOWNLOAD_EXPIRY_SECONDSOptional900APIPresigned download URL lifetime
STORAGE_MAX_FILE_SIZE_BYTESOptional52428800APIMaximum accepted upload size in bytes

Frontend and browser variables

These are read by the web app or by the web build.

VariableRequiredDefaultScopePurpose
VITE_APP_VERSIONOptionalNoneWeb build/runtimeFrontend release identifier for cache resets and diagnostics
VITE_BACKEND_URLOptionalNoneNative / special web setupsExplicit backend base URL when not using same-origin routing
VITE_API_BASE_URLOptional, deprecatedNoneNative / special web setupsOlder alias for VITE_BACKEND_URL
REMOTE_EAZE_DISABLE_PWAOptionalfalseWeb buildDisables PWA generation when set to true
VITE_WORKBENCH_OFFLINE_ACCESS_TTL_MSOptional86400000Web runtimeOffline access envelope TTL
VITE_WORKBENCH_NATIVE_LOCAL_REENTRY_TTL_MSOptional172800000Web/native runtimeNative local re-entry TTL
VITE_WORKBENCH_WEB_LOCAL_REENTRY_TTL_MSOptional86400000Web runtimeBrowser local re-entry TTL
VITE_ENABLE_AGENT_GEO_MAPOptionaltrueWeb runtimeEnables the geo-lock map picker
VITE_AGENT_GEO_MAP_STYLE_URLOptionalOpenFreeMap BrightWeb runtimeMap style URL
VITE_AGENT_GEO_SEARCH_URLOptionalPhotonWeb runtimeSearch endpoint for map places
VITE_AGENT_GEO_SEARCH_LIMITOptional5Web runtimeMax search results
VITE_AGENT_GEO_SEARCH_DEBOUNCE_MSOptional350Web runtimeSearch debounce
VITE_DEFAULT_MAP_LATOptional-1.2921Web runtimeDefault map latitude
VITE_DEFAULT_MAP_LNGOptional36.8219Web runtimeDefault map longitude
VITE_PWA_INSTALL_PROMPT_AGENT_TTL_HOURSOptional48Web runtimeAgent reminder cooldown
VITE_PWA_INSTALL_PROMPT_ADMIN_TTL_HOURSOptional336Web runtimeAdmin reminder cooldown
VITE_WORKBENCH_RECONNECT_DEBOUNCE_MSOptional5000Web runtimeWorkbench reconnect debounce
VITE_WORKBENCH_SYNC_MAX_CONCURRENCYOptional2Web runtimeSync concurrency
VITE_WORKBENCH_SYNC_MAX_RETRY_ATTEMPTSOptional5Web runtimeSync retry attempts
VITE_WORKBENCH_SYNC_BACKOFF_BASE_MSOptional2000Web runtimeSync backoff base
VITE_WORKBENCH_SYNC_BACKOFF_MAX_MSOptional60000Web runtimeSync backoff max
VITE_WORKBENCH_SYNC_LOCK_TIMEOUT_MSOptional120000Web runtimeSync lock timeout

Telemetry variables

VariableRequiredDefaultScopePurpose
OTEL_EXPORTER_OTLP_ENDPOINTOptional but strongly recommended when using telemetryhttp://127.0.0.1:4317API, workerOTLP gRPC traces and metrics endpoint
OTEL_SAMPLING_RATIOOptional1.0APIAPI trace sampling ratio

The worker exports traces and metrics to the same OTLP endpoint, but currently does not expose a separate sampling-ratio control in its bootstrap code.

Testing-only variables

These are for integration-style and API E2E test harnesses, not normal runtime.

VariableRequiredDefaultScopePurpose
INTEGRATION_DATABASE_URLRequired for integration-style suitesNoneTest harnessSeparate test database connection string
INTEGRATION_REDIS_URLRequired for integration-style suitesNoneTest harnessSeparate Redis connection string or logical DB

Minimal envs by scenario

Infisical-backed Dokploy bootstrap

POSTGRES_PASSWORD=change-me
REDIS_PASSWORD=change-me
INFISICAL_PROJECT_ID=your-project-id
INFISICAL_ENV=prod
INFISICAL_TOKEN_API=...
INFISICAL_TOKEN_WORKER=...
INFISICAL_TOKEN_MIGRATE=...
INFISICAL_TOKEN_TOOLS=...

All normal application secrets and URLs live in Infisical for this path.

Non-Infisical compose bootstrap

SKIP_INFISICAL=true
POSTGRES_PASSWORD=change-me
REDIS_PASSWORD=change-me
DATABASE_URL=postgresql://remoteeaze:change-me@postgres:5432/remote_eaze
REDIS_URL=redis://:change-me@redis:6379
BETTER_AUTH_SECRET=change-me-minimum-32-chars
BETTER_AUTH_URL=https://api.example.com
ENCRYPTION_KEY=change-me-minimum-32-chars
ENCRYPTION_SALT=change-me-minimum-16-chars
LICENSE_SECRET_KEY=change-me-minimum-32-chars
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=noreply@example.com
FRONTEND_URL=https://remote-eaze.example.com
STORAGE_ENDPOINT=https://storage.example.com
STORAGE_BUCKET=remote-eaze
STORAGE_ACCESS_KEY=...
STORAGE_SECRET_KEY=...

This is only the smallest practical starting point. In a real raw-env deployment, the api, worker, tools, and migrate services all rely on the same broader runtime configuration documented on this page.

Use the deployment-mode pages for the smaller, path-specific excerpts.

On this page