Coolify: Self-Hosted PaaS for Docker Deployments on Linux
Platform

Coolify: Self-Hosted PaaS for Docker Deployments on Linux

  • Author :Liam K.
  • Date :July 03, 2026
  • Time :25 minutes

Coolify is an open-source, self-hostable alternative to Heroku, Vercel, and Railway. It turns any Linux server into a Platform-as-a-Service: connect a Git repository, push code, and Coolify builds a Docker image, deploys it, provisions SSL certificates, and manages environment variables — all through a clean web UI. No Kubernetes required.

For agencies, startups, and homelab operators who want managed deployments without cloud vendor bills, Coolify bridges the gap between manual Docker Compose and full Kubernetes. This guide installs Coolify on a fresh Linux server, deploys a sample Node.js application from GitHub, and covers production practices for backups, updates, and security.

What Coolify Manages

  • Applications — Git-backed builds from Dockerfile or Nixpacks auto-detection
  • Databases — PostgreSQL, MySQL, MariaDB, MongoDB, Redis with one click
  • Services — 200+ one-click templates (Plausible, Uptime Kuma, Vaultwarden, etc.)
  • SSL — automatic Let's Encrypt for every deployed service
  • Networking — Traefik-based reverse proxy with custom domains

Prerequisites

  • Fresh Ubuntu 22.04+ or Debian 12 server (4 CPU, 8 GB RAM minimum)
  • Root or sudo access — Coolify installs Docker automatically
  • Domain with wildcard DNS or per-service A records
  • GitHub/GitLab account for repository connections

Step 1: Install Coolify

bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

# Installation takes 2–5 minutes. Access the UI:
# http://YOUR_SERVER_IP:8000

# Follow the setup wizard to create your admin account.

Step 2: Configure Server and Domain

In the Coolify dashboard, go to Settings → Configuration. Set your instance domain (e.g. coolify.example.com) and configure the wildcard domain for deployed services (e.g. *.apps.example.com).

bash
# DNS records needed:
# A  coolify.example.com  → server IP
# A  *.apps.example.com   → server IP (wildcard for deployed apps)

Step 3: Connect GitHub

Go to Sources → Add GitHub. Authorize the Coolify GitHub App for your organization or personal account. Coolify uses webhooks to trigger automatic redeployments on every push to the configured branch.

Step 4: Deploy an Application from Git

bash
# In Coolify UI:
# 1. Projects → New Project → New Resource → Application
# 2. Select your GitHub repository
# 3. Branch: main
# 4. Build pack: Nixpacks (auto-detect) or Dockerfile
# 5. Domain: myapp.apps.example.com
# 6. Set environment variables (DATABASE_URL, NODE_ENV, etc.)
# 7. Deploy
[...]
Command truncated. Copy to view full command.

Step 5: Add a Managed Database

bash
# In Coolify UI:
# Projects → New Resource → Database → PostgreSQL
# Set name, version, and credentials
# Coolify provides internal connection string:
# postgres://user:pass@coolify-postgres-xxx:5432/dbname

# Add DATABASE_URL to your application's environment variables.

Step 6: Environment Variables and Secrets

Store secrets in Coolify's environment variable panel, not in your repository. Mark sensitive values as "secret" to hide them in the UI. Coolify injects them at container runtime.

  • Use separate environments (production, staging) as separate Coolify resources.
  • Reference shared variables at the project level to avoid duplication.
  • Rotate database passwords through Coolify's database management panel.

Step 7: Zero-Downtime Deployments

Coolify uses rolling deployments by default. The new container starts and passes health checks before the old one is stopped. Configure a health check path in your application settings (e.g. /health) for reliable cutover.

javascript
# Express.js health endpoint example:
app.get('/health', (req, res) => {
  res.status(200).json({ status: 'ok' });
});

Step 8: Backup Coolify Data

bash
# Coolify stores state in /data/coolify
sudo tar czf /backup/coolify-$(date +%F).tar.gz /data/coolify

# Also back up managed database volumes:
sudo docker volume ls | grep coolify
# Back up each volume with docker run --rm -v VOLUME:/data ...

Coolify vs Alternatives

  • Coolify — easiest PaaS experience, great for small teams and agencies.
  • Dokku — CLI-first, Git-push deploys, lighter but less UI polish.
  • CapRover — similar to Coolify, Swarm-based, mature but less active development.
  • Kubernetes — maximum flexibility, high operational complexity.

Production Checklist

  • Keep Coolify updated — check releases monthly.
  • Back up /data/coolify and database volumes daily.
  • Restrict Coolify dashboard access via VPN or Authelia.
  • Monitor disk usage — Docker images and build caches grow fast.
  • Use health checks on every deployed application.

"Self-hosted PaaS shines when deploys are boring — Git push, automatic SSL, health-checked rollouts, and backups you have actually tested."

Technical Author

Technical Author - Liam K.
Liam K.

System administrator and technical writer specializing in server infrastructure, security and deployment. Creating comprehensive guides to help you master server administration.