Deploy on Coolify
Coolify is a good fit for putting the hub on a public server (a Hetzner or
similar VPS) where NAT’d agents can dial home to it. Runaway ships a docker-compose.coolify.yml
that deploys the hub straight from the repository — Coolify clones the repo and builds the hub
image on your own server, so there’s no prebuilt image and no GHCR login for the hub.
Deploy
Section titled “Deploy”-
Create a Docker Compose resource from the repository.
Create a Docker Compose resource sourced from this repository (via Coolify’s GitHub App) and point it at
docker-compose.coolify.yml. Coolify clones the repo and builds the hub’s runtime Dockerfile stage on the server. -
Assign your domain.
Assign your domain to the
runawayservice. Coolify provisions TLS and configures Traefik for you. WebSocket upgrades on/api/agent— which agents use to dial home — pass by default. -
Deploy.
There are no secrets to paste.
RUNAWAY_MASTER_KEY,BETTER_AUTH_SECRET, andBETTER_AUTH_URLare filled by Coolify’sSERVICE_*magic variables. Hit deploy and the hub comes up on your domain.
Enroll your agents
Section titled “Enroll your agents”The Coolify deploy bundles no local agent — the hub holds no Docker socket, so no runner compute lives on the public server. That’s deliberate: a hub compromise grants no Docker access on the public box. All runner compute lives on agent hosts you enroll from the hosts page. See Add more hosts to connect your first agent.
Run a single instance
Section titled “Run a single instance”SQLite is single-writer. Deploy one instance and use recreate, not rolling updates — two containers against the same data volume is unsupported.