Coolify
A Vercel-style workflow we host ourselves
live on Coolify
What is Coolify?
- An open-source, self-hostable PaaS — think open-source Heroku / Netlify / Vercel.
- Runs on any VPS you control, via Docker.
git pushbuilddeployHTTPS
How a push becomes a deploy
Three open pieces do the work — no Dockerfile, no CI to wire.
GitHub Appthe trigger
Installed on the repo. Every push or PR fires a webhook; Coolify clones with a short-lived token — no deploy keys or personal access tokens to manage. Nixpacksthe build
Inspects the repo, detects pnpm from the lockfile, and builds a container image — zero-config, no Dockerfile to write or maintain. Traefikthe front door
The coolify-proxy. Routes each domain to the right container and terminates TLS, auto-issuing & renewing Let's Encrypt certs. git push → build → deploy → HTTPS — each step handed to one piece.
What's running on the box
UsersHTTPS · Let's Encrypt
↓
Hetzner VPS · Dockercoolify-proxy — Traefikterminates SSL · routes by domain
↓
deckdemo.…
PR previewpr-123.demo.…
Coolify control planecoolifypostgresredisrealtime
Two kinds of database
Everything's a container — but don't conflate these two.
Coolify's control planepostgresredis
Coolify's own state — your projects, servers, deploy config. Ships with the install. You never touch it. Your app's databasea separate container
Provisioned on demand, only if your app needs one — its own volume, backups and lifecycle. Same Docker host · different containers · different jobs.
Why we're evaluating it
| Coolify | Vercel |
|---|
| Cost | Flat VPS bill | Per-seat + bandwidth + invocations |
|---|
| Lock-in | Our Docker, our box | Proprietary platform |
|---|
| Data residency | We pick region & provider | Their regions |
|---|
Trade-off, up front: we run the ops.
Watch this: I'll open a PR
- Open a pull request against the repo.
- Coolify builds a preview at a unique subdomain.
- The preview URL is posted back on the PR.
The same per-branch preview flow as Vercel.
Trade-offs (being honest)
| Trade-off | Mitigation |
|---|
| We own uptime, patching & backups | Managed backups |
| One box is a single point of failure | A second node |
| No global edge CDN out of the box | A CDN in front when needed |