promovaweb-devops-review-redis-stack
Verifica a Stack do Redis. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Redis de Acordo com as Recomendações da Promovaweb.
Works with
--- name: promovaweb-devops-review-redis-stack description: Verifica a Stack do Redis. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Redis de Acordo com as Recomendações da Promovaweb. license: MIT --- # 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. ... ```
More Database skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pg_cron, pgmq), vector/semantic search (pgvector), and restoring dumps (pg_restore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-database-setup
prisma/skills
Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".
prisma-postgres
prisma/skills
Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

