Deployment

Server management platform for every stack

Connect your own server or cloud, paste a repository, and Deployment provisions it and ships your app with zero downtime.

plan.sh

$ deployment plan

Paste a repository and get a deploy plan

Paste a public GitHub or GitLab repository. We read only the manifests and store nothing beyond the plan.

Environment

Your servers stay in your own cloud account. No card needed for the demo.

See pricing

$ deployment plan

Building your deploy plan

$ deployment plan

$ deployment plan

Private repository or no stack found

Choose the framework and runtime and we build the full plan anyway.

Backend developer at a desk at night watching deploy logs scroll in a dark terminal on two monitors

One deployment platform for every runtime you ship

Every runtime gets the same release flow, rollback, workers, logs and backups, whatever the language.

Close-up inside a server rack: a patch cable plugged into a switch port next to a row of small green link lights, out-of-focus cabinet behind

Ship any stack from one panel

A Laravel API, a Next.js frontend and a Django worker live side by side in one organization. Each site gets its own runtime, deploy script, environment variables and processes. A polyglot team stops juggling three tools and a folder of shell scripts. Read more about software deployment automation.

Zero downtime with one-click rollback

Every deploy builds into a fresh release folder, runs a health check and only then switches the symlink. Something looks wrong after the switch? One click points the site back to the previous release in about a second. See how zero downtime deployment works.

Servers stay yours with no compute markup

Your servers live in your own Hetzner, DigitalOcean, AWS or Vultr account, and you pay your cloud directly at its own prices. Deployment charges one flat plan for the panel, never a percentage on CPU, RAM or bandwidth. Your apps keep running even if you leave.

How the server management platform works in four steps

From an empty VPS to a live app with workers, cron and alerts. Every step is also available through the deployment API.

  1. 1. Connect a server

    Run one command on any Ubuntu or Debian server, or add a cloud API token and create servers from the panel. Deployment hardens SSH, enables the firewall and unattended security updates, and adds swap. Then it installs nginx or Caddy plus the runtimes your sites need.

    $ curl -fsSL https://deployment.sh/connect/srv_7Hq2kX | sudo bash
    Technician's hands plugging an ethernet cable into a 1U server inside a rack with blinking LEDs
  2. 2. Push to deploy

    Add a repository from GitHub, GitLab, Bitbucket or any git URL and pick a branch per environment. Every push to that branch triggers a build in a new release folder and an atomic switch. Learn more about how to deploy from git.

    $ git push origin main# Deployment: build release 20261019-142210, health check passed, switched in 0.4 s
  3. 3. Environment and workers

    Keep encrypted variables per environment and review a diff before each deploy. Define queue workers and daemons once. Deployment restarts them on every release, and cron jobs run with their own logs.

    processes:
      web: php-fpm
      worker: php artisan queue:work --tries=3
    cron:
      - "* * * * * php artisan schedule:run"
  4. 4. Logs and alerts

    Deploy logs, app logs and nginx logs stream in the panel. CPU, RAM, disk, load and HTTP uptime checks send alerts to email, Slack, Discord or your own webhook.

Trigger a deploy from your pipeline

curl -X POST https://deployment.sh/api/v1/sites/site_42/deployments \
  -H "Authorization: Bearer $DEPLOYMENT_TOKEN" \
  -d '{"branch": "main"}'
import os, requests

r = requests.post(
    "https://deployment.sh/api/v1/sites/site_42/deployments",
    headers={"Authorization": f"Bearer {os.environ['DEPLOYMENT_TOKEN']}"},
    json={"branch": "main"},
)
print(r.json()["status"])
const res = await fetch("https://deployment.sh/api/v1/sites/site_42/deployments", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.DEPLOYMENT_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ branch: "main" }),
});
console.log((await res.json()).status);

What every plan includes

Limits count per organization. On Agency and Enterprise, sites are bounded only by the servers you connect.

Two developers in a small agency office reviewing a deploy log on a laptop, one pointing at the screen with a pen
Limit StarterTeamAgencyEnterprise
Servers31560250
Sites15100Unlimited within serversUnlimited within servers
Team members11030Unlimited
Uptime checks5, every 5 min50, every 1 min250, every 1 min1 000, every 30 s
Backups to your storageDailyHourlyHourlyCustom schedule
Deploy history and logs14 days90 days1 year2 years

Your code, your servers, our control plane

Your repository stays on GitHub, GitLab, Bitbucket or your own git host. The Deployment control plane receives the push webhook and connects to your servers over SSH with a dedicated key. It builds the release, switches it live and restarts processes. Application traffic never passes through us. Backups go straight from your server to your own S3-compatible bucket. If the control plane is unreachable, your apps keep serving requests exactly as before.

Pricing that stays flat as you grow

Yearly billing is the default and saves 50 percent. Every plan includes zero-downtime deploys, rollback, SSL, databases, workers, cron, monitoring and backups to your own storage. Full details on PaaS pricing.

Save 50 percent

Starter

24 USD / month

24 USD per month, billed yearly at 288 USD. 49 USD month to month.

  • 3 servers and 15 sites
  • 1 team member
  • 5 uptime checks every 5 minutes
  • Daily backups to your storage
  • 14 days of deploy history

Team

99 USD / month

99 USD per month, billed yearly at 1 188 USD. 199 USD month to month.

  • 15 servers and 100 sites
  • 10 team members with roles
  • 50 uptime checks every minute
  • Hourly backups and audit log
  • 90 days of deploy history

Agency

249 USD / month

249 USD per month, billed yearly at 2 988 USD. 499 USD month to month.

  • 60 servers, sites unlimited within them
  • 30 team members with roles
  • 250 uptime checks every minute
  • Priority email support
  • 1 year of deploy history

Enterprise

749 USD / month

749 USD per month, billed yearly at 8 988 USD. 1 499 USD month to month.

  • 250 servers, sites unlimited within them
  • Unlimited team members
  • SSO with SAML and 99.9 percent SLA
  • Invoicing and priority support
  • 2 years of deploy history

Why a flat plan beats scripts and PaaS markup

Home-grown deploy scripts cost engineering days every time a server is rebuilt, a runtime is upgraded or the one person who wrote them is on holiday. Managed PaaS removes that work, but bills per app, per instance and per gigabyte on top of the raw compute. The bill grows with every service you add. Deployment sits in between: your servers at your cloud's own prices, plus one flat plan for the panel.

  • Roles for owner, admin, developer and viewer, with access granted per server
  • Audit log of every deploy, rollback, variable change and login
  • SSO with SAML on Enterprise
  • Invoices on Enterprise and receipts on every plan
  • SSH keys, encrypted variables and access rules described on the server security platform page
CTO crouching at an open server cabinet in a small office server room lit by cool blue LED strips, laptop on the rack rail showing a dark terminal

Read the deployment platform docs

Short, practical guides for every step from first server to API automation. Start at the deployment platform docs.

Read the docs
Top-down view of a developer's desk with a laptop terminal, a notebook with a hand-sketched diagram of boxes and arrows and a hardware security key
  • Getting started

    Create an organization, connect a server and ship your first site.

  • Connect a server

    The one-line installer, cloud API tokens and supported operating systems.

  • Deploy script

    Edit the build steps per site and keep releases atomic.

  • Environment variables

    Encrypted values per environment and the diff before deploy.

  • Workers and cron

    Queue workers, daemons and scheduled jobs with logs.

  • SSL and domains

    Domains, aliases, redirects and certificates that renew themselves.

  • Backups

    Database and file backups to S3-compatible storage with one-click restore.

  • API

    Scoped tokens, deploy endpoints, outgoing webhooks and the CLI.

Questions before you connect a server

Do I need to move my servers?

No. You connect the servers you already have over SSH or add a cloud API token. Nothing is migrated to us, and the servers stay in your own account.

Which clouds and operating systems are supported?

Any Ubuntu or Debian server you can reach over SSH, plus API integrations with Hetzner, DigitalOcean, AWS, Vultr, Linode, Google Cloud, OVH, UpCloud and Scaleway to create servers from the panel.

What runs on my server?

Only what your sites need: the web server (nginx or Caddy), the runtimes per site, databases you choose, supervisor or systemd units for your processes, and a dedicated SSH user with the Deployment key. No heavy agent sits in front of your traffic.

What if your service is unavailable, do my apps stop?

No. Your apps, databases, workers and cron jobs run on your servers and keep running. Only new deploys and panel actions wait until the control plane is reachable again.

Can I edit the deploy script?

Yes. Every site has its own editable deploy script with the detected defaults as a starting point. Add migrations, asset builds, cache warmups or any shell command you need.

How does rollback work?

Deployment keeps your last releases on disk. Rollback points the current symlink back to a previous release and restarts processes. It takes seconds and rebuilds nothing.

Can I try Deployment before I pay?

Yes. The deploy plan demo on this page is free and one-time: paste a public repository and see the detected stack, server plan and the start of the deploy script. Plans start at 49 USD a month, or 24 USD a month billed yearly.

Can I cancel?

Yes, at any time from your account. Cancelling stops the next renewal. Your access runs until the end of the period you paid for.

Do you offer refunds?

Payments are final. The only exceptions are a duplicate charge, a proven unauthorized charge or a complete outage of the service, as described in the refund policy. More answers on the deployment platform FAQ.

Deploy your first app

Connect a server, push your repository and watch the release switch live with zero downtime.

Try the demo