---
title: "Instalar Dockge - Gestor de Docker Compose para Self-Hosting"
description: "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."
date: 2026-02-13
categories: ["vps"]
tags: ["docker","self-hosted"]
---

import { Picture } from "astro:assets";
import imag1 from "@assets/images/24/01/dockge-main.png";
import imag2 from "@assets/images/24/01/dockge-container.png";
import imag3 from "@assets/images/24/01/dockge-add.png";

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](https://github.com/louislam/dockge) fue creado por Louis Lam, el mismo desarrollador detras de [Uptime Kuma](https://www.bitdoze.com/uptime-kuma-tool/). 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](/es/alternativas-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.

<Picture
  src={imag1}
  alt="Dockge UI mostrando lista de stacks compose"
/>

Esto es lo que obtienes:

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

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

<Picture
  src={imag2}
  alt="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](https://www.bitdoze.com/sever-monitoring/).

<YouTubeEmbed url="https://www.youtube.com/embed/ouyOyAqRDyI" label="Instalar Dockge" />

## Requisitos Previos

Antes de empezar:

- Un servidor Linux (VPS o local). Yo uso [Hetzner](https://go.bitdoze.com/hetzner), [Hostinger](https://go.bitdoze.com/hostinger-vps) para hosting VPS
- Docker 20+ y Docker Compose v2 instalados
- Funciona en amd64, arm64 y armv7 (Raspberry Pi incluido)

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

O usa un [Mini PC como servidor casero](https://www.bitdoze.com/best-mini-pc-home-server/).

### Instalar Docker

Si Docker aun no esta instalado:

```sh
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](https://www.bitdoze.com/install-docker-ubuntu-arm/).

## Instalar Dockge con Docker Compose

### Instalacion rapida

La forma mas rapida de tener Dockge funcionando:

```sh
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:

```sh
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:

```yaml
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
```

<Notice type="warning" title="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.
</Notice>

### 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.

<Picture
  src={imag3}
  alt="Crear nuevo stack compose en Dockge"
/>

## Actualizando Dockge

Descarga la ultima imagen y reinicia:

```sh
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.

<Tabs>
  <Tab name="Nginx">

```nginx
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;
    }
}
```

  </Tab>

  <Tab name="Traefik">
    Agrega labels al servicio Dockge en tu archivo compose:

    ```yaml
    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](https://www.bitdoze.com/traefik-proxy-docker/). Para certificados SSL wildcard con Dockge y Traefik, ve [Configuracion de certificado wildcard Traefik](/traefik-wildcard-certificate/).
  </Tab>

  <Tab name="Cloudflare Tunnels">
    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.
  </Tab>
</Tabs>

Tambien tengo una guia sobre [configurar Dockge con CloudPanel](/cloudpanel-setup-dockge/) 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:

```yaml
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:

| | Dockge | Arcane | Dockhand |
|---|---|---|---|
| Enfoque | UI Compose | Gestion Docker completa | Enfocado en seguridad |
| Complejidad | Minima | Media | Media |
| Escaneo vuln | No | No | Si |
| OIDC/SSO | No | Si | Si |
| GitOps | No | Si | Webhooks |
| Auto-actualizaciones | No | No | Si + rollback |
| API | No | REST | REST |
| Licencia | MIT | BSD-3-Clause | BSL 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](/es/instalar-arcane/) en su lugar.

Para una comparacion completa de todas las opciones, ve mi articulo de [alternativas a Portainer](/es/alternativas-portainer/).

## Solucion de Problemas

<Accordion label="Dockge no puede ver stacks compose existentes" group="troubleshoot" expanded="true">

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.

</Accordion>

<Accordion label="Errores WebSocket o UI no se actualiza" group="troubleshoot">

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

```nginx
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
```

</Accordion>

<Accordion label="Permission denied en socket Docker" group="troubleshoot">

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

```bash
sudo usermod -aG docker $USER
```

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

</Accordion>

## Articulos relacionados

- [Mejores alternativas a Portainer en 2026](/es/alternativas-portainer/) - cinco UIs de gestion Docker comparadas
- [Instalar Arcane](/es/instalar-arcane/) - gestor Docker con GitOps y API REST
- [Instalar Dockhand](/es/instalar-dockhand/) - gestor Docker enfocado en seguridad con escaneo
- [Arcane vs Dockhand](/es/arcane-vs-dockhand/) - comparacion lado a lado
- [Instalar UsulNet](/es/instalar-usulnet/) - plataforma de gestion Docker todo en uno
- [Dockge con CloudPanel](/cloudpanel-setup-dockge/) - usando ambas herramientas juntas
- [Mejores contenedores Docker para servidor casero](/docker-containers-home-server/) - que ejecutar con Dockge
- [Mejores paneles self-hosted](/best-self-hosted-panels/) - paneles de gestion de servidor comparados
- [Proxy inverso Traefik para Docker](/traefik-proxy-docker/) - configuracion de proxy inverso
- [Certificado wildcard Traefik](/traefik-wildcard-certificate/) - SSL wildcard con Traefik y Dockge
- [Herramientas de monitoreo de servidor](/sever-monitoring/) - monitoreando tu host Docker