Skip to main content

Environment Variables

Environment Variables — ɳSelf documentation.

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.

Counts (verified 2026-04-17)

  • 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)

Group 1: Core CLI (project bootstrap)

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

Group 2: Required services (always-on)

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)

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.

Group 4: Custom Services (CS_1..CS_10)

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).

Group 5: Licensing

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

Plugin envVars

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:

nself plugin info <name>

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

Source

  • 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