Overview
Coolify is an open source, self-hostable deployment platform that automates the entire process of going from code to running application. It handles Git integration, Docker containerization, TLS certificates, and database provisioning — with a Heroku-like experience but on your own infrastructure.
This guide walks you through:
- Installing Coolify on a VPS
- Connecting your Git provider
- Deploying your first application
- Setting up a database
Prerequisites:
- A VPS with at least 2 GB RAM (Hetzner CX11 or Netcup RS 1000 works well)
- A domain name (optional but recommended)
- Ubuntu 22.04 LTS (recommended)
Step 1: Install Coolify
Coolify provides a one-line installer. SSH into your VPS and run:
curl -fsSL https://get.coolify.io | bash
The installer will:
- Install Docker (if not present)
- Set up Coolify in a Docker container
- Configure a systemd service for auto-start
- Print the initial admin password and URL
Save the output — you’ll need the URL and password to access the dashboard.
Coolify v4.0.0 installed successfully.
Dashboard: https://<your-server-ip>:3000
Password: <randomly-generated-password>
Access the dashboard via https://<your-server-ip>:3000 and log in with the generated password. Change the password immediately.
Step 2: Add Your Server
After logging in, Coolify will prompt you to add a server. Since you installed Coolify on the same server you want to deploy to, add localhost or 127.0.0.1:
- Go to Servers → Add Server
- Select Local or enter
127.0.0.1 - Give it a name (e.g., “production-vps”)
- Click Save
Coolify will verify the connection and configure SSH access.
Step 3: Connect Your Git Provider
Coolify integrates with GitHub, GitLab, and Gitea. Let’s connect GitHub:
- Go to Sources → Add Source
- Select GitHub
- Click Connect with GitHub
- Authorize the Coolify GitHub App access to your repositories
You can choose to grant access to all repositories or select specific ones. For a production setup, it’s safer to grant access only to specific repositories.
Step 4: Deploy Your First Application
For this guide, let’s deploy a simple Node.js application.
Create the Application
- Go to Applications → Create New
- Select your GitHub source
- Choose the repository you want to deploy
- Select the branch (usually
main)
Configure Build Settings
Coolify auto-detects many frameworks. For a Node.js app, you’ll typically see:
Build Pack: Nixpacks (auto-detected)
Build Command: npm run build
Start Command: npm start
Port: 3000
Verify these settings are correct for your application. Coolify will show warnings if they look wrong.
Configure Environment
Add any required environment variables:
DATABASE_URL=postgres://user:password@host:5432/mydb
NODE_ENV=production
For production, use Coolify’s secret management — click Encrypt next to sensitive values so they’re not stored in plain text.
Configure Domain (Optional but Recommended)
- Expand the Domain section
- Enter your domain (e.g.,
app.yourdomain.com) - Toggle HTTPS — Coolify will automatically provision a Let’s Encrypt certificate
You’ll need to create a DNS A record pointing app.yourdomain.com to your server’s IP before Coolify can verify the domain.
Deploy
Click Deploy. Coolify will:
- Clone your repository
- Build the Docker image
- Start the container
- Configure the reverse proxy
- Issue the TLS certificate
Watch the build logs in real time. Most builds take 30-120 seconds depending on your server and application size.
Once complete, you’ll see a green “Running” status and a clickable URL.
Step 5: Add a Database
Coolify includes one-click database provisioning. Let’s add PostgreSQL:
- Go to Databases → Create New
- Select PostgreSQL
- Choose a name (e.g.,
myapp-db) - Set the password (use a strong, generated password)
- Choose the server (your VPS)
- Click Create
Coolify will provision a persistent PostgreSQL container with automatic backups (if configured).
Once ready, you’ll see the connection string:
postgres://postgres:<password>@<server-ip>:5432/myapp-db
Add this to your application’s environment variables as DATABASE_URL.
Step 6: Set Up Automatic Deploys
By default, Coolify deploys manually. To enable automatic deploys on push:
- Go to your application Settings
- Find Deploy Hook
- Copy the webhook URL
- In GitHub: go to Settings → Webhooks → Add webhook
- Paste the URL, set content type to
application/json, and select push events
Now every push to your selected branch will trigger an automatic deployment.
Next Steps
- Configure backups — Coolify supports automated backups for databases and volumes
- Set up monitoring — Connect Grafana/Prometheus for resource monitoring
- Explore one-click apps — Coolify has templates for WordPress, Ghost, Matomo, Plausible, and 50+ more
- Read the docs — docs.coolify.io has detailed references