---
title: "CloudPanel como proxy inverso: guía de configuración con Docker y Dockge"
description: "Configura CloudPanel como proxy inverso para Docker con Dockge. Guía paso a paso con la configuración del vhost de Nginx, SSL, reglas de firewall y refuerzo de la seguridad."
date: 2024-02-13
categories: ["hosting"]
tags: ["cloudpanel","dockge","docker"]
---

import Button from "@components/widgets/Button.astro";
import { Picture } from "astro:assets";
import YouTubeEmbed from "@components/widgets/YouTubeEmbed.astro";
import Notice from "@components/widgets/Notice.astro";
import ListCheck from "@components/widgets/ListCheck.astro";
import Accordion from "@components/widgets/Accordion.astro";
import Tabs from "@components/widgets/Tabs.astro";
import Tab from "@components/widgets/Tab.astro";
import imag1 from "@assets/images/24/02/cp-add-proxy-1.png";
import imag2 from "@assets/images/24/02/cp-add-proxy-2.png";
import imag3 from "@assets/images/24/02/cp-open-ports.png";
import imag4 from "@assets/images/24/01/dockge-add.png";

[CloudPanel](https://www.cloudpanel.io/) es un panel de alojamiento ligero que gestiona aplicaciones PHP, Node.js y Python. Su función de proxy inverso te permite enrutar el tráfico hacia contenedores Docker que se ejecutan en el mismo VPS. Combínalo con [Dockge](/es/instalar-dockge/), un [gestor de Docker Compose](/es/instalar-dockge/) para organizar y desplegar tus stacks de Docker, y tendrás un solo servidor que maneja tanto sitios alojados tradicionales como aplicaciones en contenedores.

Si solo necesitas un proxy inverso para contenedores Docker, herramientas como Nginx Proxy Manager o Traefik son más simples. Pero si también quieres alojar sitios PHP o Node.js junto a Docker, CloudPanel encaja muy bien. También hay otros [paneles de servidor autoalojados](/es/mejores-paneles-autoalojados/) que merece la pena comparar.

<Notice type="info" title="Probado con">
CloudPanel CE v2.5.3 · Dockge v1.5.0 · Docker 29.x · Ubuntu 24.04 LTS
</Notice>

<YouTubeEmbed
  url="https://www.youtube.com/embed/BuoyvbDVBe0"
  label="Configurar CloudPanel como proxy inverso con Docker y Dockge"
/>

## 1. Requisitos previos

Antes de empezar, asegúrate de tener:

<ListCheck>
<ul>
<li>Un VPS con Ubuntu 24.04 LTS (o Ubuntu 22.04, Debian 12)</li>
<li>Mínimo 1 núcleo, 2 GB de RAM, 10 GB de disco</li>
<li>Un nombre de dominio con acceso al DNS (Cloudflare, Hetzner DNS, etc.)</li>
<li>Acceso SSH al servidor</li>
</ul>
</ListCheck>

Se admiten servidores ARM y x86_64.

## 2. Crear un servidor VPS

Recomiendo [Hetzner](https://go.bitdoze.com/hetzner) para alojamiento en la UE (buena relación precio-rendimiento). [Hostinger](https://go.bitdoze.com/hostinger-vps) es una opción KVM económica y sólida. Para presencia global, DigitalOcean y Vultr funcionan bien. Para más detalles, consulta esta [reseña de Hetzner](https://www.wpdoze.com/hetzner-cloud-review/) y también puedes ver: [DigitalOcean vs Vultr vs Hetzner](https://www.wpdoze.com/digitalocean-vs-vultr-vs-hetzner/)

_Los precios de los VPS subieron en todos los proveedores en 2026 — si estás reconsiderando alquilar un servidor, mira [qué cambió y cuándo gana un mini PC](/es/subidas-precios-vps/)._

<Button link="https://go.bitdoze.com/do" text="DigitalOcean $100 gratis" />
<Button link="https://go.bitdoze.com/vultr" text="Vultr $100 gratis" />
<Button link="https://go.bitdoze.com/hetzner" text="Hetzner €⁠20 gratis" />
<Button link="https://go.bitdoze.com/hostinger-vps" text="Hostinger VPS" />

Ubuntu 24.04 LTS es el SO recomendado para nuevas instalaciones.

## 3. Actualizar el servidor VPS

Actualiza siempre antes de instalar nada:

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

Verifica la versión del SO:

```bash
cat /etc/os-release
```

Deberías ver `VERSION_ID="24.04"` (o `22.04` / `12` en Debian).

## 4. Instalar CloudPanel

> También he creado un curso que te ayudará a empezar con CloudPanel si eres principiante, consulta el **[Curso de configuración de CloudPanel](https://webdoze.net/courses/cloudpanel-setup/)**

CloudPanel admite varios motores de base de datos. Elige el que prefieras:

<Tabs>
<Tab name="MariaDB 10.11">
```bash
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "6eac061df80f08b75224fcd7fce2f115e201696d8a6122e31abf7259a813b462 install.sh" | \
sha256sum -c && sudo CLOUD=hetzner DB_ENGINE=MARIADB_10.11 bash install.sh
```
</Tab>
<Tab name="MySQL 8.4">
```bash
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "6eac061df80f08b75224fcd7fce2f115e201696d8a6122e31abf7259a813b462 install.sh" | \
sha256sum -c && sudo CLOUD=hetzner DB_ENGINE=MYSQL_8.4 bash install.sh
```
</Tab>
</Tabs>

<Notice type="warning" title="El checksum del instalador cambia">
El checksum del instalador cambia con cada versión de CloudPanel. Si la verificación falla, obtén el checksum más reciente en la [documentación oficial de instalación](https://www.cloudpanel.io/docs/v2/getting-started/other/).
</Notice>

Sustituye `CLOUD=hetzner` por tu proveedor (o elimínalo para instalaciones genéricas). Motores de base de datos disponibles: `MARIADB_10.11`, `MARIADB_11.4`, `MYSQL_8.0`, `MYSQL_8.4`. La instalación tarda entre 5 y 10 minutos.

CloudPanel admite sitios PHP, Node.js y Python. Si necesitas [alojar aplicaciones Node.js con CloudPanel](/es/instalar-cloudpanel-alojar-nodejs/), la misma instalación sirve.

**Verificar:**

```bash
systemctl status cloudpanel
```

El servicio debería mostrar `active (running)`. Puedes acceder al panel de administración en `https://serverIP:8443`.

**Si el checksum falla:** el script de instalación se actualizó desde la publicación. Obtén el más reciente en la [documentación de instalación de CloudPanel](https://www.cloudpanel.io/docs/v2/getting-started/other/).

## 5. Protege CloudPanel inmediatamente

<Notice type="error" title="Haz esto a los pocos minutos de la instalación">
CloudPanel ha tenido múltiples problemas de seguridad, incluidos errores de escalada de privilegios corregidos en v2.5.0-v2.5.2. CVE-2025-15241 (redirección abierta en el panel de administración) se corrigió en v2.5.2. Las instancias sin parches son un objetivo fácil para los bots. Estas son las tres cosas que debes hacer inmediatamente después de la instalación.
</Notice>

**1. Crea la cuenta de administrador ahora.** Los bots buscan instancias de CloudPanel sin configurar y pueden crear el usuario administrador antes que tú. Abre `https://serverIP:8443` y configura tu cuenta de administrador en cuestión de minutos.

**2. Restringe el puerto 8443 a tu IP.** Usa el firewall de CloudPanel o UFW desde la línea de comandos:

```bash
# Permite 8443 solo desde tu IP (reemplázala por tu IP real)
ufw allow from YOUR_IP_ADDRESS to any port 8443
ufw deny 8443
```

O hazlo desde el panel de CloudPanel: **Admin Area > Security > Add Rule** para incluir tu IP en la lista blanca del puerto 8443.

**3. Actualiza CloudPanel a la última versión:**

```bash
clp-update
```

Esto corrige CVE-2025-15241 (redirección abierta en `/admin/users` mediante manipulación de la cabecera Referer) y las vulnerabilidades de escalada de privilegios corregidas en v2.5.0-v2.5.2.

**Verificar:**

```bash
clp-version
```

Debería mostrar v2.5.2 o posterior.

Para un refuerzo completo, consulta cómo [securizar tu servidor CloudPanel](/es/securizar-cloudpanel/) y [mantener CloudPanel actualizado](/es/actualizar-cloudpanel-seguro/) con regularidad.

## 6. Crear un subdominio de administración

Para acceder a CloudPanel detrás de un dominio propio con SSL, crea un registro DNS A para un subdominio (p. ej., `panel.example.com`) que apunte a la IP de tu servidor. Si usas Cloudflare, el proxy (nube naranja) funciona bien aquí.

Luego añade el subdominio en el panel de CloudPanel bajo **Settings** para proteger el área de administración.

**Verificar:** Visita `https://panel.example.com`. Deberías ver la página de inicio de sesión de CloudPanel con un certificado SSL válido.

## 7. Instalar Docker y Docker Compose

El método antiguo de instalación de Docker (fijando `jammy` en la fuente de apt) falla en Ubuntu 24.04. Usa el método oficial actual con detección dinámica del nombre en clave de la versión:

<Notice type="info" title="Funciona en Ubuntu 22.04 y 24.04">
Este método detecta tu versión de Ubuntu automáticamente. No hace falta fijar el nombre de la versión.
</Notice>

```bash
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

Para una referencia completa de los comandos de Docker, consulta los [comandos esenciales de Docker](/es/comandos-docker/). Todo se explica también en la guía para [instalar Docker en Ubuntu](/es/instalar-docker-ubuntu-arm/).

**Verificar:**

```bash
sudo docker run hello-world
sudo systemctl status docker
docker compose version
```

`docker compose version` debería mostrar algo como `Docker Compose version v2.x.x`. Si falla, probablemente instalaste el `docker-compose` independiente obsoleto en lugar de `docker-compose-plugin`.

**Caso de fallo:** Si no se encuentra `docker compose`, elimina el paquete independiente antiguo e instala el plugin:

```bash
sudo apt remove docker-compose
sudo apt install docker-compose-plugin
```

## 8. Instalar Dockge

Dockge se instalará dentro del directorio `htdocs` de un sitio de CloudPanel. La ventaja: las copias de seguridad rClone de CloudPanel capturan automáticamente Dockge y todos tus stacks de Docker juntos. El inconveniente: la recomendación oficial de Dockge es `/opt/stacks` y `/opt/dockge`. Ambos enfoques funcionan. El enfoque con htdocs te da copias de seguridad integradas con CloudPanel, mientras que `/opt/stacks` mantiene todo en rutas estándar.

> Si tienes activada la copia de seguridad externa de CloudPanel, respaldarás todas las aplicaciones y Dockge de una vez. Consulta [copias de seguridad remotas de CloudPanel](/es/copias-seguridad-remotas-cloudpanel/) para la configuración.

<Notice type="info" title="Dockge se mantiene activamente">
Tras un periodo tranquilo (el mantenedor priorizó Uptime Kuma 2.0), Dockge v1.5.0 se publicó en marzo de 2025 con correcciones de seguridad, incluida la consola desactivada por defecto. El proyecto tiene más de 23k estrellas en GitHub y no está abandonado.
</Notice>

### 8.1 Crear un sitio de proxy inverso en CloudPanel

En **Sites > Add Site** elige **Create a Reverse Proxy**.

<Picture formats={["webp"]} fallbackFormat="webp" src={imag1} alt="CloudPanel: crear un proxy inverso" />

Añade el dominio que quieras usar para Dockge, crea un usuario con contraseña y configura el puerto. Yo uso el puerto `5000` (host) que corresponde al puerto interno `5001` de Dockge. Puedes personalizarlo.

<Picture formats={["webp"]} fallbackFormat="webp" src={imag2} alt="CloudPanel: crear un proxy inverso" />

### 8.2 Crear directorios para Dockge

Conéctate por SSH a tu servidor y navega al directorio del sitio de CloudPanel:

```sh
cd /home/<user>/htdocs/<website>/
# Ejemplo:
cd /home/bitdoze-dockge/htdocs/dockge.bitdoze.com/
```

Sustituye `<user>` y `<website>` por los valores del paso 8.1.

Crea los directorios:

```sh
mkdir dockge-stacks
mkdir dockge
```

- **dockge**: los datos propios de Dockge y su archivo compose
- **dockge-stacks**: donde vivirán todos tus stacks de aplicaciones Docker

<Notice type="info" title="Ventaja de las copias de seguridad">
Guardar los stacks dentro del htdocs de CloudPanel significa que las copias de seguridad rClone de CloudPanel incluyen todas tus aplicaciones Docker automáticamente. Si prefieres la estructura oficial `/opt/stacks` de Dockge, ajusta los montajes de volúmenes en el archivo compose en consecuencia.
</Notice>

### 8.3 Desplegar Dockge con Docker Compose

Crea un archivo `compose.yaml` dentro del directorio `dockge`:

```yaml
services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5000:5001  # Host:Contenedor, ajusta el puerto del host según necesites
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /home/<user>/htdocs/<website>/dockge-stacks:/home/<user>/htdocs/<website>/dockge-stacks
    environment:
      # Indica a Dockge dónde encontrar los stacks
      - DOCKGE_STACKS_DIR=/home/<user>/htdocs/<website>/dockge-stacks
      # Define la propiedad de los archivos de stack (opcional pero recomendado)
      # - PUID=1000
      # - PGID=1000
      # La consola está desactivada por defecto desde v1.5.0 por seguridad.
      # Actívala solo si entiendes el riesgo:
      # - DOCKGE_ENABLE_CONSOLE=true
```

Sustituye las rutas y el puerto por tus valores reales. Aquí tienes un ejemplo concreto:

```yaml
services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5000:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /home/bitdoze-dockge/htdocs/dockge.bitdoze.com/dockge-stacks:/home/bitdoze-dockge/htdocs/dockge.bitdoze.com/dockge-stacks
    environment:
      - DOCKGE_STACKS_DIR=/home/bitdoze-dockge/htdocs/dockge.bitdoze.com/dockge-stacks
```

El [generador de compose de Dockge](https://dockge.kuma.pet/) puede ayudarte a crear el archivo compose exacto.

<Notice type="warning" title="Dockge v1.5.0 desactivó la consola web por defecto">
La terminal integrada (Console) ahora está desactivada por defecto por motivos de seguridad. Para reactivarla, añade `DOCKGE_ENABLE_CONSOLE=true` en la sección environment. Actívala solo si entiendes el riesgo. La edición de compose funciona bien sin ella.
</Notice>

Inicia Dockge:

```sh
cd /home/<user>/htdocs/<website>/dockge
docker compose up -d
```

**Verificar:**

```sh
docker compose ps
curl -I http://localhost:5001
```

El contenedor debería mostrar `running` y curl debería devolver `HTTP/1.1 200 OK`.

### 8.4 Apuntar el dominio a Dockge

En tu proveedor de DNS, crea un registro A para el subdominio de Dockge (p. ej., `dockge.example.com`) que apunte a la IP de tu servidor.

### 8.5 Crear un certificado SSL

En CloudPanel, ve a **Sites > Manage Site > SSL/TLS** y genera un certificado de Let's Encrypt.

**Verificar:** Visita `https://dockge.example.com`. Deberías ver la interfaz de Dockge con un candado en el navegador.

Nota: CloudPanel v2.5.0 corrigió un error por el que el directorio `.well-known` se eliminaba durante la renovación de SSL. Si tuviste problemas con la renovación del certificado en versiones anteriores, actualizar CloudPanel debería resolverlo.

### 8.6 Acceder a Dockge y crear el usuario administrador

La primera vez que accedas a Dockge se te pedirá crear un nombre de usuario y una contraseña. Hazlo de inmediato.

### 8.7 Abrir los puertos del firewall de CloudPanel

El firewall de CloudPanel bloquea la mayoría de los puertos por defecto (solo están abiertos 22, 80, 443 y 8443). Si necesitas acceso directo a puertos para aplicaciones Docker que no pasan por el proxy inverso de CloudPanel, abre los rangos de puertos:

Ve a **Admin Area > Security > Add Rule** y abre los rangos que necesites:

<Picture formats={["webp"]} fallbackFormat="webp" src={imag3} alt="Puertos abiertos en CloudPanel" />

Esto es opcional si todas tus aplicaciones pasan por el proxy inverso de CloudPanel (que es el enfoque recomendado).

## 9. Proteger la configuración del proxy inverso

La configuración por defecto del proxy inverso de CloudPanel usa `try_files $uri @reverse_proxy;`, lo que puede exponer archivos de los stacks como `.env` y otros secretos. La configuración mejorada de abajo corrige eso, además de añadir soporte para WebSocket y las cabeceras de proxy adecuadas.

### 9.1 Configuración mejorada del proxy de Nginx

En CloudPanel, ve a **Sites > Select your site > Vhost Editor**. Sustituye el bloque de proxy por defecto por:

```nginx
location / {
  proxy_pass {{reverse_proxy_url}};
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header Host $http_host;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  proxy_pass_request_headers on;
  proxy_max_temp_file_size 0;
  proxy_connect_timeout 900;
  proxy_send_timeout 900;
  proxy_read_timeout 900;
  proxy_buffer_size 128k;
  proxy_buffers 4 256k;
  proxy_busy_buffers_size 256k;
  proxy_temp_file_write_size 256k;
}
```

Cabeceras clave explicadas:

- **`X-Forwarded-Proto $scheme`**: indica a la aplicación backend si la petición original llegó por HTTP o HTTPS. Sin esto, las aplicaciones detrás del HTTPS de CloudPanel pueden generar enlaces inseguros.
- **`Upgrade` / `Connection "Upgrade"`**: habilita el soporte de WebSocket para aplicaciones en tiempo real (chat, paneles en vivo, las actualizaciones de la propia interfaz de Dockge).
- Los ajustes de búfer y tiempo de espera evitan problemas con subidas grandes y conexiones de larga duración.

<Notice type="info" title="Por qué es importante">
Con la configuración por defecto, los archivos dentro de los directorios de stacks de Dockge (como los archivos `.env` con contraseñas de base de datos) pueden accederse directamente desde el navegador. Esta configuración mejorada enruta todas las peticiones a través del proxy inverso, impidiendo el acceso directo a los archivos.
</Notice>

### 9.2 Proteger archivos sensibles

Para una capa extra de protección, añade este bloque a tu configuración de Vhost:

```nginx
# Protege los archivos sensibles
location ~* \.(php|sql|log|config|env)$ {
    deny all;
}
```

Esto bloquea el acceso directo a archivos con extensiones como `.php`, `.sql`, `.log`, `.config` y `.env`, que a menudo contienen credenciales o datos de configuración.

### 9.3 Añadir autenticación básica

Para una capa adicional de seguridad en tus sitios de Dockge o aplicaciones:

1. Ve al panel de administración de CloudPanel
2. Navega a **Sites > Select your site > Security**
3. Añade un nombre de usuario y una contraseña para la autenticación básica

Se pedirán credenciales a los usuarios antes de acceder a la aplicación.

## 10. Despliega tu primera aplicación

Ya está todo listo. Accede a Dockge y empieza a desplegar aplicaciones.

<Picture formats={["webp"]} fallbackFormat="webp" src={imag4} alt="Añadir compose en Dockge" />

A continuación tienes algunas aplicaciones que puedes desplegar en Dockge:

- [Instalar Umami Analytics](/es/instalar-umami-analytics/)
- [Instalar Outline Wiki](/es/instalar-outline/)
- [Instalar Slash](/es/desplegar-slash-docker/)

Para cada aplicación, el flujo de trabajo es:

1. **Crea un proxy inverso en CloudPanel**: igual que hiciste para Dockge, crea un sitio como Reverse Proxy con el dominio y el puerto de la aplicación
2. **Apunta el dominio al servidor**: añade un registro A en tu proveedor de DNS
3. **Crea un certificado SSL**: ve a CloudPanel en **Sites > Manage Site > SSL/TLS** y genera un certificado de Let's Encrypt

## 11. Copias de seguridad

Configura las copias de seguridad antes de desplegar aplicaciones en producción, no después.

Activa las copias de seguridad externas rClone de CloudPanel hacia S3, Dropbox, Google Drive o cualquier almacenamiento remoto. Ve a **Admin Area > Backups** y configura la integración con rClone.

Si tus stacks se guardan dentro del directorio `htdocs` (el enfoque de esta guía), se incluyen automáticamente en las copias de seguridad de CloudPanel. Si usas `/opt/stacks`, necesitas una estrategia de copias de seguridad independiente.

Consulta [copias de seguridad remotas de CloudPanel](/es/copias-seguridad-remotas-cloudpanel/) para la configuración detallada.

Si estás en Hetzner, también puedes activar los snapshots de Hetzner para copias de seguridad a nivel de servidor.

> También he creado un curso que te ayudará a empezar con CloudPanel si eres principiante, consulta el **[Curso de configuración de CloudPanel](https://webdoze.net/courses/cloudpanel-setup/)**

## 12. Solución de problemas

<Accordion label="La verificación del checksum falla durante la instalación de CloudPanel" group="troubleshooting" expanded="true">
El script de instalación y el checksum cambian con cada versión de CloudPanel. Si la verificación falla, vuelve a obtener el checksum más reciente de la [documentación de instalación de CloudPanel](https://www.cloudpanel.io/docs/v2/getting-started/other/) y reemplázalo en el comando de instalación.
</Accordion>

<Accordion label="El daemon de Docker no arranca tras la instalación" group="troubleshooting">
Comprueba si hay paquetes conflictivos del repositorio por defecto de Ubuntu:

```bash
sudo systemctl status docker
```

Si Docker no arranca, elimina el paquete conflictivo `docker.io`:

```bash
sudo apt remove docker.io
sudo systemctl start docker
sudo systemctl enable docker
```

Verifica: `sudo docker run hello-world`
</Accordion>

<Accordion label="No se puede acceder a Dockge mediante el dominio" group="troubleshooting">
Comprueba esto en orden:

1. El DNS se ha propagado: `dig +short yourdomain.com` debería devolver la IP de tu servidor
2. El firewall de CloudPanel tiene el puerto abierto (si usas acceso directo por puerto)
3. El contenedor de Dockge está en ejecución: `docker compose ps`
4. El mapeo de puertos en compose.yaml coincide con el puerto de la configuración del proxy inverso de CloudPanel
5. El certificado SSL está emitido: compruébalo en **Sites > Manage Site > SSL/TLS**
</Accordion>

<Accordion label="El certificado SSL no se emite" group="troubleshooting">
- El DNS debe estar completamente propagado antes de solicitar un certificado (compruébalo con `dig`)
- El directorio `.well-known` debe ser accesible desde internet
- Si usas Cloudflare con el proxy activado (nube naranja), desactívalo temporalmente para la emisión del certificado y luego reactívalo
- CloudPanel v2.5.0 corrigió un error por el que `.well-known` se eliminaba durante la renovación. Asegúrate de estar en la última versión.
</Accordion>

<Accordion label="Los stacks de Dockge aparecen como 'not managed' tras actualizar" group="troubleshooting">
Verifica que la variable de entorno `DOCKGE_STACKS_DIR` de tu compose.yaml coincida con la ruta real donde están tus stacks. Luego reinicia Dockge:

```bash
docker compose restart
```
</Accordion>

<Accordion label="Los bots crearon la cuenta de administrador antes que yo" group="troubleshooting">
Esto ocurre cuando el puerto 8443 está abierto al mundo y tardas en crear la cuenta de administrador. Hay dos opciones:

1. Si aún no has configurado nada: reinstala CloudPanel y crea la cuenta de administrador en cuestión de minutos
2. Si necesitas recuperarla: restringe el puerto 8443 a tu IP de inmediato y luego consulta las opciones de recuperación de CloudPanel en su documentación

Consulta la sección 5 para saber cómo evitarlo.
</Accordion>

## 13. Alternativas a CloudPanel + Dockge

Esta configuración funciona bien cuando necesitas sitios PHP/Node.js junto a contenedores Docker en el mismo VPS. Pero si tu carga de trabajo es puramente Docker, hay opciones más simples:

| Stack | Ideal para | Inconveniente |
|-------|------------|---------------|
| **CloudPanel + Dockge** (esta guía) | Sitios PHP/Node + Docker en el mismo VPS | Panel de código cerrado; su historial de seguridad requiere atención |
| **Dokploy** | Aplicaciones nativas de Docker con proxy inverso integrado | Sin alojamiento PHP/Node fuera de Docker |
| **Coolify** | Sustituto PaaS completo para ambos | Mayor consumo de recursos |
| **Nginx Proxy Manager** | Solo proxy inverso simple | Sin gestión de sitios ni gestor de archivos |

Si estás evaluando herramientas de gestión de Docker en concreto, consulta las [alternativas a Portainer como Dockge](/es/alternativas-portainer/) para una comparación más profunda. Para una visión más amplia de los paneles, mira la comparativa de [paneles de servidor autoalojados](/es/mejores-paneles-autoalojados/).

## Preguntas frecuentes

<Accordion label="¿Puedo usar CloudPanel con Docker en servidores ARM?" group="faq" expanded="true">
Sí, tanto CloudPanel como Dockge admiten ARM y x86_64. Usa Ubuntu 24.04 ARM64 en proveedores como Hetzner (instancias CAX) o el nivel gratuito de Oracle Cloud.
</Accordion>

<Accordion label="¿Por qué no usar simplemente Nginx Proxy Manager o Traefik en lugar de CloudPanel?" group="faq">
CloudPanel te da un gestor de archivos, alojamiento PHP/Node.js, gestión de bases de datos, cron jobs y firewall, además del proxy inverso. Si solo necesitas un proxy inverso para aplicaciones Docker, Nginx Proxy Manager o Traefik son más simples y con menos partes móviles. Si también alojas sitios PHP, CloudPanel encaja mejor.
</Accordion>

<Accordion label="¿Es seguro ejecutar Docker junto a CloudPanel?" group="faq">
Sí, pero mantén CloudPanel actualizado con `clp-update`. CloudPanel gestiona Nginx en el host; los contenedores Docker se ejecutan de forma aislada. El riesgo principal son las instancias de CloudPanel sin parches, no la coexistencia con Docker en sí.
</Accordion>

<Accordion label="¿Cómo actualizo Dockge?" group="faq">
Navega al directorio compose de Dockge y descarga la última imagen:

```bash
cd /home/<user>/htdocs/<website>/dockge
docker compose pull
docker compose up -d
```

Dockge mostrará una notificación de actualización en la interfaz cuando haya una nueva versión disponible.
</Accordion>

<Accordion label="¿La copia de seguridad de CloudPanel incluye mis stacks de Docker?" group="faq">
Solo si guardas los stacks dentro del directorio htdocs de CloudPanel (el enfoque de esta guía). Si usas `/opt/stacks`, necesitas una estrategia de copias de seguridad independiente para tus datos de Docker.
</Accordion>