What is Orbit?
Orbit is zero-downtime deployment automation for Magento 2. Atomic Capistrano-style releases, instant symlink swaps, health-check auto-rollback. Maintenance mode only flips when a database migration actually requires it — code-only deploys stay 200 the whole way through.
How it's wired
Two pieces:
- A tiny Rust agent (
orbit-agent, ~10 MB single binary) runs on your Magento host. It polls the Orbit control plane for tasks and executesgit clone,composer install,bin/magento ..., and the symlink swap locally. - The cloud control plane at
orbit.byte8.iostores environments, schedules deploys, holds the deployment history, and shows you what's happening in real time.
The agent only ever makes outbound HTTPS calls — no inbound ports to expose, no webhooks to configure, no public agent endpoint.
What you get over a hand-rolled deploy script
- Atomic releases. New releases land in
releases/{TIMESTAMP}/next to the live one. The swap is a singleln -sfn. Customers never see a half-built site. - Conditional maintenance mode.
bin/magento setup:db:statusruns first. No migrations → no503. Migrations present → mode flips for the upgrade only, not the whole build. - Automatic rollback. After the swap, the agent hits your health-check URL. Non-2xx → symlink reverts, cache flushes, maintenance disables. The site is back up before the on-call gets paged.
- Module-drift detection. Bumped a module's
setup_versionwithout adb_schema.xmlchange? Orbit still notices and runssetup:upgradeso registration state matches the deployed code. (drift detection) - Maintenance allowlist. Whitelist your office IP so you can validate the new release before flipping traffic back. (allowlist IPs)
- Centrally upgraded.
orbit-agent self-upgradepulls the latest stable build from GitHub. No SSH-and-sudo apt upgradeper host.
Where to start
| You want to... | Go to |
|---|---|
| Get an environment live in under 30 min | Quick start |
| Install the agent on a server you already own | Install the agent |
| Understand the deployment shape | Zero-downtime overview |
| Wire CI/CD against the GraphQL API | Personal Access Tokens |
| Migrate an existing single-directory install | orbit-agent init |
| Diagnose a stuck deploy | Troubleshooting |
Where Orbit isn't a fit (yet)
- PHP-only zero-downtime is current scope. Database migrations still require a maintenance window — Orbit minimises it (mode flips only around
setup:upgrade) but doesn't eliminate it. A fail-open traffic-holding proxy is on the roadmap. - One host per deploy. A single deploy targets one host. Running several environments on one host is supported (
--name— see Multiple environments); what's not shipped is multi-host fan-out — one deploy updating N agents across N hosts in parallel (a horizontally-scaled app tier). That's on the roadmap. - Magento 2 only. Magento 1 is not a target. Other PHP stacks (Symfony, Laravel) might work with the agent but aren't tested.
Pricing
See byte8.io/products/orbit. One agent token works on one environment; multi-environment plans cover multiple hosts under one dashboard.