Bootstrapping a Server
What the one-click bootstrap installs on a fresh VPS, and how it behaves on a server that already has something running.
Bootstrap turns a bare VPS into something DeployOS can deploy to. It's a single button, and every step streams live output so you can see exactly what's happening — nothing runs silently in the background.
What it installs
Run from a server's card (Bootstrap), the pipeline:
- Installs Docker and Docker Compose, if not already present.
- Configures ufw (the firewall) to allow SSH (22), HTTP (80), and HTTPS (443).
- Creates the shared edge network — a Docker network your apps' containers join so the reverse proxy can reach them.
- Installs and starts your chosen reverse proxy (Traefik or Caddy, whichever you picked when adding the server).
- Installs Railpack (the build tool used to build apps straight from a repo with no
Dockerfile) and its BuildKit backend, plus restic for offsite backups. - Runs a self-test to confirm everything came up healthy.
Everything lives under /opt/deployos on the server — nothing touches your home directory or gets mixed into unrelated system paths.
Adopting instead of clobbering
Bootstrap is non-destructive by design:
- If a
traefik-edge(or Caddy) container from a previous DeployOS install is already running, it's adopted, not replaced. - If something else already owns port 443 — an existing Nginx, Caddy, or other reverse proxy from before you had DeployOS — bootstrap skips installing a proxy and shows you an advisory instead of fighting the existing one for the port.
- If it detects a proxy from an older manual setup, it automatically finds where that proxy actually reads its config from and symlinks DeployOS's expected config path to it, so routes generated by DeployOS actually get picked up by the running proxy instead of silently going nowhere.
If bootstrap reports something it couldn't resolve automatically, re-running it is always safe — every step re-checks state before acting rather than blindly re-installing.
Next: deploy something. See Deploying Your First App.