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.

Var Type Required Default Description
PROJECT_NAME string yes myproject Project identifier (used in container names, paths)
BASE_DOMAIN string yes local.nself.org Root domain for nginx routing + SSL
ENV string yes dev Environment: dev / staging / prod
nself string no (mirrors ENV) Alt env selector
PROJECT_DOMAIN string no (derived from BASE_DOMAIN) Override project subdomain
PROJECT_DESCRIPTION string no “” Project description (used in admin UI)
nself string no info CLI log verbosity
LOG_LEVEL string no info Service-level log verbosity
NO_COLOR bool no unset Disable ANSI colors in CLI output

Group 2: Required services (always-on)

Var Service Default Description
POSTGRES_PASSWORD PostgreSQL (generated) Postgres superuser password
POSTGRES_DB PostgreSQL ${PROJECT_NAME} Default database name
HASURA_GRAPHQL_ADMIN_SECRET Hasura (generated) Hasura admin secret
HASURA_GRAPHQL_JWT_SECRET Hasura (generated) JWT signing key
AUTH_SMTP_HOST, AUTH_SMTP_PORT, AUTH_SMTP_USER, AUTH_SMTP_PASS Auth (Mailpit dev) SMTP for email verification
NGINX_HTTP_PORT, NGINX_SSL_PORT Nginx 80 / 443 Public-facing ports

Group 3: Optional services (toggle via *_ENABLED)

Var Service Default
ADMIN_ENABLED nself-admin false
MINIO_ENABLED MinIO false
REDIS_ENABLED Redis false
FUNCTIONS_ENABLED Functions false
MAIL_ENABLED Mail (Mailpit dev) false
SEARCH_ENABLED Search (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

Var Description Source
nself Pro plugin license key (loaded via nself license set) ~/.nself/license/key
nself Bypass online validation for offline development env-only
nself Owner key (vault.env) for nself.org backend vault.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