Self-hosted.
Deployer and your Vapor app run on the same Ubuntu server. No hosted control plane is required.
Deploy from GitHub to an Ubuntu server you control. Deployer runs tests, builds releases, manages systemd, and keeps deployment logs.
bash <(curl -sSL https://mottzi.codes/deployer/setup.sh)
The panel shows the running commit, recent deployments, test results, build times, binary sizes, and logs. Select a row to view its output.
Deployer and your Vapor app run on the same Ubuntu server. No hosted control plane is required.
The panel and CLI show test output, build output, deployment status, and runtime logs.
Recent release binaries are stored by commit and can be started again without recompiling.
Automatic mode deploys each push. Manual mode records pushes until you start a deployment. Both use the same test, build, health-check, and promotion steps.
A signed GitHub webhook records the commit SHA.
Run swift test and compile the app in release mode.
Save the predecessor, activate the new binary, and restart systemd.
Wait for a stable TCP or HTTP response before promotion.
After systemd starts the candidate, Deployer requires a stable TCP or HTTP response for two seconds. If the probe fails, the previous binary remains available and can be started without rebuilding.
The interactive installer can create a new installation or repair an existing one.
bash <(curl -sSL https://mottzi.codes/deployer/setup.sh)
deployerctldeployerctl is the terminal alternative to the web panel. It covers deployment and service
control, configuration, logs, and updates.
Last login: Tue Aug 12 14:22:08 on ttys001
macbook ~ % ssh vapor@server
vapor@server:~$ sudo deployerctl status
deployer running :8081
app running :8080
vapor@server:~$ sudo deployerctl deploy a8c7a3c --yes
testing ✓ build ✓ health ✓ live ✓
vapor@server:~$
Report issues, propose changes, or open a pull request on GitHub.