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