promovaweb-devops-review-metabase-stack
Review Metabase Stack
Executa uma auditoria completa do arquivo metabase.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 metabase.yaml completo. Leia também postgres.yaml para verificar a consistência das credenciais de banco.
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 metabase.audit.md.
Checks de Verificação
1. Variáveis de Ambiente Obrigatórias
Verifique se todas as variáveis abaixo estão definidas no anchor x-metabase-db-env:
Banco de dados PostgreSQL (x-metabase-db-env)
MB_DB_TYPE— deve serpostgresMB_DB_DBNAME— deve ser definido (padrão:metabase)MB_DB_PORT— deve ser5432MB_DB_USER— deve ser definido (padrão:postgres)MB_DB_PASS— deve existir e não deve ser o placeholderSENHA, compare com a senha definida empostgres.yamlMB_DB_HOST— deve ser definido (padrão:postgres)
Variáveis diretas no serviço metabase:
MB_SITE_URL— deve começar comhttps://e ser um domínio válido (não localhost, nãobi.agenciasynca.com.brse placeholder)- O domínio de
MB_SITE_URLdeve corresponder à regra Traefik configurada
2. Serviços Obrigatórios
Verifique se o serviço está presente:
| Serviço | Obrigatório |
|---|---|
metabase |
Sim |
3. Replicas do Serviço
Verifique a quantidade de réplicas:
| Serviço | Réplicas Esperadas | Observação |
|---|---|---|
metabase |
1 | Metabase é stateful, múltiplas réplicas requerem configuração adicional |
Alertar se houver mais de 1 réplica sem configuração de sessão compartilhada.
4. Rotas Traefik
Para o serviço metabase, verifique:
Âncora de endereço (x-metabase-app-url):
- A âncora
x-metabase-app-urldeve existir e conter um domínio válido (não placeholder comobi.agenciasynca.com.br) - O domínio na âncora deve ser idêntico ao domínio dentro de
Host(...)na labeltraefik.http.routers.metabase.rule - Se não forem iguais, reportar como ❌ Erro: inconsistência entre
x-metabase-app-urle a regra Traefik - O domínio na âncora deve coincidir também com o domínio em
MB_SITE_URL(sem ohttps://)
Labels obrigatórias:
traefik.enable=truetraefik.swarm.network=network_swarm_publictraefik.http.routers.metabase.rule— deve conterHost(...)com domínio válidotraefik.http.routers.metabase.entrypoints=websecuretraefik.http.routers.metabase.tls.certresolver=letsencryptresolvertraefik.http.routers.metabase.service=metabasetraefik.http.services.metabase.loadbalancer.server.port=3000
Regras:
- O domínio na regra Traefik deve corresponder ao
x-metabase-app-urle aoMB_SITE_URL - Verificar se
passHostHeaderestá configurado (recomendado)
5. Recursos do Container
Verifique os limites de recursos do serviço metabase:
| Serviço | CPU Mínimo | Memória Mínima | Memória Máxima |
|---|---|---|---|
metabase |
"1" | 1024M | 2048M |
Alertar se não tiver resources.limits definido.
Metabase requer ao menos 1-2GB de memória para operar corretamente.
6. Configuração de Deploy
Para o serviço metabase, verifique:
mode: replicated— deve serreplicatedplacement.constraints— deve incluirnode.role == manager- Verificar se há
update_configcomorder: start-firstefailure_action: rollback(recomendado)
7. Redes e Imagens
Redes:
- O serviço deve estar na rede
network_swarm_public - A rede deve ser declarada como
external: truena seçãonetworks: - Metabase não declara volumes (usa banco externo) — verificar se isso é intencional
Imagens:
- O serviço deve usar
*metabase-image(anchor) - Verificar se a imagem usa tag específica de versão em vez de
latest(recomendado em produção) - Alertar se estiver usando
metabase/metabase:latest— versões do Metabase podem ter migrações de banco incompatíveis
8. Segurança
MB_DB_PASSnão deve serSENHA(placeholder)MB_SITE_URLdeve usarhttps://(nãohttp://)- Verificar se o banco de dados
metabasefoi criado no PostgreSQL antes do deploy - Verificar se há configuração de email para recuperação de senha (
MB_EMAIL_*variáveis)
Formato do Relatório de Saída
Ao final, produza um relatório estruturado:
# Relatório de Auditoria — metabase.yaml
Data: <data atual>
## Resumo
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X
## Resultados por Categoria
### 1. Variáveis de Ambiente
✅ MB_DB_TYPE: postgres
❌ MB_DB_PASS: usando placeholder SENHA — troque antes do deploy
✅ MB_SITE_URL: https://bi.agenciasynca.com.br
...
### 2. Serviços
✅ metabase: presente
### 3. Replicas
✅ metabase: 1 réplica (adequado para instalação padrão)
...
### 4. Rotas Traefik
✅ metabase: rota Host correta, TLS ok
⚠️ passHostHeader não configurado — recomendado adicionar
...
### 5. Recursos
✅ metabase: 2048M de memória (adequado)
...
### 6. Deploy
⚠️ update_config não definido — recomendado configurar start-first e rollback
...
### 7. Redes e Imagens
⚠️ Imagem usando `latest` — atenção: atualizações do Metabase podem migrar o banco automaticamente
...
### 8. Segurança
❌ MB_DB_PASS: placeholder SENHA detectado
⚠️ Banco `metabase` deve ser criado no PostgreSQL antes do primeiro deploy
...
## 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