promovaweb-devops-review-redis-stack
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:7ou versão superior - Alertar se estiver usando
redis:latestsem 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 (
--requirepassausente), 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=redissem senha — deve ser consistente - Chatwoot usa
REDIS_URL=redis://redis:6379— deve incluir senha se configurada (REDIS_PASSWORD)
- N8N usa
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_datamontado em/data— deve serexternal: 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 serreplicatedplacement.constraints— deve incluirnode.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
redisdeve 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. ...
More from promovaweb/skills-devops
promovaweb-devops-docker
Verifica o ambiente Docker do servidor — versão do Docker Engine, status do Swarm, nós do cluster, rede network_swarm_public, volumes externos e conformidade geral com as recomendações da Promovaweb.
10promovaweb-devops-review-evolution-go-stack
Verifica a Stack do Evolution Go. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Evolution Go de Acordo com as Recomendações da Promovaweb.
9promovaweb-devops-docker-volumes
Implemente armazenamento persistente com Docker volumes, bind mounts e estratégias de backup
9promovaweb-devops-dockerfile-basics
Aprenda os fundamentos do Dockerfile e as melhores práticas para criar imagens de container prontas para produção
9promovaweb-devops-review-chatwoot-stack
Verifica a Stack do Chatwoot. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Chatwoot de Acordo com as Recomendações da Promovaweb.
9promovaweb-devops-docker-networking
Configure a rede (networking) do Docker para containers, incluindo bridge, overlay e service discovery
9