Deployment
Bind a server to an app. Supports two modes:
Remote binding (recommended)
Bind an existing node to an app:
ops set <target> --node <node-id> [OPTIONS]
Options:
Region (e.g., us-east, eu-west)
Availability zone (e.g., a, b, c)
Load balancing weight (1-100)
Example:
ops set api.my-saas --node 42 --primary
Local binding (legacy)
Run directly on the server to bind it:
This prompts for confirmation and optionally regenerates CI/CD SSH keys.
Target format: app.project (e.g., api.my-saas)
Deploy services defined in ops.toml.
Options:
Deploy only a specific docker-compose service
Deploy only services in this app group
Skip build/pull, only restart containers
Set env variable (KEY=VALUE), repeatable
Deployment steps:
Parse ops.toml configuration
Resolve target (from target field, or auto-lookup via API in project mode)
Sync app record to backend API
Sync code based on source:
git: clone or pull from remote repository
push: rsync local directory to server
image: docker login (if registry configured) + docker compose pull
Upload env files to remote paths
Sync additional directories/files
Build & start:
git/push: docker compose build && docker compose up -d
image: docker compose up -d (no build) + docker image prune
Generate and upload nginx config (if routes defined)
Configure SSL via certbot (if ssl = true in routes)
Examples:
Show status of deployed services.
Reads ops.toml to determine the target server and runs docker compose ps remotely.
View logs of a deployed service.
Arguments:
Service name (e.g., api, web)
Options:
Examples:
Last updated