Coolify is an open-source, self-hostable platform that serves as an alternative to services like Heroku, Netlify, and Vercel. It lets developers deploy and manage applications, databases, and services on their own infrastructure, providing greater control and flexibility.
If you want to use Coolify, you have two options. You can purchase their cloud plan, which costs you money. On the other hand, you can self-host it for free and have unlimited usage without any limitations.
In this article, I will show you how to self-host Coolify directly in an AWS EC2 instance and use its features. I will also show you how to deploy any website directly into it.
This article includes a step-by-step video walkthrough that I made for you. You can watch the video on my YouTube channel.
Table of Contents
Requirements For Self-Hosting Coolify
Since we’re going to self-host Coolify in the cloud for this article, you’ll need to make sure that you have at least the minimum specification of the server. According to Coolify, currently, the minimum requirements are given below:
Server Requirements
-
A VPS (Virtual Private Server)
-
A Dedicated Server
-
A Virtual Machine (VM)
-
A Raspberry Pi (see our Raspberry Pi OS Setup Guide)
-
Or any other server with SSH access
Supported Operating System
-
Debian-based (for example, Debian, Ubuntu)
-
Redhat-based (for example, CentOS, Fedora, Redhat, AlmaLinux, Rocky, Asahi)
-
SUSE-based (for example, SLES, SUSE, openSUSE)
-
Arch Linux
-
Alpine Linux
-
Raspberry Pi OS 64-bit (Raspbian)
Supported Architectures
Coolify runs on 64-bit systems:
-
AMD64
-
ARM64
Minimum Hardware Requirements
-
CPU: 2 cores
-
Memory (RAM): 2 GB
-
Storage: 30 GB of free space
Coolify may function properly on servers with lower specs than those mentioned above, but they recommend slightly higher minimum requirements. This ensures that users have sufficient resources to deploy multiple applications without performance issues.
I recommend that you check the official documents, as there might be an update regarding the specifications, and you do not want to miss that part!
I am going to use AWS EC2 as my server for this guide.
Set Up an AWS EC2 Instance for Coolify
Create a new EC2 instance in AWS.
Give it any suitable name you want. I am going with coolify-yt
for the purpose of this article.
For the Amazon Machine Image (AMI), I will use the latest LTS of Ubuntu (Ubuntu Server 24.04 LTS).
The architecture will be 64-bit (x86).
For the instance type, I can’t go with the free tier because that wouldn’t meet the minimum specification. So I’m going with the t2.medium
.
I will create a new key pair for key pair. I will go with RSA, and the file format will be .pem
.
When you click on Create key pair
, it will download a .pem
file. Make sure to keep that safely.
For the storage, I am taking a 50 GB block storage. But you can follow Coolify’s minimum specification storage (30GB) for now if you want.
If I want to use my Coolify from anywhere, I have to check the three boxes in the Network settings.
-
Allow SSH traffic from (Anywhere)
-
Allow HTTPS traffic from the internet
-
Allow HTTP traffic from the internet
Now, simply click on “Launch instance.” It will create our new EC2 server. It might take a few seconds to half a minute. So just be patient and wait for it to finish its task.
Security Group of AWS EC2
Go to the instance tab and find the name of your newly created EC2 instance. Then, find its security group name.
I have the security group name for my newly created EC2 as “launch-wizard-7”.
Now, go to the security group tab and find out which security group is associated with your newly created EC2.
As my EC2’s security group name was “launch-wizard-7”, I will click on that security group ID.
It will take me to its configuration page. Now, click on “Edit inbound rules”.
Add a new rule. The type will be “Custom TCP”. The port will be “8000”. The source will be “Anywhere-IPv4”.
Now save the rules.
Now, go to the EC2 page and make sure that the newly created EC2 is running.
If you want to connect to the EC2 server from your local machine, you have to use the .pem
key. For that, you have to go to the “SSH Client” tab in the connect settings.
For now, I am not going to go through that much hassle, so I’ll use the browser to connect to my server using the “Connect” button.
Make sure to note the Public IPv4 address of the EC2. Now click on “Connect”.
It will open a new tab with the EC2 connection in your browser.
It will be ready to use within a few seconds.
Install Coolify in AWS EC2
There are many ways to install Coolify directly on our EC2. But I usually follow the recommended installation script of Coolify.
curl -fsSL
https://cdn.coollabs.io/coolify/install.sh
| sudo bash
Use sudo zsh
instead of sudo bash
if you are running the command from a “ZSH” terminal.
It will start installing Coolify into your server. Follow their prompts in the EC2 terminal.
Depending on your EC2 specification, it might take several minutes. Be patient and let it do its job until it reaches the “Congratulations!” screen.
Access Coolify from Anywhere Using the Public IP
After the installation, open a new tab and use that public IP with an ending :8000
port. It will take you to the Coolify account registration page for the first time.
Register your account. The first one becomes the admin by default. But you can change the role afterwards anytime you want.
You can follow their instructions during the onboarding. But for now, I am simply skipping it.
Your coolify is now completely ready to go!
How to Deploy a Website Via Coolify
Now, I want to show you how you can easily deploy a static website directly from your GitHub repository in Coolify.
Go to ”Project” and click on “+Add”.
Give it a name and a suitable description.
I will use one of my public repositories from GitHub for this trial.
You can also deploy from private repositories. To do so, select “Private repository with GitHub App” or “With deploy key”.
Now, click on Production.
Now, we need to add a resource from which it will pull the data.
As this repository is already public, I will select “Public Repository” as my project source.
Now, provide the public repo URL in the Repository URL field. Then click on “Check repository”.
It will show you the project’s basic configuration. Check to ensure that everything is correct.
If everything is alright, then click on “Continue”.
As this is just a static website, I will change the build pack to “Static” and click on “Continue.”
Now, deploy the application by clicking on the “Deploy” button.
You can enable/disable the debug log as well.
After the deployment is finished successfully, you can find the website’s autogenerated URL from the Links tab.
The site will appear just fine!
You can also auto-generate a new domain or add your own domain/subdomain from the project settings at any time.
The project settings will contain all other necessary configuration/environment variables, and so on. Whenever you change any information/settings/configuration in the configuration section, you just need to redeploy the application to reflect the changes.
You can add new team members, change the Coolify domain to something else (your domain/subdomain) and make it a generic, publicly accessible server.
So, this is the generic procedure to install Coolify in an AWS EC2 instance without any hassle.
Conclusion
Thanks for reading this short tutorial. I hope it helped you install Coolify on your favourite server and increase your productivity.
To get more content like this, you can follow me on GitHub, LinkedIn, and YouTube. My website is always available, too.
Source: freeCodeCamp Programming Tutorials: Python, JavaScript, Git & MoreÂ