# Guía coolify

Coolify te permite desplegar y gestionar fácilmente **aplicaciones modernas, contenedores Docker, bases de datos, sitios estáticos, etc.**, todo con interfaz web y SSL automático.

Ventajas:

* **Automatización de tareas:** Ya no necesita administrar sus servidores. Coolify sí por ti.
* **Sin bloqueo de proveedor:** Todas las configuraciones se almacenan en sus servidores, por lo que todo funciona sin conexión a Coolify (excepto integraciones y automatizaciones).
* **Monitorización**: Puedes recibir notificaciones en tus plataformas favoritas (Discord, Telegram, correo electrónico, etc.) cuando algo sale mal o se necesita una acción de su parte.

### **Requisitos previos**

Para esta práctica trabajaremos con:

* **Sistema operativo:** Ubuntu Server 22.04 LTS (o Debian 12).
* **CPU:** 2 núcleos o más.
* **RAM:** mínimo 2 GB (recomendado 4 GB+).
* **Almacenamiento:** 30 GB mínimo (más si alojarás bases de datos o contenedores pesados).
* **Acceso:** SSH como root o usuario con sudo.
* **Dominio:** opcional, pero recomendado (para HTTPS automático).

> ⚠️ *Coolify no se recomienda instalar en servidores con otros paneles (Plesk, cPanel, ISPConfig, etc.) por conflictos de puertos y Docker.*

Antes de nada, debemos asegurarnos que tenemos algun software instalado y actualizado el sistema:

```bash
sudo apt update && apt upgrade -y
sudo apt install curl -y 
```

***

## **Instalación y configuración inicial**

Coolify ofrece un instalador automatizado. Instala curl, wget, git, jq y openssl así como openssh y docker (si no hay nada de esto instalado) así que para la instalación simplemente vamos a ejecutar lo siguiente como **root** o **sudo**:

```bash
sudo curl -fsSLO https://cdn.coollabs.io/coolify/install.sh
sudo bash install.sh
```

👉 Esto descargará los contenedores de Coolify y levantará el servicio con Docker Compose, ten en cuenta que puede tardar un largo rato, ten paciencia, el *developer* te deja algún chiste para que te entretengas, búscalo :wink:

#### **Configuración inicial**

Toca configurarlo, una vez termine la instalación, verás un mensaje tal que así:

```
Your instance is ready to use!

You can access Coolify through your Public IPV4: http://<IP>:8000  

If your Public IP is not accessible, you can use the following Private IPs: 

http://10.0.0.5:8000
http://10.0.1.1:8000
http://10.0.2.1:8000
http://<IPv6>:8000

WARNING: It is highly recommended to backup your Environment variables file 
(/data/coolify/source/.env) to a safe location, outside of this server (e.g. into a Password Manager).
```

Abre el navegador y accede a:

```
http://<IP_de_tu_servidor>:8000
```

o, si ya configuraste un dominio:

```
https://tusubdominio.midominio.com
```

> Si usas un dominio, asegúrate de apuntarlo a la IP de tu servidor antes del primer inicio.\
> Coolify generará certificados SSL automáticamente con **Let’s Encrypt**.

Deberías encontrarte una pantalla:

<figure><img src="/files/TmX5bkWH60othdu2IDDK" alt=""><figcaption></figcaption></figure>

#### **Primer acceso y cuenta de administrador**

Ahora toca, en el primer inicio, crear un **usuario administrador**:

* Email
* Contraseña
* Nombre de la instancia (por ejemplo, "Mi Coolify")

Luego accederás al **panel principal de Coolify**

***

## Guia de uso

<div align="left"><figure><img src="/files/1CTvgWwHEw87rNFp3fRm" alt="" width="210"><figcaption></figcaption></figure></div>

Este es el menú de la app, vamos a ver como realizar algunas prácticas comunes como son:

1. Conectar un servidor
2. Desplegar una aplicación
3. Desplegar un contenedor
4. Conectar una BD

### **1. Conectar tu servidor (si tienes varios)**

Dependiendo de lo que le hayas marcado como opción durante la instalación, verás que coolify tendrá un servidor por defecto que será localhost o el servidor especificado pero Coolify puede gestionar múltiples servidores vía SSH.&#x20;

Ten en cuenta que cuando añades otro servidor en Coolify, lo que estás haciendo **no es solo registrarlo**, sino convertirlo en un **nodo remoto de despliegue p**or eso te pedirá validarlo e instalar Docker: Coolify necesita poder **controlar ese servidor automáticamente**. Una vez validado e instalado Docker, Coolify podrá:

* Desplegar aplicaciones directamente desde el panel.
* Gestionar redes y dominios.
* Actualizar contenedores automáticamente.
* Mostrarte métricas de recursos de ese servidor.
* Instalar certificados SSL con Traefik.

Para conectar otro es tan sencillo como:

1. En el panel, ve a **Servers → Add Server → Local / Remote**.
2. Si es el mismo donde está instalado, selecciona **Local**.\
   Si quieres conectar otro servidor (por ejemplo, otro VPS):
   * Añade su IP.
   * Carga su clave SSH o usa autenticación por clave pública.
3. Valida el servidor siguiendo los pasos que te pide.

Vamos a abrir otra máquina virtual dentro de la misma red y conectarla:

<div align="left"><figure><img src="/files/frTqvKG01XnpN6bGXHl0" alt="" width="563"><figcaption></figcaption></figure></div>

Esto nos dará la posibilidad de conectarnos en remoto y gestionarlo como un nodo más de coolify para desplegar apps.

{% hint style="info" %}
Para poder aplicarlo por root, deberas ir al archivo `/etc/ssh/ssh-config` y buscar la linea `PermitRootLogin yes`&#x20;
{% endhint %}

### **2. Desplegar una aplicación**

Coolify te permite desplegar apps desde repositorios **GitHub / GitLab / Bitbucket**, o manualmente con un Dockerfile o imagen de contenedor.

#### Opción 1: Desde un repositorio Git

1. Crea una nueva aplicación:\
   **Applications → + New → Git Repository**
2. Conecta tu cuenta GitHub (OAuth) o introduce la URL del repo.
3. Configura:
   * **Branch:** normalmente `main` o `master`.
   * **Build Pack:** Node.js, PHP, Python, Dockerfile, etc.
   * **Root Directory:** si tu código no está en la raíz.
   * **Port:** el puerto que tu aplicación expone.
4. Activa **Auto Deploy** (opcional).
5. Pulsa **Deploy** — y listo&#x20;

### 3. Desplegar contenedor o imagen de Docker

* Elige “Deploy from Docker Image”.
* Indica la imagen (por ejemplo, `nginx:latest` o `youruser/app:1.0`).
* Define variables de entorno si son necesarias.
* Asigna un dominio y Coolify se encargará del SSL.

#### 3.1. Despliegue de docker compose

Al crear una nueva app en el panel:

1. Pulsa **“New Application”**
2. Selecciona **“Docker Compose”**
3. Elige:
   * En qué servidor quieres desplegarla (puede ser remoto o local).
   * Nombre de la app.
4. Sube o pega el contenido de tu `docker-compose.yml`.
5. Guarda y despliega 🚀

👉 Coolify levantará automáticamente todos los servicios definidos en ese archivo y los gestionará como una sola aplicación.

#### Ejemplo simple

Supongamos que tienes este `docker-compose.yml` para un blog en Ghost:

```yaml
version: "3.8"

services:
  ghost:
    image: ghost:5
    restart: always
    ports:
      - "2368:2368"
    environment:
      url: https://blog.midominio.com
    volumes:
      - ghost-data:/var/lib/ghost/content

volumes:
  ghost-data:
```

Si lo pegas directamente en Coolify:

* Se desplegará Ghost en tu servidor remoto o local.
* Puedes ir a la sección “Domains” y asignar `blog.midominio.com`.
* Coolify se encarga de redirigir y aplicar HTTPS automáticamente. ✅

#### **Bases de datos**

Puedes crear bases de datos directamente desde el panel:

1. **Databases → + New Database**
2. Elige tipo:
   * PostgreSQL
   * MySQL / MariaDB
   * Redis
   * MongoDB
3. Coolify creará el contenedor automáticamente.
4. Puedes conectar tus aplicaciones a través de variables de entorno.

***

<details>

<summary>Comandos útiles</summary>

Algunos comandos que te pueden salvar la vida, recordatorio de Docker:

Ver estado de Coolify:

```bash
docker ps
```

Reiniciar Coolify:

```bash
docker compose -f /data/coolify/docker-compose.yml restart
```

Ver logs:

```bash
docker logs -f coolify
```

Actualizar Coolify a la última versión:

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

Detener Coolify:

```bash
docker compose -f /data/coolify/docker-compose.yml down
```

</details>

<details>

<summary>Tips de seguridad</summary>

Para coolify, se recomienda:

1. Activar el firewall:

   ```bash
   ufw allow 22,80,443,3000/tcp
   ufw enable
   ```
2. Desactivar el acceso SSH por contraseña (usa claves públicas).
3. Configurar backups regulares.
4. Usar HTTPS siempre (Coolify lo gestiona automáticamente) o puedes forzar la regeneración desde **Domain Settings → Renew SSL**..

</details>

{% hint style="warning" %}

### **Desinstalar Coolify (si fuera necesario)**

**Para dar de baja el servicio:**

```bash
docker compose -f /data/coolify/docker-compose.yml down -v
rm -rf /data/coolify
```

Para desinstalarlo por completo y borrar todos los datos sigue la siguiente guía: <https://coolify.io/docs/get-started/uninstallation>
{% endhint %}

#### Recursos útiles

* Documentación: <https://coolify.io/docs>
* Guia de instalación: <https://coolify.io/docs/get-started/installation#quick-installation-recommended>
*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apuntes-alex.gitbook.io/apuntes-sistemas-y-redes/servicios/web/guia-coolify.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
