Coolify is a platform for self-hosting containerized applications from the comfort of your own homelab, or hosting provider. I self-hosted a number of applications over the years and usually dreaded the configuration of a new platform stack. In a classic hosting world I would have to create content switching load balanced services on the Netscaler (or other load balancer). Then I would have to contact the service provider to obtain SSL certificates (Geotrust, or such). Next I would spin up a new virtual machine for the platform (usually portainer/docker). Then finally would have to deploy and test the code via GIT. This was a lot of steps and leaves a lot of room for error. That is when I discovered Coolify.

Coolify is a self-hosted PaaS (Platform as a Service), that includes reverse proxy, load balancing, SSL certificates, dockerhub integration, S3 Storage option for backups, and the ability to have a pool of coolify hosts operating in a cluster for high availability. Installation of coolify is terribly easy, and done with a single command line.

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

You can install coolify on many different linux operating systems, although for my labs and testing I chose to use Ubuntu 24.04.3 LTS with a minimal install. Using a minimal install is recommended for server applications due to lack of need of a graphical user interface, and interactive utilities. In my homelab I size each of the coolify hosts as:

2 Virtual CPU’s / 16Gb Ram / 250Gb HDD

The number of containers will vary greatly depending on the resources required for each container/service to operate. Database containers such as memcached, and mongodb generally have higher RAM requirements. Upon finishing the installation of coolify you will presented with the URL’s to access the administrative interface. I will not cover all the in’s and out’s of how to operate coolify since there are already a number of great tutorials out there. I will however give you some tips to make your first time setup a bit more successful.

  1. Click on Servers and select localhost. On the right you will see a place to enter your wildcard domain. This should be populated with the root level domain name that the VM’s will be published under. for example if I use “https://theblindengineer.com” then when a service is created, it’s service name becomes the host portion of the FQDN. If I spin up a WordPress container named www then the autogenerated service URL would be “https://www.theblindengineer.com”.
  2. When you create a service Traefik will automatically generate a SSL certificate from Let’s Encrypt and apply to the inbound reverse proxy rule. In Coolify Traefik is known as the proxy and you can view/edit it’s rules and configurations under the server information screen on the proxy tab.
  3. Under Settings -> Configuration -> Domain you would enter the FQDN (https://coolify.theblindengineer.com) of the coolify administrative interface. The default is coolify for the host portion of the name, although you can enter anything here that meets the standard rules for naming URL’s.
  4. Settings -> Updates will allow you to configure the schedule for automatically updating the coolify server.

I hope this article provided some insights into the benefits and overall coolness of coolify.

#

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *