8

PricingBlog

Stop Paying Your Developers to Deploy at 2 AM.

Orbit gives you zero-downtime Magento deployments without the $100k Adobe Commerce Cloud contract. Atomic symlink swaps, smart skip detection, cutover hold, and auto-rollback — built in Rust.

O

Orbit

Overview

Environments

Deployments

Settings

Overview

Environments

4

Online

3

Offline

1

Deploys Today

7

Deployment Activity

Last 30 days

Completed

Failed

Recent Deploys

View all

v2.4.8

production

completed

12m ago

v2.4.8

staging

completed

45m ago

v2.4.7

production

completed

3h ago

v2.4.7

staging

failed

3h ago

v2.4.6

production

completed

1d ago

Zero-downtime deployment, explained

What is zero-downtime Magento deployment?

Zero-downtime Magento deployment means shipping new code to a live Magento 2 or Adobe Commerce store without ever showing a 503 maintenance page. Instead of building in place, each release is prepared in its own directory and made live with an instantaneous atomic symlink swap — so customers keep shopping straight through the deploy.

Orbit does this with a single Rust agent you install in one command. It prepares the release, holds the 1–3 second cutover instant with an nginx 503 + Retry-After contract so no request hits a half-warm release, runs Magento-aware smart build-skip to land a typical deploy in about 75 seconds (and a no-op redeploy in about 30), and automatically rolls back to the previous release if post-deploy health checks fail. It is self-hostable and runs on any host — a zero-downtime alternative to PHP Deployer, Capistrano, and the Adobe Commerce Cloud pipeline, without a six-figure contract.

Atomic Symlink Deploys

Capistrano-style release structure with atomic symlink swaps. Your new code is fully prepared in a release directory — only the final symlink switch is instantaneous. Zero gap between old and new.

Smart Skip Build Phases

Composer, di:compile, and static-content each get an input fingerprint that includes file content plus committed vendor patches. A CSS-only change skips di:compile and hardlink-copies the previous build; a PHP-only change skips static-content. Typical deploys land in ~75 seconds instead of ~3 minutes — and no-op redeploys finish in ~30s.

Auto-Rollback on Failure

Health checks run automatically after every deploy. If anything fails — HTTP errors, memory spikes, or a shell command exiting non-zero after the symlink already swapped — Orbit reverts to the previous release in seconds, clears any leftover maintenance flag, and surfaces the failing line in the dashboard. No manual intervention.

Cutover Hold + Honest Maintenance Windows

A flag-file + nginx 503 + Retry-After contract holds traffic for the 1–3 second cutover instant so opcache catches up cleanly. Schema-disruptive deploys flip maintenance only for the setup:upgrade window — code-only deploys never touch it. Every deployment carries a “Zero-downtime ✓” or precise “N-second window” chip so the promise is auditable.

One-Command Onboarding

`curl https://get.byte8.io/orbit-agent | sh` installs the agent. `orbit-agent init --magento-source=…` migrates a traditional single-directory Magento install into a Capistrano release tree in ~24 seconds, with the site live the moment init returns. PHP Deployer users can pipe their existing `deploy.php` through `orbit-agent import-deployer` and skip the typing.

Real-Time Deploy Dashboard

Watch deployments in real time — step progress, log output, deployment history, and environment status. Team logs with full audit trail for every deploy across all your environments. Personal Access Tokens let GitHub Actions / GitLab CI fire deploys against the same GraphQL endpoint the dashboard uses.

How Orbit compares

Orbit vs PHP Deployer, Capistrano & Adobe Commerce Cloud

There are four common ways to deploy Magento 2 with minimal downtime: a generic deploy tool like PHP Deployer or Capistrano, the managed Adobe Commerce Cloud pipeline, a hand-rolled bash script, or a Magento-aware deployer like Orbit. Here's how they compare on the things that actually cause 2 AM deploys.

CapabilityOrbitMagento-aware deployerPHP DeployerGeneric PHP toolCapistranoGeneric Ruby toolAdobe Commerce CloudManaged platform
Where it runs

Rust agent · any host

PHP CLI

Ruby CLI

Adobe-managed only

Traffic-holding cutover

Platform-managed

Magento-aware smart build-skip

Per-phase fingerprint

Partial

Skips static-content build when assets are unchanged

Detects unchanged assets

Rebuilds every deploy

Automatic health-checked rollback

Automatic

On step failure

On step failure

Magento-aware (setup:upgrade, MSI, indexers)

Manual hooks

Manual hooks

Real-time dashboard + team audit log
CI/CD trigger via scoped token

Personal Access Token

Scriptable

Scriptable

Self-hostable · no vendor lock-in
Migrate from an existing deploy.php

One-command import

It is Deployer

Manual rewrite

Re-platform

Typical Magento deploy time

~75s (no-op ~30s)

~3 min

~3 min

Several minutes

Cost model

Flat monthly

Free (DIY)

Free (DIY)

Enterprise contract

Up and running in 2 minutes

$curl -fsSL https://get.byte8.io/orbit-agent | sh
$orbit-agent init --token=obt_... --deploy-path=/var/www/store
$orbit-agent deploy

Your next deploy will have zero downtime.

Drop-in for existing teams

From PHP Deployer to CI/CD — no rewrites

Import an existing deploy.php in one command, then fire deploys from GitHub Actions, GitLab, or any CI runner using Personal Access Tokens.

Migrate from PHP Deployer

One command, your config preserved

$ orbit-agent import-deployer --file ./deploy.php
 
→ acme-prod repository_url, deploy_path, branch ✓
→ acme-stage keep_releases override (3), locales ✓
→ shared_files / shared_dirs ✓ hooks: pre, post ✓
 
Paste the emitted JSON into the dashboard, or pipe
into createEnvironment via a PAT.

Repository URL, deploy path, branch, keep_releases, locales, hooks — all preserved. Unmapped keys surface as warnings. · bash

Deploy from CI

GitHub Actions, GitLab, Buildkite — same recipe

# .github/workflows/deploy.yml
- name: Trigger Orbit deploy
env:
ORBIT_PAT: ${{ secrets.ORBIT_PAT }}
run: |
curl https://orbit.byte8.io/graphql \
-H "Authorization: Bearer $ORBIT_PAT" \
-H 'Content-Type: application/json' \
-d '{"query":"mutation { createDeployment(input: {
environmentId: \"env_…\", gitRef: \"main\"
}) { id } }"}'

Personal Access Tokens are scoped, expirable, and revocable — same auth path as the dashboard, no session cookie needed. · yaml

Deploy-time downtime on code pushes

Typical deploy with skip detection

Rollback to any prior release

Solo plan starting price

How it works

1
Install the agent

One curl command installs the Orbit agent on your server. It connects to the Orbit API securely.

2
Configure your environment

Set your deploy path, repository, shared files, and any pre/post-deploy hooks in the dashboard.

3
Deploy

Hit deploy from the dashboard or CLI. Orbit handles the rest — build, swap, verify, done.

Orbit Pricing

Monthly pricing shown. Billed monthly or save with annual.

Solo

/mo

1 environment

Zero-downtime proxy + artifact sync

Start 14-Day Free Trial
Most popular
Agency

/mo

20 environments

Central dashboard + multi-site + team logs

Start 14-Day Free Trial
Enterprise

/yr

Unlimited environments

Self-hosted binary + custom SLA

Subscribe annually

Frequently asked questions

How is Orbit different from PHP Deployer or Capistrano?

How does Orbit decide what to rebuild on each deploy?

I commit vendor/ to my repo for predictable deploys — does Orbit work?

What happens when I add a new module or theme?

Can I disable the skip detection if I don't trust it?

Does Orbit work with Adobe Commerce Cloud?

What happens if a database migration fails?

Can I self-host Orbit?

Can I trigger deploys from CI (GitHub Actions, GitLab)?

Can I build the release once and deploy to many hosts?

How do I know a given deploy was actually zero-downtime?

I'm coming from PHP Deployer — what's the migration story?

How does pricing work for agencies?

Deploy Magento at 2 PM on a Tuesday

Start your 14-day free trial on the Agency plan. No downtime, no stress.