Open Source·

Is Coolify Really That Cool?

I'been using coolify for a while now and...
DISCLAIMER: This blog reflects my personal experience and opinions. I'm not affiliated with Coolify, and the goal of this blog is to share my experience with the project.

Coolify is an open-source, self-hostable alternative to Heroku, Netlify, and Vercel. With 24k stars on GitHub, it’s one of the most popular tools in the self-hosting space.

Having used it for a while now, I wanted to share my honest take on Coolify.

Context: My Setup

To provide some background, I run Coolify on a 16GB RAM / 4-core Hetzner instance.

and it feels like this setup is closer to the minimum for hosting with Coolify.

According to their documentation, the requirements are:

  • 2 Core CPU
  • 2 GB RAM
  • 30+ GB of storage for Docker images

I primarily use Coolify to host my RapidAPI APIs and landing pages (that are built with Nuxt and Express.js), including this website.


First Impressions

Coolify feels like a tool tailored for developers with DevOps experience.

It offers many of features like server configurations, Docker management, Cron jobs, and One-Click Deploys...

However, this might not be ideal for developers unfamiliar with DevOps.

Advanced Mode vs. Simplicity

The flexibility Coolify offers is GREAT, but I think there’s room for improvement in making it more beginner-friendly.

For instance, enabling an “Advanced Mode” could allow developers to access these customizations while offering a simplified experience for others.

Missing Features: Metrics Dashboard

A feature I found missing was the absence of a metrics dashboard.

For example, there’s no straightforward way to see:

  • CPU and RAM usage per app
  • Number of requests served by each app

Yes, I know that you can enable Coolify Sentinel, which is an experimental feature that provides some metrics, but the UI doesn't centralize all the data.

This became a problem when my Coolify instance suddenly started using 100% of the server resources.

To debug, I had to rely on my own Docker knowledge using this command:

docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

I eventually discovered (after searching through GitHub issues) that the internal container coolify-proxy was the source of the issue.

Restarting the instance resolved the issue.

While this workaround worked, a built-in dashboard would’ve saved me a lot of time.

Documentation Gaps

Another pain point was figuring out where to host the service-account.json file properly for one of my apps.

After some trial and error, I even DMed the creator of Coolify, who confirmed this was missing from the documentation.

The solution was to create new storage volume and paste the content of the service-account.json file there.

I think this is a great example of how documentation gaps can be a hindrance to adoption.

Final Thoughts

Despite these challenges, I’m still happy using Coolify to host my website and APIs.

However, I would strongly recommend having DevOps experience if you plan to use Coolify for production environments, especially for client-facing projects.

In summary:

  • Pros: Open-source, self-hostable, highly customizable.
  • Cons: Steep learning curve, lacks a metrics dashboard, occasional documentation gaps. Coolify has a lot of potential but could benefit from additional features and improvements to usability.

Copyright © 2024. All rights reserved.