deploro.com Open dashboardDashboard

CLI Reference

deploro is the terminal client for the platform. Every command here calls the same REST API documented separately. Credentials are stored in ~/.deploro/credentials.json.

Install & login

npm install -g deploro
deploro login [--url <url>] [--token <token>]

Log in to Deploro. Pass --token with a personal access token from Dashboard → Settings → Tokens to skip the interactive prompt.

--url <url>Worker base URL (defaults to the production API)
--token <token>Personal access token
deploro logout

Log out and clear local credentials.

Projects

deploro projects

List your projects.

deploro create <name> [--slug <slug>] [--repo <url>] [--branch <branch>]

Create a new project and set it active.

--slug <slug>Project slug (derived from name if omitted)
--repo <url>Public repo URL to link (no embedded tokens; for a private repo or auto-deploy on push, use github connect + repo link instead)
--branch <branch>Git branch to deploy from
deploro create "My App" --slug my-app
deploro use <project>

Set the active project. Accepts an id, slug, or name.

deploro delete <project> [-y, --yes]

Delete a project and its database. Accepts id, slug, or name.

db

Database commands. They act on the active project.

deploro db create

Provision the active project's database (idempotent).

deploro db info

Show database status and how to reach it from a deployed app.

deploro db tables

List tables in the active project.

deploro db rows <table> [--limit <n>] [--page <n>] [--json]

List rows in a table.

--limit <n>Rows per page (max 200, default 20)
--page <n>Page number (default 1)
--jsonOutput raw JSON
deploro db query <sql> [--json]

Run a SQL query (admin). Read-only SELECT only; DDL is blocked.

deploro db query "select id, email from users limit 5"
deploro db schema <table>

Show schema for a table.

deploro db insert <table> --data <json>

Insert a row. --data is required, a JSON object.

deploro db insert todos --data '{"title":"Ship it","done":false}'
deploro db update <table> <id> --data <json>

Update a row by id. --data is required, a JSON object of fields to update.

deploro db delete-row <table> <id> [--yes]

Delete a row by id.

deploro db drop <table> [--yes]

Drop a table and all its data (admin).

migrate

Database migration commands.

deploro migrate create <name> [--up <sql>] [--up-file <path>] [--down <sql>] [--down-file <path>]

Register a new migration (admin).

deploro migrate create add_todos --up-file ./up.sql --down-file ./down.sql
deploro migrate list

List migrations for the active project.

deploro migrate apply <id-or-name>

Apply a pending migration (admin).

deploro migrate rollback <id-or-name> [--yes]

Roll back an applied migration (admin).

deploro migrate delete <id-or-name> [--yes]

Delete an unapplied migration (admin).

deploy

Deployment commands for the Worker/Pages target. See vps for the separate VPS-compute deploy pipeline. deploy status/deploy logs read the unified timeline, so they also surface VPS-only deployments.

deploro deploy trigger

Trigger a manual deployment. Deploro builds the connected repo and publishes its build output. See How deploys work for which directory is published and why a Next.js app needs a static export or the OpenNext adapter.

deploro deploy status

Show latest deployment status. If the latest deploy failed, the failure reason is printed inline along with the exact deploro deploy logs <id> command for the full build transcript. See How deploys work.

deploro deploy logs [deployment-id]

Show logs for a deployment (defaults to latest).

github

Account-level GitHub OAuth connection, one per platform user. Distinct from repo, which links a specific repo to the active project.

deploro github status

Show whether your GitHub account is connected.

deploro github connect

Print the URL to open in a browser to connect GitHub.

deploro github repos

List repos your connected GitHub account can access.

deploro github disconnect [-y, --yes]

Remove your stored GitHub OAuth token.

repo

The active project's connected repo (auto-deploy from GitHub). Requires github connect first.

deploro repo status

Show the active project's linked repo.

deploro repo auto-deploy <on|off>

Toggle automatic deployment on push.

domains

Self-service custom domains for the active project.

deploro domains list

List custom domains.

deploro domains add <hostname>

Add a domain. Prints the CNAME and TXT records to create at your DNS provider.

deploro domains verify <id-or-hostname>

Verify DNS ownership and register SSL.

deploro domains status <id-or-hostname>

Poll domain verification/SSL status.

deploro domains remove <id-or-hostname> [-y, --yes]

Remove a domain.

hosting

deploro hosting status

Show Worker and VPS health.

deploro hosting metrics

Show recent VPS CPU/memory/disk sparklines.

deploro hosting env

List secret names set on the active project's Worker. Values are never returned.

deploro hosting set-env <key> <value>

Set a Worker secret.

vps

VPS compute hosting: raw Postgres/Redis with a real connection string, and custom docker-compose deploys, distinct from the Worker/Pages deploy pipeline and from hosting, which only manages Worker secrets. See the API reference for the underlying routes.

Closed to new projects. Every command below requires the active project to be one of a small set of pre-existing projects individually approved for direct VPS access; every command in this group returns 403 otherwise. There is no self-service way to opt a project in. Everything else on Deploro (db, migrate, deploy, hosting) stays fully managed, and nothing it does ever writes to the VPS directly.

vps database

Raw Postgres: a dedicated container with a real connection string, for drizzle-kit, transactions, etc.

deploro vps database create

Provision raw Postgres (idempotent; connection string shown once).

deploro vps database info

Show raw Postgres connection info (no password).

deploro vps database rotate [--yes]

Rotate the raw Postgres password.

vps redis

Raw Redis, for BullMQ, ioredis, Lua EVAL scripts.

deploro vps redis create

Provision raw Redis (idempotent; connection string shown once).

deploro vps redis info

Show raw Redis connection info (no password).

deploro vps redis rotate [--yes]

Rotate the raw Redis password (recreates the container).

vps allowlist

IP allowlist gating access to raw Postgres/Redis ports.

deploro vps allowlist list

List allowlist entries.

deploro vps allowlist add <cidr> [--label <label>]

Allow an IP or CIDR block, e.g. 203.0.113.4 or 203.0.113.0/24.

deploro vps allowlist remove <id> [--yes]

Remove an allowlist entry.

vps env & deploy

deploro vps env

List VPS-scoped env var names set on the active project. Values are never returned.

deploro vps set-env <key> <value>

Set a VPS-scoped env var (e.g. JWT_SECRET). Separate from hosting set-env, which sets Worker secrets.

deploro vps deploy

Build and start the active project's docker-compose stack on the VPS.

deploro vps deployments

List VPS deploy history.

deploro vps deploy-status [deployment-id]

Show a VPS deployment's status and logs (defaults to latest).

deploro vps status

Show running compute services + raw Postgres/Redis container status.

deploro vps logs [service] [--tail <n>]

Tail logs for a compute service (or 'postgres'/'redis'). --tail defaults to 200 lines.

storage

R2 file storage for the active project, where a project's uploaded files belong, rather than in a database bytea column or on the VPS filesystem, neither of which the dashboard's Storage tab can see. --key accepts slashes, so --key invoices/2026/03.pdf preserves directory structure.

Constraints: upload and delete require project-admin (list and download accept any member); 100MB per file; files whose first bytes look like HTML, SVG, or script are rejected. By default stored objects are readable only by project members; deploro storage public on opts the project into unauthenticated inline reads at /files/{slug}/{key}.

deploro storage list

List stored files.

deploro storage upload <file> [--key <name>]

Upload a local file. --key defaults to the local file's name.

deploro storage download <key> [--out <path>]

Download a stored file. --out defaults to the file's name.

deploro storage delete <key> [-y, --yes]

Delete a stored file.

deploro storage public <on|off|status> [-y, --yes]

Turn unauthenticated inline reads on or off for the active project, or show the current setting. When on, objects are served at /files/{slug}/{key} to anyone who knows the key. Off by default.

deploro storage sign <key> [--expires <duration>]

Generate a time-limited public URL for one file. Works even for a private bucket or a private project root, since the signature itself grants access until it expires. --expires accepts a bare number of seconds or a short duration like 30m, 1h, 7d (default 1h, max 7d).

storage buckets

Named groupings within a project's storage, each with its own public/private flag, finer-grained than the single project-wide toggle above. A file uploaded with --bucket <name> lives at {slug}/{bucket}/{key} and is governed by that bucket's own flag instead of the project-wide one.

deploro storage buckets list

List buckets.

deploro storage buckets create <name> [--public]

Create a bucket. Private by default.

deploro storage buckets set-public <name> <on|off> [-y, --yes]

Toggle a bucket's unauthenticated read access.

deploro storage buckets delete <name> [-y, --yes]

Remove a bucket's access policy. Files already stored under it are kept; this only removes the policy row.

deploro storage upload <file> --bucket <name>

Upload into an existing bucket instead of the project root. The bucket must already exist.

webhooks

Outbound event webhooks for the active project.

deploro webhooks list

List webhooks.

deploro webhooks create <url> [--events <list>] [--secret <secret>]

Create a webhook. --events is a comma-separated list of event names (default: test).

deploro webhooks update <id> [--url <url>] [--events <list>] [--secret <secret>] [--enable] [--disable]

Update a webhook.

deploro webhooks delete <id> [-y, --yes]

Delete a webhook.

deploro webhooks test <id>

Fire a test payload.

deploro webhooks deliveries <id>

Show the last 30 delivery attempts.

team

Manage the active project's team members. Separate from auth, which manages platform-wide users.

deploro team list

List project members.

deploro team invite <email> [--admin]

Add an existing Deploro user to this project.

deploro team remove <member-id> [-y, --yes]

Remove a member from this project.

auth

Auth management commands: platform users, plus the active project's Auth-as-a-Service configuration.

deploro auth whoami

Show the current identity and, for a token login, exactly what it's scoped to.

deploro auth users

List platform users.

deploro auth invite <email> [--admin]

Invite a user by email.

deploro auth ban <id> [--reason <text>] [--days <n>] [-y, --yes]

Ban a platform user. Blocks sign-in immediately, no session revocation needed. Omit --days for an indefinite ban.

deploro auth unban <id>

Lift a ban.

deploro auth site-url [url] [--clear]

Get or set the active project's Auth Site URL: where end-user confirmation-email links redirect back to. --clear falls back to the project's own deployment URL.

deploro auth stats

Show Auth-as-a-Service stats for the active project's end users.

auth providers

Manage the active project's end-user sign-in providers. email (OTP) and email_password are independent providers, each with its own toggle and its own end-user identities. Neither takes OAuth credentials.

deploro auth providers list

List sign-in providers and their status.

deploro auth providers enable <provider>

Enable a sign-in provider, e.g. email, email_password, google, github, apple...

deploro auth providers disable <provider>

Disable a sign-in provider.

deploro auth providers configure <provider> [--client-id <id>] [--client-secret <secret>] [--team-id <id>] [--key-id <id>]

Set OAuth client credentials for a provider (not applicable to email / email_password). --team-id and --key-id are Apple-only; --client-secret is the .p8 private key contents for Apple.

auth end-users

Manage the active project's end users: the people who signed up inside your app. Distinct from auth users above, which lists platform users (people with dashboard access).

deploro auth end-users list [--page <n>]

List end users.

deploro auth end-users add <email> [--name <name>]

Manually add an end user. Sends a confirmation email; they can't sign in until they click it.

deploro auth end-users delete <id> [--yes]

Delete an end user and all their sign-in methods/sessions.

token

Personal access token commands. Requires a browser-session login, not a PAT.

deploro token list

List your personal access tokens.

deploro token create <name> [--read] [--write] [--project <slugs>] [--days <n>]

Create a new project-scoped personal access token.

--readGrant read scope
--writeGrant write scope
--project <slugs>Comma-separated project slugs/ids/names (defaults to the active project)
--days <n>Expiry in days, 1-365 (default 90)
deploro token create ci-deploy --write --project my-app --days 30
deploro token revoke <id> [--yes]

Revoke a personal access token.