promovaweb-devops-review-uptime-kuma-stack

Installation
SKILL.md

Review Uptime Kuma Stack

Executa uma auditoria completa do arquivo uptime-kuma.yaml e reporta conformidade, problemas e sugestões.

Instruções de Execução

Quando esta skill for invocada, siga exatamente este roteiro:

Passo 1 — Ler o arquivo

Leia o arquivo uptime-kuma.yaml completo.

Passo 2 — Executar todos os checks abaixo

Execute cada bloco de verificação e registre os resultados (✅ OK / ⚠️ Atenção / ❌ Erro).

Passo 3 — Gravar o resultado

Grave o relatório completo em um arquivo chamado uptime-kuma.audit.md.


Checks de Verificação

1. Imagem

Verifique o anchor x-uptime-kuma-image:

  • A imagem deve ser louislam/uptime-kuma:2 ou versão superior com tag major fixada
  • Alertar se estiver usando louislam/uptime-kuma:latest (sem versão)
  • A versão 2 tem banco SQLite interno — verificar se o volume de dados está corretamente montado

2. Serviço

Verifique se o serviço uptime-kuma está presente e corretamente configurado.


3. Portas Expostas

  • 3001:3001 — verificar se a porta interna está exposta
  • Alertar se a porta 3001 estiver exposta externamente quando Traefik já está configurado (redundante)
  • Recomendar remover exposição direta de porta e usar apenas Traefik para acesso externo

4. Volumes

  • uptime_kuma_data — deve ser declarado como external: true
  • Verificar se está montado em /app/data
  • Alertar se o volume não for externo (configurações e histórico de monitoramento perdidos em redeploy)
  • Verificar se /var/run/docker.sock está montado (necessário para monitorar containers Docker)

5. Docker Socket

  • /var/run/docker.sock:/var/run/docker.sock — verificar se está presente
  • Necessário para o recurso de monitoramento de containers Docker
  • Alertar se estiver montado sem :ro (idealmente somente leitura, mas Uptime Kuma pode requerer escrita)
  • Verificar se o comentário de uso no YAML está presente

6. Réplicas

Serviço Réplicas Esperadas Observação
uptime-kuma 1 Uptime Kuma é stateful (SQLite), não deve ter mais de 1 réplica

Alertar se houver mais de 1 réplica (SQLite não suporta acesso concorrente de múltiplas instâncias).


7. Rotas Traefik

Para o serviço uptime-kuma, verifique:

Âncora de endereço (x-uptime-kuma-app-url):

  • A âncora x-uptime-kuma-app-url deve existir e conter um domínio válido (não placeholder como status.agenciasynca.com.br)
  • O domínio na âncora deve ser idêntico ao domínio dentro de Host(...) na label traefik.http.routers.uptime-kuma.rule
  • Se não forem iguais, reportar como ❌ Erro: inconsistência entre x-uptime-kuma-app-url e a regra Traefik

Labels obrigatórias:

  • traefik.enable=true
  • traefik.swarm.network=network_swarm_public
  • traefik.http.routers.uptime-kuma.rule — deve conter Host(...) com domínio válido (não status.agenciasynca.com.br se placeholder)
  • traefik.http.routers.uptime-kuma.entrypoints=websecure
  • traefik.http.routers.uptime-kuma.tls.certresolver=letsencryptresolver
  • traefik.http.routers.uptime-kuma.service=uptime-kuma
  • traefik.http.services.uptime-kuma.loadbalancer.server.port=3001

Regras:

  • O domínio configurado deve ser acessível publicamente (página de status pública)

8. Recursos do Container

Serviço CPU Mínimo Memória Máxima
uptime-kuma "1" 1024M
  • Uptime Kuma é leve — 512M geralmente suficiente para uso normal
  • Alertar se não tiver resources.limits definido

9. Configuração de Deploy

  • mode: replicated — deve ser replicated
  • placement.constraints — deve incluir node.role == manager
  • Verificar se há update_config com order: start-first e failure_action: rollback (recomendado)

10. Redes e Imagens

Redes:

  • O serviço deve estar na rede network_swarm_public
  • A rede deve ser declarada como external: true

11. Segurança

  • A página de status pode ser pública — verificar se isso é intencional
  • Uptime Kuma tem autenticação própria — lembrar de configurar conta de administrador no primeiro acesso
  • Docker socket montado — avaliar se o monitoramento de containers Docker é necessário
  • Porta 3001 exposta + Traefik: considere remover exposição direta

Formato do Relatório de Saída

Ao final, produza um relatório estruturado:

# Relatório de Auditoria — uptime-kuma.yaml
Data: <data atual>

## Resumo
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X

## Resultados por Categoria

### 1. Imagem
✅ louislam/uptime-kuma:2: versão major fixada
...

### 2. Serviço
✅ uptime-kuma: presente

### 3. Portas
⚠️ Porta 3001 exposta e Traefik configurado — considere remover exposição direta
...

### 4. Volumes
✅ uptime_kuma_data: volume externo em /app/data
✅ docker.sock: montado para monitoramento de containers
...

### 5. Docker Socket
⚠️ docker.sock montado sem :ro — necessário para Uptime Kuma mas atenção ao acesso
...

### 6. Réplicas
✅ uptime-kuma: 1 réplica (correto para SQLite)
...

### 7. Rotas Traefik
✅ uptime-kuma: rota Host correta, TLS ok
...

### 8. Recursos
✅ 1024M de memória configurada (adequado)
...

### 9. Deploy
⚠️ update_config não definido — recomendado configurar
...

### 10. Redes
✅ network_swarm_public: configurado como external
...

### 11. Segurança
⚠️ Configure conta de administrador no primeiro acesso
⚠️ Verifique se a página de status pública é intencional
...

## Ações Recomendadas (por prioridade)

### Crítico (fazer antes do deploy)
1. ...

### Recomendado
1. ...

### Opcional
1. ...
Related skills
Installs
8
GitHub Stars
4
First Seen
Mar 28, 2026