Skip to main content
The OrbitLab CLI does everything the dashboard does for your projects: deploy from Git, manage environment variables, read logs, attach domains, edit DNS, query databases, manage files and your organization, and pay for services. It talks to the REST API with an API token.

Install

The CLI needs Node.js 18.17 or later and has no other dependencies. You can also run it without installing: npx @orbitlab/cli <command>.

Log in

The CLI shows a short code and opens your browser. Check that the code matches, choose which organizations the CLI may access, and click Authorize. The CLI then saves an API token in ~/.config/orbitlab/config.json, readable only by you. The token expires after 90 days; run orbitlab login again when it does.
  • Already have a token? Pipe it in so it stays out of your shell history: orbitlab login --with-token < token.txt
  • On a server without a browser: orbitlab login --no-browser and open the printed link on any device.
  • orbitlab whoami shows the account, organization and token in use.
  • orbitlab logout revokes the saved token and removes it from the machine.
In CI, don’t run orbitlab login. Create a token in Dashboard → Settings → API tokens and expose it as the ORBITLAB_TOKEN environment variable.

Choose an organization

Commands act on one organization at a time. By default it’s the first organization you joined.
The organization is chosen from, in order: --org, the ORBITLAB_ORG variable, the linked project, then orbitlab orgs switch. A token restricted to one organization always uses that organization. Link your project directory to its service so you don’t have to repeat the service name:
orbitlab link writes .orbitlab/project.json (service and organization ids, no secrets) and adds .orbitlab to .gitignore. It works from any subdirectory. Remove it with orbitlab unlink. Commands also accept a service id, name or domain as an argument or with --service.

Deploy from Git

Order an app, connect its repository, then deploy:
Private GitHub repositories are detected automatically once the GitHub App is installed (orbitlab git connect).

Environment variables

Changes apply on the next deploy or after orbitlab restart.

Logs and metrics

Domains and DNS

To move a domain’s DNS to OrbitLab, run orbitlab domains import example.com, set the nameservers it prints at your registrar, then run orbitlab domains activate example.com.

Databases

Files and SFTP

Paths are relative to the site root (WordPress, PHP) or to the app’s persistent storage in /app/data.

WordPress

Shared hosting

Billing

Orders are paid with Mobile Money: a payment request is sent to --phone, and the provider is detected from the number, or pass --network. Free orders, such as one fully covered by --promo, need no phone number. Card payments are currently unavailable.

Organization and access

Scripting and CI

  • --json prints machine-readable output on stdout. Progress messages go to stderr.
  • Commands that delete or change something important ask for confirmation. Pass --yes (-y) in scripts.
  • Exit codes: 0 success, 1 failure (API error, failed deployment, domain not verified), 2 invalid usage.
  • orbitlab api calls any API endpoint with your credentials: orbitlab api /v1/services -F type=app.
Deploy a commit after your tests pass with GitHub Actions:
.github/workflows/deploy.yml

Global options and environment variables

Command reference

Run orbitlab help for the list and orbitlab <command> --help for all options of a command.