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
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).
# 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
# 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
[...]Step 5: Add a Managed Database
# 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.
# Express.js health endpoint example:
app.get('/health', (req, res) => {
res.status(200).json({ status: 'ok' });
});Step 8: Backup Coolify Data
# 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/coolifyand 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

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