Self-Host Coolify on a VPS: Deploy Any App Without Heroku (2026)
Coolify is an open-source, self-hosted Heroku and Vercel alternative. Run it on your own VPS to deploy web apps, databases, and cron jobs — with GitHub integration, auto SSL, and one-click PostgreSQL, MySQL, Redis, and MongoDB. No vendor lock-in, no per-app fees.
What Is Coolify?
Coolify is a self-hosted platform-as-a-service (PaaS) that mirrors Heroku and Vercel workflows. You connect a server via SSH, point it at a GitHub repo, and Coolify handles the build (via Nixpacks), deployment, and HTTPS with Let's Encrypt. You own the infrastructure, pay only for the VPS, and avoid per-app pricing.
Coolify also manages databases (PostgreSQL, MySQL, Redis, MongoDB), static sites, and cron jobs. It integrates with Cloudflare Tunnels and custom domains.
VPS Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
| vCPU | 2 | 4 |
| RAM | 2 GB | 4 GB |
| Storage | 20 GB SSD | 40 GB+ SSD |
For production with multiple apps, use at least 4 GB RAM. Liquid Web VPS offers managed hosting, SSD storage, and 99.99% uptime SLA — ideal for Coolify deployments.
Installation
Connect to your server via SSH, then run:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
The script installs:
- Docker and Docker Compose
- Traefik (reverse proxy for HTTPS)
- PostgreSQL (Coolify's own database)
- Coolify itself
Installation takes about 5–10 minutes. When done, you'll see a URL and admin credentials.
First Login and Server Setup
- Open
http://YOUR_SERVER_IP:8000in a browser. - Create the admin account (email and password).
- Add your server:
- Go to Servers → Add New Server
- Enter a name (e.g.
production) - Choose Public or Private (for SSH)
- Add SSH connection:
root@YOUR_IPoruser@YOUR_IPwith key-based auth
Coolify uses SSH to run Docker commands on the server. Ensure ssh-copy-id has been run so Coolify can connect without a password.
Deploying Your First App
- New Resource → Application
- Connect GitHub (or GitLab, Bitbucket) and authorize Coolify.
- Select your repository and branch.
- Build Pack: Nixpacks (auto-detects Node, Python, Go, etc.)
- Domain: e.g.
app.yourdomain.com— point DNS A record to your server IP - Enable Automatic HTTPS (Let's Encrypt via Traefik)
- Click Deploy
Coolify builds the image, runs the container, and configures SSL. Your app is live at the specified domain.
Managing Databases
Coolify provides one-click databases:
- PostgreSQL —
postgres:15(or latest) - MySQL —
mysql:8 - Redis —
redis:7 - MongoDB —
mongo:7
Add a database from New Resource → Database, choose type, set a root password, and deploy. Connect from your app using the internal Docker network hostname (e.g. postgres, redis).
Enable Backups in the database settings to run periodic dumps.
Cloudflare Tunnels and Custom Domains
For Cloudflare Tunnels, install the Cloudflare connector in Coolify and route traffic through the tunnel instead of exposing ports. Useful when the server is behind NAT or you want Cloudflare's WAF and DDoS protection.
For custom domains, add the domain in the application settings. Coolify uses Traefik to obtain a Let's Encrypt certificate and serve the app over HTTPS.
Coolify vs Dokku vs CapRover vs Heroku
| Feature | Coolify | Dokku | CapRover | Heroku |
|---|---|---|---|---|
| Cost | VPS only | VPS only | VPS only | Per-app, dyno-based |
| GUI | Full web UI | CLI + plugins | Web dashboard | Web dashboard |
| Buildpacks | Nixpacks | Heroku buildpacks | Nixpacks, Dockerfile | Heroku buildpacks |
| Databases | One-click PG, MySQL, Redis, Mongo | Via plugins | One-click | Add-ons (paid) |
| Auto SSL | Yes (Traefik) | Yes (Caddy) | Yes (Caddy) | Yes |
| Multi-server | Yes | Limited | Single server | Managed |
| Learning curve | Low | Medium | Low | Low |
Choose Coolify for a modern UI, Nixpacks, and easy database setup. Use Liquid Web VPS for managed hosting with SSD and high availability.
Nixpacks Buildpack Behavior
Coolify uses Nixpacks by default to detect your app type and build it. It auto-detects:
- Node.js —
package.json→npm install+ start script - Python —
requirements.txtorpyproject.toml→pip install+ app server - Go —
go.mod→go build - Ruby —
Gemfile→bundle install - Static — HTML/CSS/JS → served via Nginx
Add a nixpacks.toml in your repo root to override defaults (e.g. custom build commands, env vars). For full control, switch to Dockerfile in the Coolify build settings.
Cron Jobs and Workers
Coolify supports scheduled and recurring jobs. From New Resource → Cron Job, add a schedule (e.g. 0 2 * * * for daily at 2 AM) and the command or script to run. The job runs in a container on your server. Use this for backups, report generation, or data sync. For web scrapers and pipelines, integrate with Apify for managed execution.
When to Use Liquid Web VPS for Coolify
Liquid Web suits Coolify when you need:
- Managed hosting — proactive monitoring and support
- SSD storage — faster builds and database I/O
- 99.99% uptime — SLA-backed availability
- Scalability — easy upgrades as you add more apps
Combine Coolify with our Traefik v3 guide for advanced routing, and Docker Compose production guide for robust container workflows.
Begin with a 4 GB VPS, deploy one app, then add databases and more services. See VPS security hardening checklist to lock down SSH and TLS.
Coolify is an open-source, self-hosted PaaS that lets you deploy apps like Heroku or Vercel on your own VPS. It uses Nixpacks for builds, Traefik for SSL, and provides one-click databases.
2 GB minimum for a single app. 4 GB recommended for multiple apps plus databases. Each app and database container adds memory usage.
Yes. Add your domain in the app settings. Coolify uses Traefik and Let's Encrypt to issue and renew SSL certificates automatically.
Yes. Install the Cloudflare connector in Coolify and route traffic through the tunnel to avoid exposing ports directly.
Add a database in Coolify, note the internal hostname (e.g. postgres), and set your app's DATABASE_URL or equivalent env var to that host. They share the same Docker network.




