Skip to main content

Service Inventory

Service Inventory — ɳSelf documentation.

Authoritative list of every backend service managed by the ɳSelf CLI. Generated from SPORT F08 (.claude/docs/sport/F08-SERVICE-INVENTORY.md) which audits cli/internal/config/defaults.go.

Required Services (4): Always On

These services are always provisioned by nself start. Disabling any of them is not supported.

# Service Type Default Internal Port Image
1 PostgreSQL required 5432 postgres:<version> (default 16)
2 Hasura GraphQL required 8080 hasura/graphql-engine:<version>
3 Auth (nHost) required 4000 nhost/hasura-auth:<version>
4 Nginx required 80 (HTTP) / 443 (SSL) nginx:<version>

Optional Services (6): Toggle via Env

These services run when explicitly enabled in the user’s .env file. Default state is opt-in.

# Service Default Internal Port Enable Flag
1 nself-admin 3021 ADMIN_ENABLED=true
2 MinIO 9000 (S3 API), 9001 (Console) MINIO_ENABLED=true
3 Redis 6379 REDIS_ENABLED=true
4 Functions 3008 FUNCTIONS_ENABLED=true
5 Mail (Mailpit dev) 1025 (SMTP), 8025 (UI) MAIL_ENABLED=true
6 Search (MeiliSearch) 7700 SEARCH_ENABLED=true

MLflow was reclassified from optional service to free plugin in v1.1.0. Install with nself plugin install mlflow.

Monitoring Bundle (10): Toggle as a Group

The monitoring bundle is a single composite plugin (plugins/free/monitoring/) that ships 10 services:

  • alertmanager
  • glitchtip
  • grafana
  • loki (port 3100)
  • otel-collector
  • prometheus
  • promtail
  • status
  • synthetics
  • web-vitals

Install:

nself plugin install monitoring

Custom Services (CS_1..CS_10): User-Defined

The CLI provides 10 custom service slots for user-defined services from 40+ language templates.

Slot Convention Example
CS_1 Lowest-numbered slot, often the primary custom service web/ repo uses CS_1 = ping_api (port 8001)
CS_2 .. CS_10 Additional slots User-defined

Configuration via .env:

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

Service Binding Rule

All internal services bind to 127.0.0.1. External access via Nginx only.

Source

  • SPORT: .claude/docs/sport/F08-SERVICE-INVENTORY.md
  • CLI source: cli/internal/config/defaults.go
  • Cross-reference: .claude/docs/sport/F05-PLUGIN-INVENTORY-MONITORING.md for monitoring bundle details