Platform

Platform overviewArchitectureWorkflow orchestrationGitOps configurationGovernance and AAAAI and MCPKnowledge and contextRuntime and executionEvidence and monitoring

Use cases

All use casesProduction incidentRelease preparationHotfix to productionSecurity scan triage
Why NopsAIIntegrationsSecurity

Resources

All resourcesAI agent governanceMCP governanceMCP securitySelf-hosted platforms
PricingGitHub

Company

How a run worksAboutContactBook a demo

First-install setup

The one-time bootstrap that unlocks the platform, and how to diagnose it when it will not complete.

ReferenceAdministrator

Key points

  • Normal authenticated routes and APIs stay locked until setup completes once.
  • GET /v1/setup/preflight and GET /v1/setup/status are public so a stuck install can be diagnosed without a token.
  • During cold starts the API serves preflight while PostgreSQL is still starting: /livez stays process-alive and /healthz stays unready with the current preflight JSON.
  • The wizard can generate secrets, seed starter profiles, create the GitOps layout, and create repository teams.
  • Setup apply errors include the actionable write or configuration reason.
  • Setup does not force an env-file write for dispatcher TLS when a valid effective service JWT fallback is already configured.
  • Once the one-time wizard has run, System > Setup is a status page: health checks and resource counts. The setup steps are not shown again.

Examples

Check setup state before and after the wizardbash
# both routes answer before authentication so a stuck install can be diagnosed
curl -s "$NOPSAI_URL/v1/setup/preflight" | jq
curl -s "$NOPSAI_URL/v1/setup/status" | jq
Result

Preflight lists what still blocks setup, including a database that is still starting. Status reports whether the one-time bootstrap has already run.

How it works

Bootstrap-created local admin credentials rotate on first login by default, and generated Docker Compose installs reject the built-in development admin password.

Preflight is the right first stop for any "the UI will not let me in" report. It names the blocker rather than leaving you to infer it from logs.

Implementation evidence

  • doc/first-install-wizard.md

    Bootstrap flow, starter profiles, and production guardrails.

  • services/nopsai/setup_preflight.go

    Cold-start preflight behavior.