Skip to content

Environment Variables

Authoritative inventory of every environment variable read by the ɳSelf ecosystem. Generated from SPORT F09 (.claude/docs/sport/F09-ENV-VAR-INVENTORY.md) which audits cli/internal/config/.env.example plus every os.Getenv call in the CLI Go source plus every plugin envVars field.

  • Core CLI bootstrap vars: 200+ (in CLI Go code)
  • Free plugin manifest vars: 100+ (across 25 plugins)
  • Pro plugin manifest vars: 600+ (across 62 plugins)

These are the minimum vars every ɳSelf project sets in .env.

VarTypeRequiredDefaultDescription
PROJECT_NAMEstringyesmyprojectProject identifier (used in container names, paths)
BASE_DOMAINstringyeslocal.nself.orgRoot domain for nginx routing + SSL
ENVstringyesdevEnvironment: dev / staging / prod
nselfstringno(mirrors ENV)Alt env selector
PROJECT_DOMAINstringno(derived from BASE_DOMAIN)Override project subdomain
PROJECT_DESCRIPTIONstringno""Project description (used in admin UI)
nselfstringnoinfoCLI log verbosity
LOG_LEVELstringnoinfoService-level log verbosity
NO_COLORboolnounsetDisable ANSI colors in CLI output
VarServiceDefaultDescription
POSTGRES_PASSWORDPostgreSQL(generated)Postgres superuser password
POSTGRES_DBPostgreSQL${PROJECT_NAME}Default database name
HASURA_GRAPHQL_ADMIN_SECRETHasura(generated)Hasura admin secret
HASURA_GRAPHQL_JWT_SECRETHasura(generated)JWT signing key
AUTH_SMTP_HOST, AUTH_SMTP_PORT, AUTH_SMTP_USER, AUTH_SMTP_PASSAuth(Mailpit dev)SMTP for email verification
NGINX_HTTP_PORT, NGINX_SSL_PORTNginx80 / 443Public-facing ports

Group 3: Optional services (toggle via *_ENABLED)

Section titled “Group 3: Optional services (toggle via *_ENABLED)”
VarServiceDefault
ADMIN_ENABLEDnself-adminfalse
MINIO_ENABLEDMinIOfalse
REDIS_ENABLEDRedisfalse
FUNCTIONS_ENABLEDFunctionsfalse
MAIL_ENABLEDMail (Mailpit dev)false
SEARCH_ENABLEDSearch (MeiliSearch)false

MLflow (MLFLOW_ENABLED) was removed as a built-in optional service in v1.1.0. Install it as a free plugin: nself plugin install mlflow.

Per slot:

CS_1_NAME=ping_api
CS_1_LANGUAGE=go
CS_1_PORT=8001
CS_1_DOMAIN=ping.nself.org

Up to 10 slots (CS_1 through CS_10). web/ uses CS_1 = ping_api (telemetry + license validation, port 8001).

VarDescriptionSource
nselfPro plugin license key (loaded via �P1� license set)~/.nself/license/key
nselfBypass online validation for offline developmentenv-only
nselfOwner key (vault.env) for nself.org backendvault.env

Each plugin declares its required env vars in its plugin.json manifest. See SPORT F09 for the full per-plugin breakdown (200+ unique vars across 100 paid).

For a single plugin:

Terminal window
nself plugin info <name>

The CLI prints required + optional env vars, defaults, and validation rules.

  • SPORT: .claude/docs/sport/F09-ENV-VAR-INVENTORY.md
  • CLI source: cli/internal/config/.env.example
  • Plugin manifests: plugins/free/<name>/plugin.json, plugins-pro/paid/<name>/plugin.json