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.
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
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
* * * * * 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
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.
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.
$ git push origin main
✓ build release 20261019-142210
✓ health check 200
✓ switch current 0.4 s
$