promovaweb-devops-review-redis-stack

Installation
SKILL.md

Review Redis Stack

Executa uma auditoria completa do arquivo redis.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 os arquivos

Leia o arquivo redis.yaml completo. Leia também n8n.yaml e chatwoot.yaml para verificar como o Redis é referenciado pelos serviços dependentes.

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 redis.audit.md.


Checks de Verificação

1. Imagem

  • A imagem deve ser redis:7 ou versão superior
  • Alertar se estiver usando redis:latest sem versão major fixada
  • Verificar compatibilidade com os serviços que usam Redis (N8N usa Bull/Redis db=2, Chatwoot usa redis://redis:6379)

2. Comando de Inicialização

Verifique o comando redis-server:

  • --appendonly yes — deve estar presente (habilita AOF persistence)
  • --port 6379 — deve ser a porta padrão
  • Verificar se há senha configurada (--requirepass SENHA) — alertar se Redis estiver sem autenticação em produção não deve ser exposto externamente.
  • Verificar comentário sobre opção com senha e recomendar habilitação

3. Autenticação

  • Se o Redis está sem senha (--requirepass ausente), alertar como risco de segurança
  • Verificar se os serviços dependentes (N8N, Chatwoot) estão configurados para usar a mesma senha se habilitada:
    • N8N usa QUEUE_BULL_REDIS_HOST=redis sem senha — deve ser consistente
    • Chatwoot usa REDIS_URL=redis://redis:6379 — deve incluir senha se configurada (REDIS_PASSWORD)

4. Portas Expostas

  • 6379:6379 — verificar se a porta está exposta externamente
  • Alertar se a porta 6379 estiver exposta sem autenticação (alto risco de segurança)
  • Recomendar remoção da exposição de porta se acesso externo não for necessário

5. Persistência

  • --appendonly yes — AOF persistence habilitada (correto)
  • Volume redis_data montado em /data — deve ser external: true
  • Alertar se volume não for externo (dados da fila perdidos em redeploy)
  • Verificar se AOF é suficiente ou se RDB snapshot também é necessário

6. Réplicas

Serviço Réplicas Esperadas Observação
redis 1 Redis standalone — não deve ter mais de 1 réplica sem configuração de cluster/sentinel

Alertar se houver mais de 1 réplica (pode causar problemas de sincronização de dados).


7. Recursos do Container

Serviço CPU Mínimo Memória Máxima
redis "1" 1024M
  • Alertar se memória for inferior a 256M para uso com N8N (filas Bull)
  • Verificar se os limites são adequados para a carga de filas esperada

8. Configuração de Deploy

  • mode: replicated — deve ser replicated
  • placement.constraints — deve incluir node.role == manager
  • Verificar se há constraints adicionais de hostname para fixar o Redis em um nó específico

9. Redes

  • O serviço deve estar na rede network_swarm_public
  • A rede deve ser declarada como external: true
  • Hostname redis deve ser acessível pelos serviços dependentes via nome de serviço Docker Swarm

10. Segurança

  • Redis sem autenticação (--requirepass) — alertar como risco em produção
  • Porta 6379 exposta sem senha — risco crítico de segurança
  • Verificar consistência com configuração de senha nos serviços dependentes (N8N, Chatwoot)

Formato do Relatório de Saída

Ao final, produza um relatório estruturado:

# Relatório de Auditoria — redis.yaml
Data: <data atual>

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

## Resultados por Categoria

### 1. Imagem
✅ redis:7: versão major fixada
...

### 2. Comando
✅ --appendonly yes: persistência AOF habilitada
✅ --port 6379: porta padrão
⚠️ --requirepass: não configurado — Redis sem autenticação
...

### 3. Autenticação
⚠️ Redis sem senha — em produção, configure --requirepass e atualize REDIS_URL no Chatwoot e QUEUE_BULL_REDIS_PASSWORD no N8N
...

### 4. Portas
⚠️ Porta 6379 exposta externamente sem autenticação — risco de segurança
...

### 5. Persistência
✅ AOF habilitado com --appendonly yes
✅ redis_data: volume externo configurado em /data
...

### 6. Réplicas
✅ redis: 1 réplica (correto para standalone)
...

### 7. Recursos
✅ 1024M de memória configurada
...

### 8. Deploy
✅ node.role == manager: placement correto
...

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

### 10. Segurança
⚠️ Redis sem autenticação — configure senha antes de expor em produção
⚠️ Porta 6379 exposta: bloqueie acesso externo via firewall
...

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