Repository navigation
nself yaml
nself.yaml (or nself.yml) is the project manifest nself build reads to decide which plugins and bundles belong to the project. It holds no configuration values: those live in .env files (see Config-Env-Vars).
| Key | Type | Meaning |
|---|---|---|
app |
string | Project name. |
cli_min_version |
string (optional semver, with or without v) |
Minimum nself CLI version this project needs. Older releases get a doctor warning with E060 and Fix: nself update; development builds skip comparison. Build and start are unchanged. |
bundle |
string | One bundle to install, expanded from the bundle catalog. |
bundles |
list of strings | Several bundles. |
plugins |
list of strings, or a map with free and pro lists |
Plugins to wire in. |
Every other key is not read. The same list, as a machine contract, is schemas/nself-yaml.v1.schema.json, generated by tools/schemagen from the ProjectManifest Go type (never hand-edited; make schemas regenerates it and make contract-check fails when it drifts).
app: myapp
cli_min_version: 1.4.0
bundle: task
plugins:
free: [cron, notify]
pro: [ai]
x-display-name: My App # extension key: ignoredA key that starts with x- is an extension. nself ignores it and the validator accepts it, at the top level and inside the plugins map. Use it for app metadata that tools other than nself read (a display name, an owner, a tier). Rename an unread key tier to x-tier to keep it without a finding.
nself config validate also checks nself.yaml when the project has one. It runs after the existing validators. Each finding goes to stderr as file:line:col: severity: path: [code] message (fix).
| Code | Finding |
|---|---|
| E436 | An unknown key, at any depth the types describe (for example plugins.required). The fix names a close match when there is one (project suggests app) and the x- rename. |
| E435 | A syntax error, an unreadable file, a duplicate key (the finding names the key and the line of the first one; nself build rejects it too), or a value of the wrong type (plugins: 7, a plugin entry that is a map, a non-string app). |
| E061 |
cli_min_version is not a complete semantic version such as 1.4.0 or v1.4.0. It warns in v1.4 mode and fails validation in v1.5 mode. |
| Mode | Findings are | Exit status |
|---|---|---|
| v1.4 (default) | warnings | unchanged: config validate exits as it did without the check |
| v1.5 (opt in; see Compat-V15) | errors | 1 when there is any finding |
nself build turns a number, boolean or date written where a string belongs into text (app: true becomes "true", bundle: 1.5 becomes "1.5", app: 2024-01-01 becomes a date string). That is rarely what you meant, so the validator reports it as E435 and the fix is to quote the value: app: "1.5". (YAML 1.2 readers keep no and yes as text, so those need no quotes.)
- Merge keys (
<<: *anchor, or<<: [*a, *b]) are resolved, and the merged keys are validated like explicit ones; explicit keys win. The JSON Schema cannot see merges, so for a file that uses<<the validator is authoritative and the schema is not compared. - Only the first YAML document is read. A later document (after
---) is ignored bynself build; the validator says so with a warning in both modes. - An empty file, or one holding only
~ornull, is an empty manifest: valid, and the schema accepts a null document.
See Compat-V15 and error-codes. nself build parsing is not changed by the validator: a file that builds today still builds.
The reference-app manifests carry keys nothing reads (display_name, version, tier, auth_mode, services, project). In v1.4 they show up as warnings. The migration to x- keys is done in the reference-app repos, not here.
Getting Started
Commands
- Commands, Overview
- Lifecycle: cmd-init · cmd-build · cmd-start · cmd-stop · cmd-restart · cmd-dev
- Monitoring: cmd-status · cmd-logs · cmd-health · cmd-urls · cmd-doctor · cmd-monitor · cmd-alerts · cmd-sentry · cmd-watchdog
- Data: cmd-db · cmd-backup · cmd-dr · cmd-queue · cmd-webhooks
- Config: cmd-config · cmd-service · cmd-env · cmd-promote
- Networking: cmd-ssl · cmd-trust · cmd-dns-setup
- Security: cmd-access · cmd-security · cmd-secrets
- Tenancy: cmd-tenant · cmd-billing
- Plugins: cmd-plugin · cmd-license · cmd-dogfood (extracted, CLI-R11) · cmd-k8s (extracted, CLI-R11) · cmd-encryption (extracted, CLI-R11) · cmd-waf (extracted, CLI-R11) · cmd-federation (extracted, CLI-R11) · cmd-mail (extracted, CLI-R11) · cmd-dlq (extracted, CLI-R11)
- AI: cmd-ai · cmd-claw · cmd-model
- Templates: cmd-template
- Utilities: cmd-exec · cmd-clean · cmd-reset · cmd-update · cmd-upgrade · cmd-version · cmd-admin · cmd-migrate · cmd-migrate-firebase · cmd-migrate-supabase · cmd-completion
Features
- Features, Overview
- Feature-Auth
- Feature-Storage
- Feature-Search
- Feature-Functions
- Feature-Email
- Feature-Monitoring
- Feature-Plugins
- Feature-nClaw, AI Assistant
- Feature-nChat, Messaging
- Feature-nFamily, Family Social
- Feature-nCloud, Managed Hosting
- Feature-Memory-Rooms, Knowledge Organization
- Feature-Agent-Dashboard, Agent Metrics
- Feature-Image-Generation, AI Image Generation
Configuration
- Configuration, Overview
- Config-Env-Vars
- Config-Postgres
- Config-Hasura
- Config-Auth
- Config-Nginx
- Shared-Proxy
- Config-Optional-Services
- Config-Custom-Services
- Config-System
Plugins (87 + 10 monitoring)
- Plugin-Overview
- Plugin-Catalog
- Plugin-Install
- Plugin-Licensing
- Plugin-Architecture
- Plugin-Dev-Guide
- Plugin-Migrations-Contract
Free (25)
- plugin-backup
- plugin-content-acquisition
- plugin-content-progress
- plugin-cron
- plugin-donorbox
- plugin-feature-flags
- plugin-github
- plugin-github-runner
- plugin-invitations
- plugin-jobs
- plugin-link-preview
- plugin-mdns
- plugin-mlflow
- plugin-monitoring
- plugin-notifications
- plugin-notify
- plugin-paypal
- plugin-search
- plugin-shopify
- plugin-stripe
- plugin-subtitle-manager
- plugin-tokens
- plugin-torrent-manager
- plugin-vpn
- plugin-webhooks
Pro (62)
- plugin-access-controls
- plugin-activity-feed
- plugin-admin-api
- plugin-analytics
- plugin-auth
- plugin-bots
- plugin-browser
- plugin-calendar
- plugin-cdn
- plugin-chat
- plugin-claw
- plugin-claw-budget
- plugin-claw-news
- plugin-claw-web
- plugin-cloudflare
- plugin-cms
- plugin-compliance
- plugin-ddns
- plugin-devices
- plugin-documents
- plugin-entitlements
- plugin-file-processing
- plugin-game-metadata
- plugin-geocoding
- plugin-geolocation
- plugin-google
- plugin-home
- plugin-idme
- plugin-knowledge-base
- plugin-linkedin
- plugin-livekit
- plugin-media-processing
- plugin-meetings
- plugin-moderation
- plugin-mux
- plugin-object-storage
- plugin-observability
- plugin-photos
- plugin-podcast
- plugin-post
- plugin-realtime
- plugin-retro-gaming
- plugin-rom-discovery
- plugin-social
- plugin-sports
- plugin-support
- plugin-tmdb
- plugin-voice
- plugin-web3
- plugin-workflows
Planned (26)
plugin-auditplugin-blogplugin-checkoutplugin-commerceplugin-drmplugin-exportplugin-flowplugin-importplugin-ldapplugin-mailgunplugin-mediaplugin-oauth-providersplugin-pagesplugin-postmarkplugin-rate-limitplugin-reportsplugin-samlplugin-schedulerplugin-sendgridplugin-ssoplugin-subscriptionplugin-thumbplugin-transcoderplugin-twilioplugin-wafplugin-watermark
Guides
- Guide-Production-Deployment
- Guide-SSL-Setup
- Guide-Multi-Tenancy
- Guide-Security-Hardening
- Guide-Monitoring-Setup
- Guide-Backup-Restore
- Guide-Custom-Services
- Guide-Migration-from-v1
Architecture
- Architecture
- Architecture-Guardrails
- Service-Graph
- Compose-Generation
- Nginx-Generation
- Plugin-Architecture
Reference
Machine interface
-
JSON-Output,
--jsonenvelope -
Command-Registry,
nself help --json - Exit-Codes
- error-codes, Error Codes
-
Compat-V15,
NSELF_V15gate
Licensing
Security
Brand
Operations
- operations/release-cascade, Release Cascade
- operations/self-healing, Self-Healing Schema
- operations/redis-tuning, Redis Pool Tuning
- operations/meilisearch-warmup, MeiliSearch Warm-Up
- operations/jwt-rotation, JWT Key Rotation
- operations/windows-wsl2-setup, Windows / WSL2 Setup
- operations/gemini-oauth-reauth, Gemini OAuth Reauth
Contributing
Admin
- USER-ACTION-QUEUE, Pending Admin Actions
All commands (21)
- A: cmd-add · cmd-admin
- B: cmd-backup · cmd-build
- C: cmd-clean · cmd-config
- D: cmd-db · cmd-deploy · cmd-doctor
- E: cmd-exec
- I: cmd-init
- L: cmd-license · cmd-logs
- M: cmd-mcp
- R: cmd-remove · cmd-reset · cmd-restart
- S: cmd-start · cmd-status · cmd-stop
- U: cmd-update