Guides

Getting started

Deploy your first service with the Otterdeploy CLI.

This guide takes you from nothing to a running service using the otterdeploy CLI. It assumes you have access to an Otterdeploy control plane (the dashboard URL you sign in to).

1. Install the CLI

npm install -g @otterdeploy/cli
# or: bun add -g @otterdeploy/cli

Runs on Node ≥20 or Bun.

2. Sign in

otterdeploy login https://deploy.example.com

This opens your browser to approve the device — the same flow the gh and vercel CLIs use. Your token is stored in ~/.config/otterdeploy/config.json (mode 0600). For CI, set OTTERDEPLOY_URL and OTTERDEPLOY_TOKEN instead (create a token with otterdeploy tokens create).

If you belong to more than one organization, pick the active one:

otterdeploy org list
otterdeploy org use acme

3. Scaffold and deploy

up links (or creates) the project, writes a config file, offers a first service, and deploys — all in one step:

cd my-app
otterdeploy up

Prefer explicit steps? otterdeploy init writes the config, otterdeploy add service web --image nginx:latest --port 80 adds a resource, and otterdeploy deploy reconciles it.

4. Watch it converge

Deploy and block until every resource is healthy — non-zero exit on failure, so it works as a CI gate:

otterdeploy deploy --wait

Stream logs, tail a build, or check deployment history:

otterdeploy logs web
otterdeploy logs web --build
otterdeploy deployments web

Next

See the full CLI reference for every command and flag.