Deployment.sh

Deployment platform docs, from first server to full team setup

These docs walk through every part of Deployment in the order most teams use it. Each topic below has a short overview and the key steps, so you can see how things work before you create an account. Commands and file paths are the ones you will see on your own servers.

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

Deployment manages servers you own and deploys apps to them from git. Your first hour usually looks like this.

  • Create an account and confirm your email with the 6-digit code
  • Connect a server over SSH or add a cloud account token
  • Wait for provisioning to finish, usually a few minutes
  • Create a site, connect a repository and deploy

Connect a server

Any Ubuntu 22.04, Ubuntu 24.04 or Debian 12 server with root or sudo access can be connected. To create servers from the panel instead, add a provider token as described on cloud server management integrations.

  • In the panel choose Add server, then Existing server
  • Copy the connect command and run it as root on the server
  • The command adds a per-server key and reports system details
  • Choose the web server (nginx or Caddy) and start provisioning
bash
curl -fsSL https://deployment.sh/connect/<token> | sudo bash

Sites and repositories

A site is one app on one or more servers, with its own system user, domain and release history.

  • Choose Add site, enter the main domain and pick the server
  • Connect GitHub, GitLab, Bitbucket or paste any git URL
  • Pick the branch for each environment
  • Review the detected stack and runtime version, then save

Deploy script

Each site has a deploy script that runs inside the new release folder. The detected script is a starting point you can edit.

  • Variables RELEASE, SHARED, COMMIT and BRANCH are available
  • Before switch hooks run after the build, after switch hooks run after the symlink moves
  • Set the health check URL or command and the number of releases to keep
  • Read the release model on zero downtime deployment

Environment variables

Variables are stored encrypted per environment and written to the shared env file on deploy.

  • Open the site, then Environment, and choose the environment
  • Add keys one by one or paste a whole env file
  • Review the diff shown before the next deploy
  • Reveal actions are recorded in the audit log

Workers and daemons

Long-running processes run under supervisor or systemd and restart after each deploy.

  • Choose Add worker, enter the command, user and number of processes
  • Pick the stop signal and timeout your framework needs
  • Watch status and recent output from the panel

Cron

Scheduled jobs run as the site user with output kept for review.

  • Add a schedule in cron syntax and the command
  • Use the release-independent path current, so jobs always run the live code
text
* * * * * cd /home/app/site/current && php artisan schedule:run

Domains and SSL

Domains, aliases and certificates are managed per site.

  • Add the domain and point its DNS A or AAAA record at the server
  • Request a Let's Encrypt certificate, renewal is automatic
  • For wildcard certificates, connect a DNS provider token
  • Add redirects between domains or from www

Databases

Databases run on the same server or a dedicated one.

  • Install MySQL, MariaDB, PostgreSQL or Redis from the server page
  • Create databases and users, then grant users per database
  • Allow remote access only for the IP addresses you list

Backups

Backups go to your own S3-compatible bucket.

  • Add the storage endpoint, bucket and access key
  • Choose databases and folders to back up and the schedule your plan allows
  • Set retention, then restore any copy with one click

Monitoring and alerts

Metrics and uptime checks are collected per server and domain.

  • CPU, RAM, disk and load charts for each server
  • Add HTTP uptime checks for your domains
  • Connect email, Slack, Discord or a webhook and choose which events alert

Teams and roles

Invite people and give them the smallest role they need, as described on the server security platform page.

  • Roles owner, admin, developer and viewer
  • Limit a member to specific servers
  • Turn on enforced 2FA, and SSO with SAML on Enterprise

API and CLI

Everything in the panel is available through the REST API and the CLI.

  • Create a token with scopes for the resources and sites it may touch
  • Call the API from scripts and CI, see the deployment api reference
  • Install the CLI and run deployment deploy from your terminal
bash
curl -fsSL https://deployment.sh/cli/install.sh | sh
deployment login
deployment deploy --site web --env production

Guides by stack

Each supported stack has its own page with runtime defaults, process setup and a starting deploy script: Laravel and PHP, Node.js, Next.js, Django and FastAPI, Rails, Go, Java and Spring Boot, .NET, static sites and Docker. Longer walk-throughs live in our server deployment guides.

Engineer writing notes in a notebook next to a laptop and a mug in a cafe by a window

Help when the docs are not enough

Write to support@deployment.sh from the email on your account with the server or site name, and we answer by email. Agency plans get priority email support, Enterprise plans get priority support with an SLA.

Which plan to start with

Most people start on Starter at 49 USD a month, or 24 USD a month billed yearly, with 3 servers and 15 sites. Teams that need roles and the audit log start on Team at 199 USD a month (99 USD yearly). Larger setups pick Agency at 499 USD a month (249 USD yearly) or Enterprise at 1 499 USD a month (749 USD yearly). See PaaS pricing.

Do I need an account to read the docs?

No. The docs are public. You need an account to connect servers and deploy.

Which operating systems do the docs cover?

Ubuntu 22.04, Ubuntu 24.04 and Debian 12, on x86 and ARM.

Can I try Deployment before I pay?

Yes, with the free one-time demo on the home page. Plans start at 49 USD a month, or 24 USD a month billed yearly.

Follow the steps on your own server

Create your account, connect a server and deploy your first site following the docs.

Want a deploy plan for your repository right now? Try the demo.