Deployment.sh

Web app hosting on your own servers, explained in four steps

Deployment turns a plain Ubuntu or Debian server into production web app hosting for any stack. You connect a server or a cloud account, point a site at a git repository, and every push becomes a zero-downtime release with logs, alerts and backups. The servers stay in your cloud account, so you pay your provider at cost and Deployment a flat plan for the panel.

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

Why web application hosting gets expensive or fragile

Most teams pick between two bad options. A managed PaaS removes the server work but bills per app, per instance and per gigabyte, and the invoice grows faster than the product. A raw VPS is cheap, but someone spends days on nginx, runtimes, SSL, databases, workers, cron and a deploy script that only one person understands. When that person is on holiday, nobody dares to deploy.

Deployment sits in the middle. You keep the price and control of your own servers and get the push-to-deploy workflow of a platform, configured the same way for every app.

Step one, connect a server or a cloud account

Bring any Ubuntu 22.04, Ubuntu 24.04 or Debian 12 server that you can reach over SSH. You run one command as root, it adds a dedicated Deployment SSH key for that server and reports back, and the server appears in your panel. Prefer to create servers from the panel? Paste an API token from Hetzner, DigitalOcean, AWS, Vultr, Linode, Google Cloud, OVH, UpCloud or Scaleway, choose a region and size, and Deployment creates the machine inside your own account.

  • Works with vps management on any provider and with dedicated server management on bare metal
  • One key per server, removable at any time from the panel or from authorized_keys
  • Cloud tokens are scoped by you and can be revoked in your provider console
bash
curl -fsSL https://deployment.sh/connect/<token> | sudo bash
Operations engineer swapping a hot-swap drive in a storage array inside a data center cabinet

Step two, provision a hardened server

Provisioning installs only what your apps need and locks the rest down. Deployment configures the firewall, disables password logins, enables unattended security updates and adds swap. It installs nginx or Caddy as the web server and the runtimes your sites ask for, side by side: PHP 8.x, Node.js LTS, Python 3.x, Ruby, Go, Java 21, .NET 8 and the Docker engine. Databases (MySQL, MariaDB, PostgreSQL) and Redis are one click away, with users and grants managed from the panel.

  • Firewall with only SSH, HTTP and HTTPS open by default
  • SSH hardening and automatic security patches
  • One runtime version per site, so two apps never fight over a global version

Step three, deploy from git with zero downtime

Create a site, connect GitHub, GitLab, Bitbucket or any git URL, and pick a branch per environment. Deployment reads the repository, detects the stack and writes a deploy script you can edit line by line. Each deploy builds into a fresh release folder, runs a health check and only then switches a symlink, so visitors never see a half-built app. If something looks wrong, one click rolls back to the previous release.

  • Push to deploy through a webhook, or deploy from the panel, the API or the CLI
  • Read more on how deploy from git works and on zero downtime deployment
  • Environment variables are encrypted per environment and shown as a diff before each deploy

Step four, operate, monitor and back up

After the first release the panel becomes your daily control room. Queue workers and daemons run under supervisor or systemd and restart on every deploy. Cron jobs keep their output. Deploy logs, application logs and nginx logs stream in the browser. Monitoring tracks CPU, RAM, disk and load, HTTP uptime checks watch your domains, and alerts go to email, Slack, Discord or a webhook. Scheduled database and file backups land in your own S3-compatible bucket with retention and one-click restore.

How the pieces fit together

LayerWhat runs thereWho owns it
Your git hostRepository, branches, pull requestsYou
Deployment panelDeploy scripts, schedules, alerts, roles, audit logDeployment
Your cloud accountServers, disks, networks, billingYou
Your servernginx or Caddy, runtimes, releases, workers, databasesYou
Your storage bucketDatabase and file backupsYou

The path of one deploy

If the Deployment service is ever unreachable, nothing on your servers stops. nginx keeps serving, workers keep working and cron keeps running, because all of it lives on your machine.

  • git push
  • Webhook to Deployment
  • SSH command to your server
  • Build in a new release folder
  • Health check passes
  • Symlink switch and worker restart
  • Logs and metrics back to the panel

Web app hosting for every stack in one panel

The same four steps work for PHP and Laravel, Node.js and Next.js, Python with Django, FastAPI or Flask, Ruby on Rails, Go, Java with Spring Boot, .NET, static sites and Docker or Compose projects. A Laravel API, a Next.js frontend and a Django worker can share one server or live on three, and you still manage them from one place. See the full list on software deployment automation.

Which plan fits your hosting setup

Every plan includes provisioning, push to deploy, zero-downtime releases, SSL, workers, cron, logs, monitoring and backups. Plans differ in servers, sites, team members and retention. Yearly billing saves 50 percent and is the default on PaaS pricing.

PlanMonthlyYearly per monthServersSites
Starter49 USD24 USD315
Team199 USD99 USD15100
Agency499 USD249 USD60unlimited within servers
Enterprise1 499 USD749 USD250unlimited within servers

Do I need to know Linux to use Deployment?

You need SSH access to run the connect command once. After that, provisioning, nginx, SSL, workers and deploys are handled from the panel, and you can still log in to the server yourself whenever you want.

What happens to my apps if I cancel?

They keep running. Servers, databases, files and releases are on your machine and in your cloud account. You lose the panel, deploy automation and monitoring, not your hosting.

Can I try Deployment before I pay?

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

Which operating systems are supported?

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

Start hosting your web apps on servers you own

Connect your first server in a few minutes and ship your next push with zero downtime.

Want to see it on your own code first? Try the demo with any public repository.