TL;DR — Quick Summary
Deploy apps, databases, and services from one dashboard with Coolify — the open-source, self-hosted Heroku/Vercel alternative with automatic SSL and Git integration.
What Is Coolify?
Coolify is an open-source, self-hosted Platform-as-a-Service (PaaS) that gives you a Heroku/Vercel/Netlify-like deployment experience on your own servers. Instead of paying per-dyno or per-seat fees to cloud PaaS providers, you run Coolify on a $5–$20/month VPS and deploy unlimited applications, databases, and services.
With Coolify you get:
- One-click deployments from Git repositories (GitHub, GitLab, Bitbucket, Gitea)
- Automatic SSL via Let’s Encrypt (zero configuration)
- Built-in reverse proxy (Traefik or Caddy)
- Database provisioning (PostgreSQL, MySQL, MariaDB, MongoDB, Redis, etc.)
- One-click services (WordPress, Plausible, Umami, Uptime Kuma, Gitea, and 50+ others)
- Multi-server management from a single dashboard
- Webhooks and CI/CD — push to main and it deploys automatically
Prerequisites
- A Linux server (Ubuntu 22.04+, Debian 12+, or similar) with at least 2 GB RAM and 2 CPU cores.
- A domain name with DNS access (for SSL and custom domains).
- SSH root access to the server.
- Ports 80, 443, and 8000 open in your firewall.
Docker is installed automatically by the Coolify installer if not already present.
Installation
Step 1: Update the Server
sudo apt update && sudo apt upgrade -y
Step 2: Run the One-Line Installer
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
The installer will:
- Install Docker and Docker Compose if missing.
- Create the Coolify directory structure at
/data/coolify. - Pull and start the Coolify containers (dashboard, proxy, database).
- Output the dashboard URL:
http://your-server-ip:8000.
Step 3: Initial Setup
Open http://your-server-ip:8000 in your browser. You will see the setup wizard:
- Create admin account — set your email and a strong password.
- Instance name — give your Coolify instance a name (e.g., “Production PaaS”).
- SMTP (optional) — configure email notifications for deployment success/failure alerts.
Deploying Your First Application
Git-Based Deployment
- Click New Resource → Application.
- Select GitHub (or GitLab/Bitbucket/Gitea) as the source.
- Authorize Coolify to access your repositories (via GitHub App or Deploy Key).
- Select the repository and branch.
- Configure:
- Build Pack: Nixpacks (auto-detect), Dockerfile, Docker Compose, or Static site.
- Domain:
app.yourdomain.com(Coolify provisions SSL automatically). - Port: The port your app listens on (e.g., 3000).
- Environment Variables: Add any secrets your app needs.
- Click Deploy.
Coolify will build the application, create a container, configure the reverse proxy, provision the SSL certificate, and make the app available at your domain — all in under 2 minutes for most projects.
Docker Image Deployment
If your image is already built and published to Docker Hub or GitHub Container Registry:
- Click New Resource → Application.
- Select Docker Image as the source.
- Enter the image name and tag (e.g.,
ghcr.io/your-org/your-app:latest). - Configure domain, port, and environment variables.
- Click Deploy.
Deploying Databases
Coolify can provision managed databases with a single click:
| Database | Version Options | Persistent Storage | Backup Support |
|---|---|---|---|
| PostgreSQL | 13, 14, 15, 16 | ✅ | ✅ Scheduled |
| MySQL | 5.7, 8.0, 8.4 | ✅ | ✅ Scheduled |
| MariaDB | 10.x, 11.x | ✅ | ✅ Scheduled |
| MongoDB | 5.x, 6.x, 7.x | ✅ | ✅ Scheduled |
| Redis | 6.x, 7.x | ✅ | N/A |
| ClickHouse | Latest | ✅ | ✅ Scheduled |
Click New Resource → Database, select the engine and version, and Coolify creates a container with persistent storage and provides connection strings you can paste into your application’s environment variables.
Tip: Enable scheduled backups from the database settings panel. Coolify can store backups locally or in S3-compatible storage (MinIO, Cloudflare R2, Backblaze B2).
One-Click Services
Coolify includes a service catalog with 50+ pre-configured applications:
| Category | Services |
|---|---|
| Analytics | Plausible, Umami, Matomo, PostHog |
| Monitoring | Uptime Kuma, Grafana, Prometheus |
| Git Hosting | Gitea, Forgejo, GitLab |
| CMS | WordPress, Ghost, Strapi |
| Communication | Mattermost, Rocket.Chat |
| Password Management | Vaultwarden |
| Automation | n8n, Activepieces |
| Document Management | Paperless-ngx, Stirling PDF |
Click New Resource → Service, select the service, configure the domain, and deploy. Coolify handles the Docker Compose file, volumes, networking, and SSL automatically.
Multi-Server Management
Coolify can manage applications across multiple servers from a single dashboard:
- Go to Servers → Add Server.
- Enter the remote server’s IP address and SSH port.
- Coolify will generate an SSH key pair — add the public key to the remote server’s
authorized_keys. - Validate the connection.
- Now when deploying any application, you can select which server to deploy to.
This enables patterns like:
- Staging on Server A, Production on Server B — deploy from different branches to different servers.
- Database server separation — keep databases on a dedicated server with more storage.
- Geographic distribution — deploy copies of your app closer to users in different regions.
CI/CD and Webhooks
Coolify supports automatic deployments via webhooks:
- GitHub/GitLab push events — push to the configured branch and Coolify rebuilds automatically.
- Manual redeploy — click the “Redeploy” button in the dashboard.
- API-triggered deploys — use the Coolify API to trigger deployments from CI pipelines.
# Example: Trigger a redeploy via Coolify API
curl -X POST https://coolify.yourdomain.com/api/v1/applications/{uuid}/restart \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Troubleshooting Common Issues
Build Fails with “Out of Memory”
Cause: The server does not have enough RAM for the build process, especially for Node.js or Rust applications.
Fix:
- Add a swap file:
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile. - Or upgrade to a server with more RAM (4 GB recommended for building large projects).
Application Accessible on IP But Not on Domain
Cause: DNS is not pointing to the server, or the SSL certificate has not been provisioned yet.
Fix:
- Verify your A record points to the correct IP:
dig +short app.yourdomain.com. - Check the Traefik/Caddy logs in Coolify for certificate errors.
- Ensure ports 80 and 443 are open in your firewall and not blocked by your VPS provider’s security group.
Database Connection Refused from Application
Cause: The application is trying to connect to localhost instead of the Docker internal network hostname.
Fix: Use the connection string provided by Coolify in the database settings panel. It uses the Docker internal hostname (e.g., postgresql-xxxx) which resolves within the Docker network.
Coolify vs. Other PaaS Solutions
| Feature | Coolify | Heroku | Vercel | Dokku | CapRover |
|---|---|---|---|---|---|
| Self-Hosted | ✅ | ❌ | ❌ | ✅ | ✅ |
| Web Dashboard | ✅ | ✅ | ✅ | ❌ (CLI) | ✅ |
| Auto SSL | ✅ | ✅ | ✅ | ✅ | ✅ |
| Git Deploy | ✅ | ✅ | ✅ | ✅ | ✅ |
| Database Provisioning | ✅ | Add-on ($) | ❌ | Plugin | ✅ |
| Multi-Server | ✅ | ❌ | ❌ | ❌ | ❌ |
| Service Catalog | 50+ | Add-ons | ❌ | Plugins | One-clicks |
| Cost | Free (self-hosted) | $7+/dyno | $20+/user | Free | Free |
| Docker Compose | ✅ | ❌ | ❌ | Limited | ❌ |
Summary
Coolify is the most complete open-source PaaS available today. If you are spending $50–$500/month on Heroku, Vercel, or Railway, you can replicate the same experience on a single VPS for a fraction of the cost. The tradeoff is that you manage the server itself — but Coolify handles everything from build to deploy to SSL to monitoring.