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
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.
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).
Add the token to Coolify
In the UI, go to Settings → Git Providers → GitHub.
Paste the PAT and click “Connect”.
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).
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:
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.
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.
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.