Coolify
Self-hosted PaaS — push to Git and it builds, deploys, and manages your apps with automatic SSL and one-click databases.
Coolify is an open-source platform that gives you Vercel/Heroku-style deployments on your own server. Push code to Git, it builds and deploys automatically — with free SSL, one-click databases, preview environments, and hundreds of service templates.
What you get
- Git-push auto-deploy from GitHub, GitLab, Gitea, or Bitbucket
- Built-in reverse proxy with automatic Let's Encrypt SSL
- One-click databases: PostgreSQL, MySQL, Redis, MongoDB, ClickHouse
- Docker Compose services and pre-built templates
- Preview environments per branch
- Team/project organization with role-based access
- Scheduled database backups to S3/R2
Requirements
| Resource | Minimum | Included on App Platform plan |
|---|---|---|
| RAM | 2 GB (Coolify itself) + app resources | 4 GB (Plus: 8 GB) |
| Storage | 30 GB (Docker images grow fast) | 30 GB (Plus: 60 GB) |
| CPU | 2 cores | Shared |
Install
Deploy from the installer
Control panel → App installer → Coolify. Assign a domain (e.g.
deploy.yourdomain.com). Installation takes 2–3 minutes.Create admin account
Visit
https://deploy.yourdomain.com. Create the root admin account on first visit — this locks admin access.Add your server
Coolify auto-detects the local server. Go to Servers and verify it shows as connected with a green status.
Connect Git
Settings → Sources → Add. Connect GitHub (via GitHub App), GitLab, Gitea, or Bitbucket with deploy keys or OAuth.
Deploying your first app
Create a project
Projects → Create project → Create environment (e.g. "production"). This groups your services logically.
Add a resource
Inside the environment, click Add resource → Application. Select your Git source and repository.
Configure build
Coolify auto-detects the build system (Nixpacks, Dockerfile, Docker Compose, or static). Override if needed:
Build pack Best for Nixpacks Most Node.js, Python, Go, Rust, PHP apps Dockerfile Custom Docker builds Docker Compose Multi-service stacks Static Pre-built HTML/CSS/JS Set domain and deploy
Assign a domain under Settings → Domains. Click Deploy. Coolify builds, deploys, and issues SSL automatically.
One-click databases
Add databases directly from the environment:
- PostgreSQL — production-ready with connection pooling
- MySQL/MariaDB — for PHP/WordPress backends
- Redis — caching and sessions
- MongoDB — document store
- ClickHouse — analytics and time-series
Each database gets connection credentials in its Settings tab. Link them to your apps via environment variables.
Environment variables and secrets
Per application:
- Go to Application → Environment variables
- Add key-value pairs (marked "Secret" hides the value)
- Changes trigger a redeploy automatically (configurable)
Preview environments
Enable per-branch preview deploys:
- Application → Settings → Preview deployments → On
- Each PR/branch gets its own subdomain (e.g.
pr-42.deploy.yourdomain.com) - Merge or close → preview auto-destroys
Database backups
- Select your database → Backups → Schedule
- Set frequency (daily, hourly) and destination (local or S3/R2)
- Retain N most recent snapshots
Troubleshooting
| Issue | Fix |
|---|---|
| Build fails | Check build logs; verify correct build pack; ensure Dockerfile or nixpacks requirements are met |
| 502 Bad Gateway | App is crashing — check runtime logs; verify exposed port matches proxy config |
| SSL not issuing | Open ports 80 + 443 on firewall; verify A record points to server; temporarily disable Cloudflare proxy |
| Slow deploys | Low RAM — each build needs headroom; upgrade plan or reduce concurrent builds |
| Can't connect to database | Use the internal hostname (not localhost); check environment variable format |
Resource management
Monitor resource usage under Servers → Resources:
- CPU and Memory per container
- Disk usage for images and volumes
- Stop/restart individual services without affecting others