A small deployment tool with fewer ways to get lost.
Connect GitHub, declare Ubuntu servers and Dockerfile apps in one file, then deploy the exact branch revision by hand.
One path
One clear path from repository to server
Towbar stays narrow today—GitHub, Ubuntu, Dockerfiles, AWS Secrets Manager, and Caddy—with deliberate seams for more providers and runtimes later.
The repository is the source of truth
Servers, apps, Dockerfile paths, domains, TLS mode, and secret references live in .towbar/deployment.yml.
Deploy only when you ask
Push webhooks synchronize configuration. They never trigger a deployment.
No registry required
Towbar builds on the target host, promotes a healthy candidate, and keeps only the current and previous image.
Secrets stay out of manifests
The manifest contains provider references. Build and runtime values are fetched just in time from AWS Secrets Manager.
Manifest v1
Review infrastructure changes like code
Stable IDs preserve app history through renames. Removed declarations archive cleanly and restore when the same ID returns.