Commands
| Command | Description |
|---|---|
deck up [services...] | Foreground: preflight, start services, tail logs, ctrl+c to stop |
deck start [services...] | Detached: preflight, start services, return to shell |
deck stop [services...] | Stop services (all if none specified) |
deck restart [services...] | Stop + start |
deck status [services...] | Show service status (supports --format json and Go templates) |
deck logs [services...] | Tail logs with colored prefixes (shows last 20 lines of backlog) |
deck run <service> -- <cmd> | Run a one-off command in a service’s environment |
deck doctor | Check deps, bootstrap, and config without starting anything |
deck init | Create deck.yaml scaffold and update .gitignore |
deck --version | Print version |
Selective targeting
All lifecycle commands accept optional service names to operate on a subset of the stack:
deck up api # just the API (+ its dependencies)
deck stop webapp # stop one service
deck restart api # restart one without touching others
deck logs api webapp # tail specific services
When using depends_on, targeting a service auto-starts its transitive dependencies. deck up webapp will also start api if webapp depends on it.
deck stop with service names stops only those services — it does not run post-stop hooks.
deck run
Run a one-off command in a service’s resolved environment (dir, env, env_file, global env):
deck run api -- goose status
deck run api -- go test ./...
deck run webapp -- pnpm test
Useful for migrations, tests, REPL sessions, or any command that needs the same environment as the service.
deck doctor
Walks the full config (deps, bootstrap, hooks, services) and reports status without starting anything:
$ deck doctor
✓ postgres dep
✗ redis dep
✓ Install deps bootstrap (done)
✗ Create database bootstrap (needed)
✓ api service
⚠ webapp service
⚠ env_file not found: ./etc/missing.env
Supports --json for machine-readable output.