Muchos buscamos un servicio que nos permita tener todo lo necesario para desplegar cualquiera de las aplicaciones de nuestro Homelab.
Si además venimos de usar algunos VPS o proveedores de servicios como Vercel, Netlify, Heroku... Coolify nos va a venir muy bien, ya que se trata de un PaaS o Product as a Service, pero que podemos auto hostear en nuestro homelab de forma gratuita, y que encima es de código abierto.
Nos permite desplegar aplicaciones, bases de datos y servicios basándonos en un repositorio Git, también permitiéndonos lanzar nuestros propios Docker Compose si lo quisiéramos.
Si todo eso se te hiciera complicado, siempre puedes recurrir al inmenso listado de aplicaciones ya preparadas que proporcionan, de forma que con unos pocos clics tendrías tu servicio activo.
Y lo mejor de todo es que, si nuestro propósito es publica estas aplicaciones, Coolify lo pone muy sencillo gracias al proxy inverso integrado (Traefik) que nos gestiona de forma automática las redirecciones y los certificados SSL de manera gratuita.
Requisitos
Para seguir con este post, necesitarás lo siguiente:
- Un servidor o VPS con al menos:
- 2 núcleos.
- 2 GB de RAM, recomendable 4GB.
- Una distribución Linux instalada en dicho servidor (P.ej. Ubuntu).
- Una IP estática o dominio con DNS apuntando a tu servidor: Esto es lo ideal si quieres publicar los servicios, ya que Coolify mediante su proxy inverso lo gestiona automáticamente.
Instalar Coolify
Es un proceso bastante simple, ya que sólo necesitaremos ejecutar el script de instalación oficial que nos proveen. Nos conectamos a nuestro servidor y ejecutamos:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Solo tendremos que esperar a que finalice todo el proceso, ya que el propio script irá instalando las dependencias necesarias en función de tu distribución.

Cuando haya terminado, accederemos a la IP de nuestro servidor en el puerto 8000: http://<IP_SERVER>:8000
Configuración inicial
Cuando hayamos accedido a la interfaz web, veremos que nos pedirá crear nuestro usuario de administración, mostrando el siguiente formulario, que deberemos rellenar:

Tras darle a Create Account, lo siguiente que nos aparecerá es esta pantalla:

Tan solo deberemos darle a Let's go! para comenzar la configuración inicial de nuestra instancia de Coolify.

En este apartado se nos pregunta qué tipo de servidor tenemos, en nuestro caso deberemos seleccionar This Machine, pero como podemos apreciar se nos ofrecen diversas opciones, pudiendo controlar un servidor remoto o incluso una VPS.
Hacemos click en el que corresponda para ir a la siguiente pantalla.

Finalmente nos da la opción de crear nuestro primer proyecto. Seleccionamos Create "My First Project para continuar.

Y esta sería la última de las pantallas de la configuración inicial. Podemos ir directamente al dashboard, o hacer click en Deploy Your First Resource y elegir qué aplicacion queremos lanzar.

Desplegando servicios
Coolify, como ya hemos mencionado anteriormente, nos proporciona diversas formas de desplegar nuestras aplicaciones, así que en este punto revisaremos las tres maneras y sus detalles.
Desde repositorio GIT
Deberemos conectar o seleccionar un repositorio GIT, y Coolify se encargará de detectar automáticamente si se trata de una aplicación NOde, Python, PHP, etc. Tras esto generará el Dockerfile si no existe previamente.
Usaremos una de las aplicaciones de ejemplo que proporcionan, en este caso con NodeJS: https://github.com/coollabsio/coolify-examples/tree/v4.x/nodejs
Le daremos click a Public Repository en el listado:

Nos pedirá que introduzcamos el link del repositorio:

Lo ponemos y le damos al botón de Check repository que nos aparece a la derecha. Aquí nos mostrará la configuración que ha detectado como necesaria para el despliegue, y donde podrás revisar si está todo OK antes de darle a Continue.

De ahí nos llevará al formulario de configuración general de un nuevo recurso. En este caso no necesitamos comprobar nada más que el mapeo de puertos para agregar el 3000:3000, y ponerle un nombre y descripción si así deseamos.

Tras eso, le daríamos a Deploy en la parte superior derecha, y una serie de logs nos aparecerán, indicándonos el proceso:

Ahora si accedemos a la IP de nuestro servidor de Coolify en el puerto 3000 veremos que nos da un simple Hello World de la aplicación NodeJS desplegada:

Con Docker Compose
Aquí actúa como cualquier otro gestor de Docker, permitiendo especificar un fichero docker-compose.yml donde describiremos el stack que queremos desplegar.
Para esto tan solo nos tendremos que ir al apartado de Projects en el menú izquierdo, seleccionar nuestro proyecto, y darle a New Resource. Esto nos llevará al listado principal de opciones. Aquí en el primer bloque, contamos con la de Docker Compose Empty.

Si accedemos, podemos usar como ejemplo la herramienta de IT Tools:
services:
it-tools:
image: 'corentinth/it-tools:latest'
ports:
- '8080:80'
restart: unless-stopped
container_name: it-tools
Quedando de la siguiente forma en el editor web del docker-compose.yml:

Lo guardamos dándole a Save, y nos llevará al formulario de configuración general de un nuevo servicio. No tendremos que hacer nada más que asignarle un nombre y una descripción, que son identificativos usados por Coolify que no tienen que ver con el nombre de contenedor.

Ahora con esto, tan solo queda desplegarlo, haciendo clic en el botón de Deploy en la esquina superior derecha.
Cuando lo hagamos, nos saldrán una serie de logs de cómo se ha ejecutado, y podremos ver cómo se lanza correctamente.

Los podemos cerrar, y si ahora accedemos a la IP de nuestro servidor de Coolify al puerto que hemos configurado, veremos como aparece la página de IT Tools.

Su listado de aplicaciones
Esta es la gran ventaja de Coolify: Nos proporciona una gran cantidad de servicios y aplicaciones listas para funcionar. Sólo hay que hacer unas pocas configuraciones previas, pero lo tendríamos funcionando.
Retomamos el ejemplo de IT Tools, lo buscamos y lo seleccionamos.

Nos saldrá una pestaña con un formulario, del cual podremos elegir el nombre y descripción, aunque no es necesario modificarlo para su funcionamiento.

Lo que sí que haremos es que, si queremos que IT Tools sea accesible intermanete desde nuestra red privada sin necesidad de pasar por un Proxy, deberemos editar el Docker Compose, para ello, clicamos en el botón de Edit Compose File encima el nombre del servicio:

Y en este punto lo editamos para dejarlo como muestro, indicando el parámetro de puertos para que estos sean accesibles por el anfitrión. Con esto, le damos a Save, y nos llevará de nuevo al formulario de configuración.

Aquí le damos a Deploy en la esquina superior derecha, y veremos, como en pasos anteriores, los logs de despliegue del contenedor:

Los podemos cerrar sin problemas. Ahora si accedemos a la IP de nuestro servidor de Coolify en el puerto que hayamos configurado, veremos que se nos muestra la página de IT Tools sin problema:

Eliminar un servicio
Ahora que hemos visto las diferentes maneras de crear un servicio, veremos cómo eliminarlos. Para ello deberemos ir a nuestros proyectos, acceder al que contenga el servicio deseado, y seleccionarlo. Veremos de nuevo el formulario de configuración:

En este punto, deberemos ir a la sección de Danger Zone en el menú izquierdo. Es aquí donde se nos da la opción de eliminar un recurso:

Tan solo tenemos que darle a Delete, y nos aparecerá una ventana de aviso:

Le damos a Continue y nos pedirá confirmación, al estilo de AWS y otros proveedores, donde nos solicita que introduzcamos el nombre del servicio para corroborar nuestra decisión:

Hacemos clic sobre Continue y como último paso, nos solicitará la contraseña del usuario al tratarse de una operación irreversible:

Ahora sí, dándole a Confirm el recurso se eliminará finalmente.
Conclusión
Coolify es un software que da para mucho. Es realmente completo y cumple con prácticamente todo lo necesario para un gestor de aplicaciones contenerizadas. Esto lo convierte en una de las mejores opciones para tener en un Homelab.
Podemos asignar permisos y roles, revisar logs o centralizarlos, publicar aplicaciones con pocos clics, gestionar sus actualizaciones y backups, prácticamente todo.
Y con esta guía ahora podemos contar con Coolify en el repertorio de servicios casi indispensables a probar en nuestro Homelab.
Otras caracterísitcas
Coolify es un servicio muy completo, nos aporta multitud de herramientas que son difíciles de cubrir en un único post o vídeo, es por eso que, probablemente más adelante, publique de nuevo sobre él, dando más herramientas y ejemplos.