CloudPanel como proxy inverso: guía de configuración con Docker y Dockge
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.
Actualizado Publicado 37 min de lectura

CloudPanel 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, un gestor de Docker Compose 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 que merece la pena comparar.
Probado con
CloudPanel CE v2.5.3 · Dockge v1.5.0 · Docker 29.x · Ubuntu 24.04 LTS
1. Requisitos previos
Antes de empezar, asegúrate de tener:
- Un VPS con Ubuntu 24.04 LTS (o Ubuntu 22.04, Debian 12)
- Mínimo 1 núcleo, 2 GB de RAM, 10 GB de disco
- Un nombre de dominio con acceso al DNS (Cloudflare, Hetzner DNS, etc.)
- Acceso SSH al servidor
Se admiten servidores ARM y x86_64.
2. Crear un servidor VPS
Recomiendo Hetzner para alojamiento en la UE (buena relación precio-rendimiento). Hostinger 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 y también puedes ver: 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.
DigitalOcean $100 gratis Vultr $100 gratis Hetzner €20 gratis Hostinger VPSUbuntu 24.04 LTS es el SO recomendado para nuevas instalaciones.
3. Actualizar el servidor VPS
Actualiza siempre antes de instalar nada:
apt update && apt -y upgrade && apt -y install curl wget sudoVerifica la versión del SO:
cat /etc/os-releaseDeberí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
CloudPanel admite varios motores de base de datos. Elige el que prefieras:
MariaDB 10.11
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.shMySQL 8.4
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.shEl 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.
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, la misma instalación sirve.
Verificar:
systemctl status cloudpanelEl 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.
5. Protege CloudPanel inmediatamente
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.
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:
# Permite 8443 solo desde tu IP (reemplázala por tu IP real)
ufw allow from YOUR_IP_ADDRESS to any port 8443
ufw deny 8443O 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:
clp-updateEsto 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:
clp-versionDebería mostrar v2.5.2 o posterior.
Para un refuerzo completo, consulta cómo securizar tu servidor CloudPanel y mantener CloudPanel actualizado 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:
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.
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-pluginPara una referencia completa de los comandos de Docker, consulta los comandos esenciales de Docker. Todo se explica también en la guía para instalar Docker en Ubuntu.
Verificar:
sudo docker run hello-world
sudo systemctl status docker
docker compose versiondocker 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:
sudo apt remove docker-compose
sudo apt install docker-compose-plugin8. 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 para la configuración.
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.
8.1 Crear un sitio de proxy inverso en CloudPanel
En Sites > Add Site elige Create a Reverse Proxy.

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.

8.2 Crear directorios para Dockge
Conéctate por SSH a tu servidor y navega al directorio del sitio de CloudPanel:
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:
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
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.
8.3 Desplegar Dockge con Docker Compose
Crea un archivo compose.yaml dentro del directorio dockge:
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=trueSustituye las rutas y el puerto por tus valores reales. Aquí tienes un ejemplo concreto:
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-stacksEl generador de compose de Dockge puede ayudarte a crear el archivo compose exacto.
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.
Inicia Dockge:
cd /home/<user>/htdocs/<website>/dockge
docker compose up -dVerificar:
docker compose ps
curl -I http://localhost:5001El 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:

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:
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.
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.
9.2 Proteger archivos sensibles
Para una capa extra de protección, añade este bloque a tu configuración de Vhost:
# 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:
- Ve al panel de administración de CloudPanel
- Navega a Sites > Select your site > Security
- 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.

A continuación tienes algunas aplicaciones que puedes desplegar en Dockge:
Para cada aplicación, el flujo de trabajo es:
- 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
- Apunta el dominio al servidor: añade un registro A en tu proveedor de DNS
- 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 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
12. Solución de problemas
La verificación del checksum falla durante la instalación de CloudPanel
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 y reemplázalo en el comando de instalación.
El daemon de Docker no arranca tras la instalación
Comprueba si hay paquetes conflictivos del repositorio por defecto de Ubuntu:
sudo systemctl status dockerSi Docker no arranca, elimina el paquete conflictivo docker.io:
sudo apt remove docker.io
sudo systemctl start docker
sudo systemctl enable dockerVerifica: sudo docker run hello-world
No se puede acceder a Dockge mediante el dominio
Comprueba esto en orden:
- El DNS se ha propagado:
dig +short yourdomain.comdebería devolver la IP de tu servidor - El firewall de CloudPanel tiene el puerto abierto (si usas acceso directo por puerto)
- El contenedor de Dockge está en ejecución:
docker compose ps - El mapeo de puertos en compose.yaml coincide con el puerto de la configuración del proxy inverso de CloudPanel
- El certificado SSL está emitido: compruébalo en Sites > Manage Site > SSL/TLS
El certificado SSL no se emite
- El DNS debe estar completamente propagado antes de solicitar un certificado (compruébalo con
dig) - El directorio
.well-knowndebe 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-knownse eliminaba durante la renovación. Asegúrate de estar en la última versión.
Los stacks de Dockge aparecen como 'not managed' tras actualizar
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:
docker compose restartLos bots crearon la cuenta de administrador antes que yo
Esto ocurre cuando el puerto 8443 está abierto al mundo y tardas en crear la cuenta de administrador. Hay dos opciones:
- Si aún no has configurado nada: reinstala CloudPanel y crea la cuenta de administrador en cuestión de minutos
- 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.
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 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.
Preguntas frecuentes
¿Puedo usar CloudPanel con Docker en servidores ARM?
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.
¿Por qué no usar simplemente Nginx Proxy Manager o Traefik en lugar de CloudPanel?
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.
¿Es seguro ejecutar Docker junto a CloudPanel?
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í.
¿Cómo actualizo Dockge?
Navega al directorio compose de Dockge y descarga la última imagen:
cd /home/<user>/htdocs/<website>/dockge
docker compose pull
docker compose up -dDockge mostrará una notificación de actualización en la interfaz cuando haya una nueva versión disponible.
¿La copia de seguridad de CloudPanel incluye mis stacks de Docker?
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.


