Environment variables

Every variable name, its purpose, whether it is required, and where it is read. Names only; no secret values.

How to read this table

These are variable names and purposes only. No secret value, example or generated credential is published here. A required variable stops the backend at boot when it is missing; an optional variable falls back to a default. The source column identifies where the value is read. Runtime admin settings can override some of these values even when the environment is set.

Names below are verified from the example environment file and from the code paths that read them. The example file lists ten names; the code also reads names the example file does not list, such as FRONT_DOOR_PORT, PGBOUNCER_PORT and SUPABASE_MANAGER_ENV_FILE.

Core manager variables

NamePurposeRequiredRead by
PORTManager API and WebSocket bind port, bound to 127.0.0.1.YesBackend and launcher
FRONTEND_URLAllowed frontend origin for API CORS and the development proxy.YesBackend and Vite proxy setup
JWT_SECRETSigns manager session tokens; at least 32 characters.YesSession signing and verification
VAULT_MASTER_KEYEncrypts project and edge-function secrets; at least 32 characters.YesVault encryption
ADMIN_EMAILEmail address seeded for the first administrator.YesFirst-boot admin seed
ADMIN_PASSWORDPassword seeded for the first administrator. If empty, a password is generated on first boot.NoFirst-boot admin seed

Proxy and front door

NamePurposeDefaultNotes
PROXY_PORTSubdomain reverse proxy port.9000Can be overridden by an admin setting.
PROXY_BASE_DOMAINBase domain for project subdomains.lvh.me in code; the example file uses supa.localhostWildcard resolution is required.
PROXY_ACCEPT_LVH_MEAccept lvh.me as an additional suffix.OffWidens host routing; opt in deliberately.
FRONT_DOOR_PORTPath-routed entry port.6000Admin setting wins over the environment.

Per-project ports and paths

NamePurposeRequiredNotes
PORT_BAND_BASEPort band base, validated by setup.NoThe allocator uses the constant 60000 and does not read this value.
PORT_BLOCK_SIZEPort block size, validated by setup.NoThe allocator uses 11 and does not read this value; the example file says 10.
PGBOUNCER_PORTShared PgBouncer pooler port.NoDefault 6432.
SUPABASE_WRAPPER_PROJECTS_ROOTRestricts written project paths to a root directory.NoSymlinks and paths outside the root are rejected.

Advanced and development

NamePurposeNotes
VAULT_MASTER_KEY_PREVIOUSPrior vault key retained after rotation.Keeps older records decryptable.
SUPABASE_MANAGER_ENV_FILEOverride the environment file path.Useful for tests and multiple instances.
VITE_BACKEND_PORTVite development proxy target.Read when Vite starts; only relevant in development.
NODE_ENVDevelopment or production mode.Set by the launcher.

Where the file lives

The backend loads my-supabase-app/.env at startup through dotenv, unless SUPABASE_MANAGER_ENV_FILE points elsewhere. The setup script writes the file with owner-only permissions. Vite reads its own environment from its working directory, which is why launching it from the wrong folder breaks the development proxy.

The example environment file is a list of names, not a set of values to copy. Generate real keys with the setup script.