Orbit Handbook
MarkdownOpen in ClaudeOpen in ChatGPT

Configuration

Everything Orbit knows about your service lives in one file: orbit.yaml,
checked into the repository root. No dashboard state, no hidden settings -
review a deploy change the way you review code.

A complete example

app: hello-api
build: docker            # docker | buildpack | static
environments:
  staging:
    url: https://staging.hello.example
    replicas: 1
  production:
    url: https://hello.example
    replicas: 3
    protect: true        # always ask before applying
health:
  path: /healthz
  timeout: 5s
release:
  keep: 10               # releases retained for rollback
  strategy: bluegreen    # bluegreen | rolling

Top-level keys

Key Required What it does
app yes Name; must be unique within your org
build yes How the artifact is produced
environments yes Named overlays - anything set here overrides the top level
health no Endpoint Orbit polls before traffic moves
release no Retention and rollout strategy

Environments are overlays

An environment only states what differs. Everything else is inherited from
the top level, which is why staging and production cannot silently drift:
the diff between them is visible in one file.

Secrets

Secrets never go in orbit.yaml. Reference them; Orbit resolves at apply
time from your secret store:

env:
  DATABASE_URL: ${secret:hello-api/database-url}

A plan shows that a secret changed, never its value.