Configuration

Configuration lives in an environment file generated at setup, with runtime overrides held in the manager database. These are the variable names and what they control.

How settings are resolved

Configuration comes from three sources, in this order: a value saved in the admin settings panel, the process environment including the .env file loaded at startup, and a built-in default. The admin interface shows which source is in effect for each configurable port and domain. That matters because a saved admin value silently wins over an environment change; if a change appears to do nothing, check the effective-source display first.

The environment file is my-supabase-app/.env, created by npm run setup. It is excluded from version control and should stay that way. Only the example file is tracked, and it contains no usable secret values.

Where each kind of setting lives

KindWhere it livesChanged by
Secrets and boot requirements.env at startupThe setup script or a manual edit
Runtime ports and domainsManager database, with environment fallbackAdmin Settings or the environment
Per-project settingsManager database and the project's own configurationProject Settings and the project folder
Project service portsAllocated and written into supabase/config.tomlThe allocator at project start

What is configurable

The core variables cover the manager port, the allowed frontend origin, the session signing key, the vault master key, the seeded administrator account, and the subdomain proxy. Optional variables cover the front-door port, the pooler port, an additional host suffix, a previous vault key, a project path root and the environment file location. Project service ports are not environment variables at all: they are allocated from the 60000 band.

Secrets are not examples

Signing keys, the vault master key and the administrator password are generated or supplied locally. Generate them with the setup script or a password manager. Do not reuse a value from documentation, a tutorial or another project. The backend refuses to boot when a required key is missing, too short, or equal to a well-known example value.

Rotating VAULT_MASTER_KEY without VAULT_MASTER_KEY_PREVIOUS makes existing vault secrets unreadable. Treat the key as durable data.

Choosing where to change a value

Change a value in the environment file when it is a boot requirement, such as a signing key, or when you want the same value on every start. Change it in admin settings when it is a runtime port or domain that an operator may need to adjust without editing files. Change it in project settings when it belongs to one project rather than the manager. When two sources disagree, the admin setting wins, and the effective-source display is the quickest way to confirm that.