Retour aux articles

From VPS Chaos to Deployment Zen: My Coolify Love Story

From Docker jungle to homemade PaaS: how Coolify turned my hacked-together VPS into a production-worthy deployment platform, without sacrificing my hosting freedom

Level Sony
DevOps Self-Hosted Docker Coolify VPS Infrastructure Platform Engineering
From VPS Chaos to Deployment Zen: My Coolify Love Story
Table des matières

I’ve long used my VPS like many developers: a few manually launched Docker containers, a cobbled-together reverse proxy, scattered configuration files, and manual redeployments with each new version. It was this context, mixed with the desire to professionalize my deployments without falling into the complexity of Kubernetes, that led me to discover Coolify.

I had just integrated Cloudflare Tunnel into my workflow to properly expose services hosted at home or on a small server, without opening ports all over the place. This approach worked well, but also revealed all the limitations of my stack: each new app added to the VPS required reworking the reverse proxy configuration, managing SSL certificates, thinking about database backups, and keeping track of environment variables somewhere. After a few projects, the whole thing became fragile, difficult to document, and even harder to hand off to someone else.

Looking for a more structured solution, I wanted three very clear things:

  • Keep control of my infrastructure (no 100% managed PaaS, but self-hosted).
  • Not launch into a Kubernetes cluster just to host a few personal apps or side projects.
  • Have a smooth deployment experience, close to what platforms like Heroku or Render offer, but on my own VPS.

It’s precisely at the intersection of these needs that I encountered Coolify.


The Initial Need: Taming My VPS “Jungle”

My starting point was simple: my VPS increasingly resembled a jungle. Each microservice or personal project added another layer:

  • A new Docker container with its specific command.
  • A new entry in the reverse proxy configuration.
  • Sometimes a new database, manually installed and configured.
  • Environment variables stored in scattered .env files.

With Cloudflare Tunnel, I had already solved part of the networking problem (secure exposure, managed DNS, DDoS protection), but not the core of the application problem: how to standardize and make my deployments reliable? How to go from a hacked-together server to a coherent platform?

So I started looking for a solution that sits on top of Docker, capable of:

  • Automatically deploying from a Git repository.
  • Managing databases as infrastructure “resources”.
  • Offering a clear interface to supervise everything.

Coolify emerged as a natural answer to these expectations.


Discovering Coolify: A Self-Hosted “Mini-Heroku”

What struck me with Coolify is the idea of having a “mini-Heroku” directly on my VPS. A PaaS layer on top of Docker, with a web interface that centralizes everything:

  • Applications, services, databases.
  • Logs, consumed resources, container status.
  • Deployments and redeployments linked to Git pushes.

Rather than multiplying scripts and configurations, Coolify offered me a reasonable abstraction: I continue to use Docker, but I no longer think in terms of scattered docker run commands. I think in terms of application projects, each with:

  • Its source code or Docker image.
  • Its environment variables.
  • Its URL, its SSL certificate.
  • Its dependencies (database, worker, cron, etc.).

The tool doesn’t try to hide the technique, but to structure it.


Setup: From Raw VPS to Unified Platform

The first step was to install Coolify on my VPS, as one more service. Once the interface was accessible, the paradigm shift was immediate:

  • I start by registering my server in Coolify (in this case, the same VPS).
  • I declare my main domain, or a wildcard, which I point via DNS or Cloudflare Tunnel.
  • I can then create a new application in a few clicks: choose the source (Git or Docker image), specify the build command and port, configure environment variables.

What previously required several configuration files, a reverse proxy restart, and a few Docker commands, is now encapsulated in a single interface. With each push to the configured branch, Coolify automatically rebuilds and redeploys the application.

For databases, the comfort is similar:

  • Creating a database with one click.
  • Access to connection information directly from the app.
  • Centralized backup management.

Little by little, my VPS stopped being a “catch-all” server to become a true hosting platform, where each resource is declared, tracked, and observable.


Coolify and Cloudflare Tunnel: A Natural Duo

My familiarity with Cloudflare Tunnel made the introduction of Coolify even smoother. The two play at different but complementary levels:

  • Coolify organizes services inside the server, manages containers, internal routes, SSL certificates, databases, environment variables.
  • Cloudflare Tunnel handles routing traffic to the VPS, without opening ports, with all the protections and flexibility of Cloudflare.

Concretely, I can:

  • Expose the Coolify interface via a secure tunnel.
  • Expose some applications publicly, others only via specific access rules.
  • Keep a simple topology in Coolify (internal reverse proxy, automated certificates), while benefiting from Cloudflare’s advanced network features.

This decoupling gives me a clean architecture: my VPS becomes the application core, Cloudflare the “shield” and the controlled entry point.


What Coolify Changed in My Practice

In retrospect, Coolify is not just another tool in my toolbox, it has changed the way I think about deployments on a VPS.

  • I now think in terms of platforms, not just servers.
  • My side projects have deployments worthy of a professional environment: Git → build → automated deployment.
  • The management of secrets, databases, and resources is centralized, which reduces technical debt.
  • Picking up a project after several months no longer means “rediscovering” how it was deployed: everything is visible and documented in the interface.

For a curious software engineer, already familiar with Docker, a VPS, and Cloudflare Tunnel, Coolify represents a natural step: moving from controlled tinkering to a true self-managed hosting platform, while remaining in an understandable and transparent universe.

In short, it’s this need to organize an environment that had become complex, without giving up the freedom of self-hosting, that led me to discover and adopt Coolify. And it’s precisely there that this tool shines: transforming a simple server into a coherent, sustainable, and pleasant platform to use on a daily basis.

Commentaires