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:

  1. Install Docker and Docker Compose if missing.
  2. Create the Coolify directory structure at /data/coolify.
  3. Pull and start the Coolify containers (dashboard, proxy, database).
  4. 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:

  1. Create admin account — set your email and a strong password.
  2. Instance name — give your Coolify instance a name (e.g., “Production PaaS”).
  3. SMTP (optional) — configure email notifications for deployment success/failure alerts.

Deploying Your First Application

Git-Based Deployment

  1. Click New Resource → Application.
  2. Select GitHub (or GitLab/Bitbucket/Gitea) as the source.
  3. Authorize Coolify to access your repositories (via GitHub App or Deploy Key).
  4. Select the repository and branch.
  5. 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.
  6. 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:

  1. Click New Resource → Application.
  2. Select Docker Image as the source.
  3. Enter the image name and tag (e.g., ghcr.io/your-org/your-app:latest).
  4. Configure domain, port, and environment variables.
  5. Click Deploy.

Deploying Databases

Coolify can provision managed databases with a single click:

DatabaseVersion OptionsPersistent StorageBackup Support
PostgreSQL13, 14, 15, 16✅ Scheduled
MySQL5.7, 8.0, 8.4✅ Scheduled
MariaDB10.x, 11.x✅ Scheduled
MongoDB5.x, 6.x, 7.x✅ Scheduled
Redis6.x, 7.xN/A
ClickHouseLatest✅ 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:

CategoryServices
AnalyticsPlausible, Umami, Matomo, PostHog
MonitoringUptime Kuma, Grafana, Prometheus
Git HostingGitea, Forgejo, GitLab
CMSWordPress, Ghost, Strapi
CommunicationMattermost, Rocket.Chat
Password ManagementVaultwarden
Automationn8n, Activepieces
Document ManagementPaperless-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:

  1. Go to Servers → Add Server.
  2. Enter the remote server’s IP address and SSH port.
  3. Coolify will generate an SSH key pair — add the public key to the remote server’s authorized_keys.
  4. Validate the connection.
  5. 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:

  1. Add a swap file: sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile.
  2. 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:

  1. Verify your A record points to the correct IP: dig +short app.yourdomain.com.
  2. Check the Traefik/Caddy logs in Coolify for certificate errors.
  3. 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

FeatureCoolifyHerokuVercelDokkuCapRover
Self-Hosted
Web Dashboard❌ (CLI)
Auto SSL
Git Deploy
Database ProvisioningAdd-on ($)Plugin
Multi-Server
Service Catalog50+Add-onsPluginsOne-clicks
CostFree (self-hosted)$7+/dyno$20+/userFreeFree
Docker ComposeLimited

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.