Skip to content

Prepare the server

Five minutes of prep saves an hour of debugging later.

A small Linux box. Ubuntu 22.04+ or Debian 12+ is the most-tested path; any systemd distro works.

WorkloadvCPURAMDisk
1-3 small apps, hobby11 GB (min)20 GB
5-10 apps, small team22 GB (recommended)40 GB
10-20 apps, busy2-44 GB80 GB+

SimpleDeploy itself uses ~60 MB RAM. Everything else is your apps and Docker.

SimpleDeploy needs Docker Engine + the Compose plugin. Skip this if Docker is already running.

Terminal window
# Official one-liner (verify on docs.docker.com first)
curl -fsSL https://get.docker.com | sudo sh
sudo systemctl enable --now docker
docker version
docker compose version

You need three ports inbound: 22 (SSH), 80 (HTTP, Let’s Encrypt), 443 (HTTPS).

Terminal window
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

If your provider has a separate cloud firewall (AWS Security Group, Hetzner, DO), open the same ports there.

Point an A record for the management domain at the server, e.g. manage.example.com.

For each app you plan to deploy, add an A record for its domain too. Wildcard records (*.example.com) work and save you a step.

  1. In your DNS provider, create:

    • manage.example.com203.0.113.10 (your VPS IP)
    • whoami.example.com203.0.113.10
  2. Verify propagation:

    Terminal window
    dig +short manage.example.com

    You should see your VPS IP.

Ready? On to generating the config.