Tutorial Atualizado — Instalação do Dockge com Docker + CloudPanel

Versão corrigida — inclui mapeamento de portas interno correto, volumes e checklist para evitar 502 Bad Gateway.

 

1 • Pré-requisitos

  • Servidor Linux (Debian/Ubuntu recomendado)
  • CloudPanel instalado e funcionando
  • Domínio/subdomínio apontado para o servidor
  • Acesso SSH com privilégio root ou sudo
  • Docker e Docker Compose instalados

2 • Instalação do Docker

Comandos rápidos para instalar o Docker usando o script oficial:

sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
docker ps
docker info

3 • Criar Site Reverse Proxy no CloudPanel

  1. No CloudPanel clique em Add Site → Add Reverse Proxy.
  2. Defina o domínio (ex: app.seudominio.com.br).
  3. Reverse Proxy URL: http://127.0.0.1:5000
  4. Emita certificado Let’s Encrypt (SSL/TLS) para o domínio.
Observação: ao criar o site antes do container, você pode ver inicialmente 502 Bad Gateway. Isso é esperado até o Dockge estar rodando e respondendo internamente.

4 • Criar diretórios do Dockge

Entre no diretório do site criado pelo CloudPanel — padrão:

cd /home/SEU-USUARIO/htdocs/SEU-DOMINIO/

Crie as pastas que serão montadas no container:

mkdir dockge
mkdir dockge-stacks

Essas pastas serão mapeadas para /app/data e /stacks dentro do container, respectivamente.

5 • Arquivo compose.yaml (corrigido)

Crie/edite o arquivo compose.yaml no diretório do site com o conteúdo abaixo:

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

Por que esse mapeamento?

O Dockge (versões recentes da imagem) escuta internamente na porta 5001. Queremos expor externamente pela porta 5000, portanto o mapeamento deve ser 5000:5001. Isso evita condição em que o container esteja “UP” mas o serviço interno não responda na porta esperada.

6 • Subir o Dockge

Execute:

docker compose up -d

Verifique se o container subiu e a porta está mapeada:

docker ps

Exemplo esperado:

dockge   ...   Up (healthy)   0.0.0.0:5000->5001/tcp
Se aparecer Up (healthy) e o mapeamento 5000→5001, o container está executando corretamente.

7 • Testes internos

Importante: testar antes via localhost para confirmar que o Dockge responde:

curl -I http://127.0.0.1:5000

Resposta esperada:

HTTP/1.1 200 OK

Se você receber Connection reset ou outro erro, veja os logs:

docker logs dockge --tail 200

8 • O que não fazer

  • Não acesse diretamente: https://app.seudominio.com.br:5000/
  • Motivo: Porta 5000 não tem SSL e o CloudPanel é o responsável por prover SSL + proxy.
  • O acesso externo correto é SEM a porta explícita (veja abaixo).

9 • Acesso correto

Depois que o container estiver OK e o SSL ativo no CloudPanel, acesse:

https://app.seudominio.com.br/

O CloudPanel faz o reverse proxy (127.0.0.1:5000) e entrega o Dockge via HTTPS.

10 • Problemas comuns e como corrigir

  • Curl interno falha (connection reset): o serviço interno do Dockge não está escutando na porta mapeada. Verifique logs com docker logs dockge e confirme o mapeamento 5000:5001.
  • 502 Bad Gateway: Reverse Proxy do CloudPanel apontando para URL errada — deve ser http://127.0.0.1:5000.
  • SSL ou certificado inválido: Reemita o Let’s Encrypt no painel do CloudPanel para o site.
  • Volumes/montagens inválidas: As pastas devem existir (ex.: ./dockge e ./dockge-stacks) e serem montadas conforme o compose.
  • Permissões: Se o Dockge não conseguir gravar nos volumes, ajuste permissões no host ou use UID/GID apropriado.

Conclusão

Este tutorial já incorpora as correções aplicadas na prática: mapeamento de portas correto (5000:5001), volumes, variável DOCKGE_STACKS_DIR=/stacks e checklist do CloudPanel. Seguindo esse passo a passo, você evita o erro 502 e terá o Dockge rodando e servido via HTTPS pelo seu domínio.