Instalar Dockge - Gestor de Docker Compose para Self-Hosting

Como instalar Dockge con Docker Compose. Una interfaz web ligera para gestionar stacks de docker-compose, con soporte multi-agente, editor interactivo y terminal web.

Instalar Dockge - Gestor de Docker Compose para Self-Hosting

Escribi por primera vez sobre Dockge en 2024, y dos anos despues sigue en cada servidor que ejecuto. Donde otras herramientas de gestion de Docker siguen agregando funciones y complejidad, Dockge se mantuvo enfocado en una cosa: hacer que los stacks de docker-compose sean faciles de gestionar desde un navegador.

Dockge fue creado por Louis Lam, el mismo desarrollador detras de Uptime Kuma. Tiene casi 22,000 estrellas en GitHub y una comunidad que sigue creciendo. El proyecto alcanzo v1.5 con soporte multi-agente, y ahora puedes gestionar stacks en multiples hosts Docker desde una interfaz.

Si estas mirando UIs de gestion de Docker en general, escribi una comparacion de alternativas a Portainer que cubre Dockge junto con Arcane, Dockhand, UsulNet y Komodo.

Lo que Dockge hace (y no hace)

Dockge es un gestor de archivos compose. Escribes o pegas un YAML de docker-compose, haces clic en desplegar, y eso es todo. Todos tus archivos compose permanecen en disco en el directorio que elijas. Nada queda bloqueado en una base de datos. Todavia puedes ejecutar docker compose up -d desde la terminal y Dockge recoge los cambios.

Dockge UI mostrando lista de stacks compose

Esto es lo que obtienes:

  • Crear, editar, iniciar, detener, reiniciar y eliminar stacks compose desde una UI web
  • Editor interactivo de compose.yaml con validacion en tiempo real
  • Terminal web para hacer exec en contenedores en ejecucion
  • Seguimiento de progreso en tiempo real para pulls de imagenes y operaciones de stack
  • Convertir comandos docker run en YAML compose
  • Soporte multi-agente para gestionar stacks en hosts Docker remotos
  • Almacenamiento basado en archivos, tus archivos compose viven en disco en formato estandar

Lo que Dockge no tiene: escaneo de vulnerabilidades, RBAC, OIDC/SSO, API REST, GitOps o auto-actualizaciones. Si necesitas alguna de esas, revisa Arcane (GitOps + API), Dockhand (escaneo de seguridad + auto-actualizaciones), o UsulNet (todo en un binario). Mi comparacion Arcane vs Dockhand cubre las diferencias entre esos dos.

Vista de detalles de contenedor y logs en Dockge

Para monitorear los recursos de tu servidor junto con Dockge, dale un vistazo a herramientas de monitoreo de servidor.

Requisitos Previos

Antes de empezar:

  • Un servidor Linux (VPS o local). Yo uso Hetzner para hosting VPS
  • Docker 20+ y Docker Compose v2 instalados
  • Funciona en amd64, arm64 y armv7 (Raspberry Pi incluido)
Hetzner VPS DigitalOcean $100 Gratis Vultr $100 Gratis

O usa un Mini PC como servidor casero.

Instalar Docker

Si Docker aun no esta instalado:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-compose

Guia completa: Instalar Docker y Docker-compose para Ubuntu.

Instalar Dockge con Docker Compose

Instalacion rapida

La forma mas rapida de tener Dockge funcionando:

mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge

curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml

docker compose up -d

Eso descarga el archivo compose, crea el directorio de stacks e inicia Dockge. Abre http://ip-de-tu-servidor:5001 para configurar tu cuenta de administrador.

Instalacion personalizada

Si quieres cambiar el puerto o el directorio de stacks, usa la URL generadora:

mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge

curl "https://dockge.kuma.pet/compose.yaml?port=5001&stacksPath=/opt/stacks" --output compose.yaml

docker compose up -d

Cambia port y stacksPath a lo que necesites. O simplemente crea el archivo compose manualmente:

services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

La ruta de stacks debe coincidir

El lado izquierdo y derecho del montaje de volumen de stacks deben ser identicos. Si tus stacks viven en /opt/stacks, montalos como /opt/stacks:/opt/stacks, no como /opt/stacks:/alguna/otra/ruta. Los archivos compose usan rutas relativas, y se rompen si las rutas no coinciden dentro y fuera del contenedor.

Primer inicio de sesion

Abre http://ip-de-tu-servidor:5001 en tu navegador. Dockge te pedira crear tu cuenta de administrador en la primera visita. Despues de eso, llegaras al dashboard principal donde puedes empezar a desplegar stacks compose.

Crear nuevo stack compose en Dockge

Actualizando Dockge

Descarga la ultima imagen y reinicia:

cd /opt/dockge
docker compose pull && docker compose up -d

Tus datos y stacks se conservan ya que viven en volumenes montados.

Configuracion de proxy inverso

Para SSL y un dominio apropiado, pon un proxy inverso frente a Dockge. El soporte WebSocket es necesario para las actualizaciones en tiempo real y la terminal web.

server {
    listen 443 ssl http2;
    server_name dockge.tudominio.com;

    ssl_certificate /ruta/a/cert.pem;
    ssl_certificate_key /ruta/a/key.pem;

    location / {
        proxy_pass http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $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;
    }
}

Agrega labels al servicio Dockge en tu archivo compose:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dockge.rule=Host(`dockge.tudominio.com`)"
  - "traefik.http.routers.dockge.entrypoints=websecure"
  - "traefik.http.routers.dockge.tls.certresolver=letsencrypt"
  - "traefik.http.services.dockge.loadbalancer.server.port=5001"

Configuracion completa de Traefik: Como usar Traefik como proxy inverso en Docker. Para certificados SSL wildcard con Dockge y Traefik, ve Configuracion de certificado wildcard Traefik.

Apunta un tunnel a http://localhost:5001. El manejo de SSL y WebSocket es automatico. No hay puertos que abrir en tu servidor. Esta es mi configuracion preferida para uso en homelab.

Tambien tengo una guia sobre configurar Dockge con CloudPanel si estas usando ese panel.

Configuracion multi-agente

Desde v1.4, Dockge puede gestionar stacks en hosts Docker remotos. Ejecutas un agente Dockge en cada maquina remota, y todos aparecen en la UI principal de Dockge.

En la maquina remota, despliega el agente:

services:
  dockge-agent:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

Luego en tu instancia principal de Dockge, ve a la pagina de agentes y agrega el host remoto por su direccion y puerto. Los stacks de ese host aparecen en tu dashboard junto con tus stacks locales.

Dockge vs otros gestores de Docker

He probado muchas herramientas de gestion de Docker. Aqui es donde encaja Dockge:

DockgeArcaneDockhand
EnfoqueUI ComposeGestion Docker completaEnfocado en seguridad
ComplejidadMinimaMediaMedia
Escaneo vulnNoNoSi
OIDC/SSONoSiSi
GitOpsNoSiWebhooks
Auto-actualizacionesNoNoSi + rollback
APINoRESTREST
LicenciaMITBSD-3-ClauseBSL 1.1

Dockge es la herramienta correcta cuando no necesitas todos los extras. Lo uso en mi homelab donde solo quiero ver mis stacks, revisar logs y reiniciar cosas cuando se rompen. En servidores de produccion donde necesito GitOps y acceso API, ejecuto Arcane en su lugar.

Para una comparacion completa de todas las opciones, ve mi articulo de alternativas a Portainer.

Solucion de Problemas

Dockge no puede ver stacks compose existentes

Tus stacks necesitan estar en el directorio que configuraste con DOCKGE_STACKS_DIR. Cada stack deberia estar en su propio subdirectorio con un archivo compose.yaml. La estructura de directorios deberia verse asi:

/opt/stacks/
├── miapp/
│   └── compose.yaml
├── otra-app/
│   └── compose.yaml

Tambien asegurate de que las rutas de montaje de volumen coincidan en ambos lados, como se menciona en la seccion de instalacion.

Errores WebSocket o UI no se actualiza

Tu proxy inverso no esta reenviando conexiones WebSocket. Para Nginx, necesitas:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Permission denied en socket Docker

El contenedor necesita acceso al socket Docker. Asegurate de que el usuario que ejecuta Docker tiene los permisos correctos:

sudo usermod -aG docker $USER

Luego cierra sesion y vuelve a entrar, o reinicia el daemon de Docker.

Articulos relacionados