Adopting orbit for your team
Orbit is a local dev orchestrator: one YAML env file describes your containers and services, and orbit up starts them in dependency order with health checks, logs, tracing, and a dashboard at http://localhost:19800.
This repo contains the neutral engine, CLI, daemon, and UI, plus optional feature packages behind explicit extension seams. Teams normally consume the released Orbit binary. An environment repository is the distribution step, not a prerequisite for proving Orbit locally.
Config-only adoption
Validate the environment beside one real project first. The local-first guide uses a project-root
orbit.yamland the samedoctor,up,open,logs, anddownloop teammates will use. It requires no Git environment repository or persistent Orbit settings.Once the file is useful, create a Git repository with
envs/dev.yaml. Change project-relative paths such aspath: .to explicit${WORKSPACE_ROOT}paths, commit the file, then initialize from a project checkout:shorbit init --source team --url <your-env-repo-git-url> --env dev orbit upOrbit asks for a workspace only when the selected file actually references
${WORKSPACE_ROOT}. A containers-only environment does not expose that concept.orbit doctorchecks every resolved service directory and gives one corrective command beforeorbit upstarts any dependency.A host service can use any locally installed runtime; only
dotnethas special build behavior:yamlservices: api: type: python path: ${WORKSPACE_ROOT}/api command: python3 -m http.server 8080 ports: http: 8080During development,
orbit source add local --path /path/to/your-env-repocan use local, uncommitted environment files. If the active environment changed, sync offers to make it current and restores only the resources that were running. Use--no-applyonly when an interruption must be deferred; Orbit prints the exact command to finish later.
The released binary supplies its distribution defaults. Custom teams can add Git or local sources with orbit source add; ORBIT_INSTALL_URL still configures orbit update. Services, containers, graph, logs, health checks, doctor, and the dashboard otherwise need only the env configuration. Tracing is on by default; an env opts out with an explicit tracing.enabled: false.
Compile-time customization
The extension contract remains available when config alone is insufficient. A team can fork this repo or require it as a Go module, provide its own cmd/orbit, and pass additional extension.Extension values to app.Main. Each extension can contribute CLI commands, daemon setup and hooks, doctor and init behavior, and distribution defaults; see extension/extension.go.
The UI build retains three compile-time seams in ui/vite.config.ts:
ORBIT_UI_EXTreplaces the$extmodule with a team's navigation, routes, panels, settings sections, and lifecycle hooks.ORBIT_UI_TYPESreplaces the generated-types barrel.ORBIT_UI_OUTDIRselects the dashboard build output embedded by the team's binary.
This route means maintaining a custom build and release line. Use it only for behavior that cannot be expressed in env configuration, and keep neutral improvements in this repo rather than duplicating the core.