Getting started guide, API reference, CLI usage, and workflow examples.
Step-by-step guide to deploying your first app on orkestr.
Your code stays yours
orkestr does not store your source code. During deployments, your repository is cloned temporarily to build a Docker image and is automatically deleted immediately after - whether the build succeeds or fails. Only the compiled Docker image is retained to run your application. When you delete a project, everything is permanently removed - containers, images, logs, and configuration.
| Feature | Free | Pro | Team |
|---|---|---|---|
| Projects | 1 | 5 | 15 |
| Environments per project | 1 | 3 | Unlimited |
| Add-ons per project | - | 2 | 5 |
| Groups | - | Yes | Yes |
| Rollbacks | - | Yes | Yes |
| API access | - | 100 req/min | 500 req/min |
| Backup retention | - | 7 days | 30 days |
Link your GitHub, GitLab, Bitbucket, or Codeberg account so orkestr can access your repositories.
A project represents a single app or service linked to a Git repository.
my-app.orkestr.eu), branch, and description. Edit any field if needed.Most apps need configuration like database URLs, API keys, or feature flags. Set these before your first deploy so the app starts correctly.
DATABASE_URL, SECRET_KEY).Trigger a deployment to build a Docker image from your repo and run it on orkestr's infrastructure.
slug.orkestr.eu URL.Environments let you run the same project from different branches - e.g. production, staging, and dev - each with its own URL, env vars, and deploy history.
staging) and the branch it should deploy from (e.g. develop).my-app-staging.orkestr.eu).Groups connect multiple projects on a private network so they can talk to each other via internal DNS - perfect for a frontend + API + worker setup.
http://project-name:port on the private network.Provision a managed PostgreSQL database or Redis cache and have the connection string automatically injected as an environment variable.
main-db) and choose PostgreSQL or Redis.DATABASE_URL or REDIS_URL.Point your own domain to any project. orkestr handles TLS certificates automatically.
app.yourdomain.com).yourdomain.com), use an ALIAS or ANAME record if your DNS provider supports it, as CNAME is not standard for root domains.Keep an eye on your running containers with built-in monitoring for CPU, memory, logs, and health.
If a deployment introduces a bug or breaks your app, you can instantly revert to a previous working version.
API tokens let you interact with orkestr programmatically - from CI/CD pipelines, the CLI, or MCP-connected AI assistants.
CI/CD Pipeline) and choose an optional expiry (30, 90, 180, 365 days, or never).All API requests require a Bearer token in the Authorization header. Create an account and upgrade to a Pro or Team plan to generate tokens.
https://api.orkestr.eu/api/v1All endpoints return JSON. Successful responses use 2xx status codes. Errors return { "detail": "error message" }.
Starter
No API access
Pro
100 req/min
5 tokens
Team
500 req/min
20 tokens
API tokens follow the format sp_live_<random>. The sp_live_ prefix makes them easy to identify in logs and secret scanners.
Create, manage, and analyze your projects.
Manage per-project environments (production, staging, dev).
Trigger deployments, view logs, and rollback.
Container stats, logs, and health checks.
200Success201Created204Deleted (no content)400Bad request - invalid input401Unauthorized - invalid or expired token403Forbidden - plan limit or insufficient permissions404Resource not found409Conflict - name taken or deployment in progress429Rate limit exceededInstall the CLI with pip. Requires Python 3.10+.
orkestr loginAuthenticate with an API tokenorkestr logoutClear stored credentialsorkestr whoamiShow current user infoorkestr set-url <url>Set the API base URL (defaults to https://api.orkestr.eu)orkestr projects listList all projectsorkestr projects create <name> --repo <url>Create a new project from a git repositoryorkestr projects show <name>Show project details (accepts name or UUID)orkestr projects update <name> [options]Update project settings (--display-name, --description, --branch)orkestr projects analyze <name>Detect framework, port, and resource requirementsorkestr projects delete <name>Delete a project and destroy its infrastructureorkestr envs list <project>List environments for a projectorkestr envs create <project> <name> --branch <branch>Create a new environmentorkestr envs update <project> <env_id> [options]Update environment (--branch, --auto-deploy / --no-auto-deploy)orkestr envs delete <project> <env_id>Delete an environmentorkestr deploy <project>Trigger a deployment (shortcut)orkestr deployments list <project>List deployment historyorkestr deployments show <id>Show deployment details and pipeline stepsorkestr deployments logs <id>Show full pipeline logs by steporkestr deployments rollback <id>Rollback to a previous deploymentorkestr addons list <project>List add-ons for a projectorkestr addons add <project> --type <postgres|redis> --name <name>Provision a new add-onorkestr addons delete <project> <addon_id>Destroy an add-on and its dataorkestr addons backups <project> <addon_id>List backups for an add-onorkestr addons backup <project> <addon_id>Trigger a manual backuporkestr addons download <project> <addon_id> <backup_id>Get a download URL for a backuporkestr addons delete-backup <project> <addon_id> <backup_id>Delete a backuporkestr logs <project>Show application runtime logs (--lines, --env)orkestr stats <project>Show container CPU, memory, and network statsorkestr health <project>Show container health, uptime, and restart countThese flags can be used with any command.
--jsonOutput raw JSON instead of formatted tables--api-url <url>Override the API base URL for this command--token <token>Use a specific API token for this command--versionShow CLI version--helpShow help for any commandorkestr exposes an MCP (Model Context Protocol) server that lets AI coding assistants manage your projects, deployments, and infrastructure directly.
Connect Claude Code, Claude Desktop, Cursor, Windsurf, or any MCP-compatible client and use natural language to deploy, monitor, and manage your apps.
Setup
URL + Token
Transport
Streamable HTTP
Tools
26 available
Create an account and generate an API token, then add this to your MCP client config.
Claude Code / Claude Desktop - ~/.claude.json or claude_desktop_config.json
Cursor - .cursor/mcp.json
Projects
list_projectsList all your projectsget_projectGet project details by name or IDcreate_projectCreate a new project from a git repoupdate_projectUpdate project settingsdelete_projectDelete a project and its infrastructureanalyze_projectDetect framework, port, and resourcesEnvironments
list_environmentsList environments for a projectcreate_environmentCreate a new environmentupdate_environmentUpdate environment settingsdelete_environmentDelete a non-production environmentDeployments
deployTrigger a deployment (defaults to production)list_deploymentsList recent deploymentsget_deploymentGet deployment details and pipeline stepsget_deployment_logsGet build/deploy logs by steprollback_deploymentRollback to a previous deployment (Pro+)Monitoring
get_logsApplication runtime logs (stdout/stderr)get_statsContainer CPU, memory, network statsget_healthContainer status, uptime, restart countAdd-ons
list_addonsList databases and caches for a projectcreate_addonProvision a PostgreSQL or Redis add-ondelete_addonDestroy an add-on and its dataBackups
list_backupsList backups for an add-oncreate_backupTrigger a manual backupdownload_backupGet a download URL for a backupdelete_backupDelete a backupAuth
whoamiShow current user info and planOnce connected, you can use natural language in your AI assistant. Here are some examples:
“Deploy my-api to production”
Triggers a deployment for the my-api project
“Show me the logs for my-api, last 50 lines”
Fetches runtime logs from the container
“Create a staging environment for my-api on the develop branch”
Creates a new environment with auto-deploy
“What's the CPU and memory usage of my-api?”
Returns container resource stats
“Add a PostgreSQL database to my-api”
Provisions a managed Postgres add-on
“List all my projects and their status”
Shows all projects with framework and status info
“Roll back my-api to the previous deployment”
Finds the last good deployment and rolls back
Ready-to-use workflows you can drop into your projects. Replace the placeholder values with your own.
GitHub Actions - every PR gets a live preview URL
Deploys a preview environment when a PR is opened or updated, comments the live URL on the PR, and cleans up when the PR is closed. Add your ORKESTR_TOKEN and ORKESTR_PROJECT_ID as repository secrets.
GitHub Actions - deploy on push to main after tests pass
Runs your test suite first, then triggers a orkestr deployment only if tests pass. Polls until the deployment completes and fails the workflow if the deploy fails.
Bash script - self-healing deployments via uptime webhooks
Wire this script into your uptime monitor's webhook (UptimeRobot, Betterstack, Pingdom). When your site goes down, it finds the last successful deployment and rolls back automatically.
Bash - manage multiple projects programmatically
Loop through all your projects to update env vars, trigger deploys, or collect stats. Useful for agencies managing multiple client apps or teams with shared configuration.
MCP - deploy and manage infrastructure with natural language
Connect an MCP client like Claude Code and manage your entire infrastructure conversationally. No scripts, no dashboards - just tell your AI assistant what you need.