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:

  1. Installing Coolify on a VPS
  2. Connecting your Git provider
  3. Deploying your first application
  4. Setting up a database

Prerequisites:


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:

  1. Install Docker (if not present)
  2. Set up Coolify in a Docker container
  3. Configure a systemd service for auto-start
  4. 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:

  1. Go to ServersAdd Server
  2. Select Local or enter 127.0.0.1
  3. Give it a name (e.g., “production-vps”)
  4. 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:

  1. Go to SourcesAdd Source
  2. Select GitHub
  3. Click Connect with GitHub
  4. 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

  1. Go to ApplicationsCreate New
  2. Select your GitHub source
  3. Choose the repository you want to deploy
  4. 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.

  1. Expand the Domain section
  2. Enter your domain (e.g., app.yourdomain.com)
  3. 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:

  1. Clone your repository
  2. Build the Docker image
  3. Start the container
  4. Configure the reverse proxy
  5. 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:

  1. Go to DatabasesCreate New
  2. Select PostgreSQL
  3. Choose a name (e.g., myapp-db)
  4. Set the password (use a strong, generated password)
  5. Choose the server (your VPS)
  6. 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:

  1. Go to your application Settings
  2. Find Deploy Hook
  3. Copy the webhook URL
  4. In GitHub: go to SettingsWebhooksAdd webhook
  5. 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

Tired of managing servers?

This site helps you find the right FOSS hosting solution. If you'd rather have experts handle the infrastructure, OpsHelp offers fully managed hosting that supports open source.