//Servers

Deploy Coolify on a $10 VPS: GitHub Automation & SSL Setup

Set up Coolify on a $10 VPS: install Docker, link GitHub, and get free Let’s Encrypt SSL for automated CI/CD—all in a few commands.

5 min read
Deploy Coolify on a $10 VPS: GitHub Automation & SSL Setup

Deploying a modern CI/CD platform on a budget VPS is straightforward with Coolify. It handles GitHub webhooks, builds Docker images, and obtains free Let’s Encrypt certificates—all from a clean web interface. This guide shows how to install Coolify on a low‑cost VPS, link a GitHub repository, and secure the services with SSL.

1. Prerequisites and Server Setup

Make sure you have the following before you begin:

  • A VPS with at least 1 GB RAM and 1 vCPU (the typical $10 plan from AtoZNode satisfies this).
  • Root or sudo access.
  • A domain name whose A record points to the VPS IP.
  • A GitHub account with a repository you want to deploy.

Coolify runs on Docker, so Docker Engine and the Docker Compose plugin must be installed. Choose the block that matches your operating system.

Debian / Ubuntu (apt)

# Update the package index
sudo apt update

# Install prerequisite packages
sudo apt install -y ca-certificates curl gnupg lsb-release

# Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Set up the stable Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker Engine and the Compose plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Verify the installation
docker --version
docker compose version

AlmaLinux / Rocky Linux / RHEL (dnf)

# Install utilities required for the Docker repository
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

# Add Docker’s official repository
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Install Docker Engine and the Compose plugin
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Start Docker and enable it at boot
sudo systemctl start docker
sudo systemctl enable docker

# Verify the installation
docker --version
docker compose version

Both blocks install the Docker daemon and the docker compose plugin (the modern replacement for the legacy docker‑compose binary).

2. Installing Coolify

Coolify provides a one‑line installer that pulls the required Docker images and creates the containers. Run the command as root (or with sudo) on your VPS:

curl -fsSL https://get.coolify.io | bash

The script performs three actions:

  • Creates /opt/coolify to hold the files.
  • Downloads a docker-compose.yml that defines the coolify web UI and a postgres database.
  • Starts the stack with docker compose up -d.

Verify that the containers are running:

docker compose -f /opt/coolify/docker-compose.yml ps

You should see two services: coolify (the dashboard) and postgres (the database).

3. Accessing the Coolify Dashboard

Coolify listens on port 3000 by default. Open a browser and go to:

http://YOUR_VPS_IP:3000

The first visit prompts you to create an admin account. Choose a strong password and remember the email address you use for future password recovery.

4. Connecting a GitHub Repository

Follow these steps in the dashboard to enable automated deployments:

  1. Generate a Personal Access Token (PAT) on GitHub
    • Visit GitHub Settings → Developer settings → Personal access tokens.
    • Click “Generate new token (classic)”.
    • Name the token (e.g., “Coolify Deploy”).
    • Select the repo scope (full control of private repositories) and read:org if you work with organization repos.
    • Generate the token and copy it (you won’t see it again).
  2. Add the token to Coolify
    • In the UI, go to Settings → Git Providers → GitHub.
    • Paste the PAT and click “Connect”.
  3. Create a new Project
    • Click “New Project”, give it a name, and select the repository you just connected.
    • Choose the branch to auto‑deploy (typically main or master).
  4. Configure the Build
    • If the repository contains a Dockerfile, Coolify detects it automatically.
    • Otherwise, add a docker-compose.yml at the repository root; Coolify will use that.

Coolify registers a webhook on GitHub. Every push to the selected branch triggers a build, creates a new Docker image, and restarts the associated container.

5. Enabling Automatic SSL with Let’s Encrypt

Coolify can obtain and renew free SSL certificates for any domain that points to your VPS. Perform the following steps:

  1. Add a Domain to the Project
    • In the project view, click “Add Domain”.
    • Enter the fully qualified domain name (e.g., app.example.com).
    • Select “Let’s Encrypt” as the certificate provider.
  2. Verify DNS
    • Ensure an A record for app.example.com points to your VPS IP.
    • Propagation usually completes within minutes; you can confirm with dig or an online DNS checker.
  3. Activate SSL
    • Click “Enable SSL”. Coolify runs the certbot client inside a temporary container, proves domain ownership, and stores the certificate in its internal volume.
    • The UI displays the certificate status and the next renewal date (Let’s Encrypt renews automatically every 90 days).

Once SSL is active, Coolify redirects HTTP traffic to HTTPS, ensuring all requests are encrypted.

6. Managing Resources on a $10 VPS

A low‑cost VPS has limited memory, so keep resource usage in check:

  • Limit container memory: In the project settings, set a memory limit (e.g., 512m) for the application container.
  • Use lightweight base images: Alpine‑based images are only a few megabytes and reduce RAM pressure.
  • Enable swap (optional)
    # Create a 1 GB swap file
    sudo fallocate -l 1G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
    # Make the swap file persistent
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    

    Swap can prevent out‑of‑memory crashes during heavy builds, but monitor usage to avoid excessive disk I/O.

Coolify’s dashboard shows real‑time CPU and memory graphs for each container, helping you spot bottlenecks early.

Conclusion

With a few commands you can transform a modest $10 VPS into a full‑featured deployment platform. Coolify takes care of GitHub webhooks, Docker builds, and automatic Let’s Encrypt certificates, letting you focus on code. Follow the steps above to set up a secure, automated pipeline that stays within a tight budget.

coolifyci/cddockerletsencryptvpsubuntualmalinuxgithub

Try it on your own server

Follow along on a Cloud VPS with full root access, or read the step-by-step knowledge base guides.

Guides: VPS for WordPress · Node.js hosting · VPS or dedicated server · Paying by UPI