promovaweb-devops-review-databasus-stack
Review Databasus Stack
Executa uma auditoria completa do arquivo databasus.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 databasus.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 databasus.audit.md.
Checks de Verificação
1. Imagem
Verifique o anchor x-databasus-image:
- A imagem deve ser
databasus/databasus:<versão>com versão fixada - Alertar se estiver usando
databasus/databasus:latest(sem versão)
2. Variáveis de Ambiente
Verifique o anchor x-databasus-env:
DATABASE_DSN:
- Deve estar no formato
postgresql://usuario:senha@host:porta/banco - O host deve ser
postgres(nome do serviço no Swarm) - A porta deve ser
5432 - A senha não deve ser o placeholder
SENHA— compare com a senha definida empostgres.yaml - O banco (
databasus) deve existir no PostgreSQL antes do deploy - O usuário deve ter permissões adequadas no banco
databasus
3. Serviço
Verifique se o serviço databasus está presente e corretamente configurado.
4. Portas Expostas
4005:4005— verificar se a porta está exposta externamente- Alertar se a porta 4005 estiver exposta quando Traefik já está configurado (redundante)
- Recomendar remover exposição direta de porta e usar apenas Traefik
5. Volumes
databasus_data— deve ser declarado comoexternal: true- Verificar se está montado em
/databasus-data - Alertar se o volume não for externo (dados perdidos em redeploy)
6. Réplicas
| Serviço | Réplicas Esperadas | Observação |
|---|---|---|
databasus |
1 | Interface de gerenciamento de banco — geralmente 1 réplica |
7. Rotas Traefik
Para o serviço databasus, verifique:
Âncora de endereço (x-databasus-app-url):
- A âncora
x-databasus-app-urldeve existir e conter um domínio válido (não placeholder comodatabasus.agenciasynca.com.br) - O domínio na âncora deve ser idêntico ao domínio dentro de
Host(...)na labeltraefik.http.routers.databasus.rule - Se não forem iguais, reportar como ❌ Erro: inconsistência entre
x-databasus-app-urle a regra Traefik
Labels obrigatórias:
traefik.enable=truetraefik.swarm.network=network_swarm_publictraefik.http.routers.databasus.rule— deve conterHost(...)com domínio válido e coincidir comx-databasus-app-urltraefik.http.routers.databasus.entrypoints=websecuretraefik.http.routers.databasus.tls.certresolver=letsencryptresolvertraefik.http.routers.databasus.service=databasustraefik.http.services.databasus.loadbalancer.server.port=4005
8. Recursos do Container
| Serviço | CPU | Memória Máxima |
|---|---|---|
databasus |
"0.5" | 512M |
- Databasus é uma ferramenta leve — 512M é adequado
- Alertar se não tiver
resources.limitsdefinido
9. Configuração de Deploy
mode: replicated— deve serreplicatedplacement.constraints— deve incluirnode.role == manager- Verificar se há
update_configdefinido
10. Redes
- O serviço deve estar na rede
network_swarm_public - A rede deve ser declarada como
external: true
11. Segurança
DATABASE_DSNnão deve conter o placeholderSENHA— risco de conexão falhar ou usar senha errada- Databasus é uma interface de gerenciamento de banco com acesso total — restringir acesso é crítico
- Recomendado: adicionar middleware de autenticação no Traefik (basicauth ou forward auth)
- Recomendado: adicionar IP allowlist no Traefik para o Databasus
- Porta 4005 exposta + Traefik: remover exposição direta
- Verificar se o usuário PostgreSQL tem apenas permissões necessárias (não usar superusuário)
Formato do Relatório de Saída
Ao final, produza um relatório estruturado:
# Relatório de Auditoria — databasus.yaml
Data: <data atual>
## Resumo
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X
## Resultados por Categoria
### 1. Imagem
⚠️ databasus/databasus:latest: versão não fixada — considere fixar versão em produção
...
### 2. Variáveis de Ambiente
❌ DATABASE_DSN: contém placeholder SENHA — troque antes do deploy
✅ DATABASE_DSN: host=postgres, porta=5432, formato correto
...
### 3. Serviço
✅ databasus: presente
### 4. Portas
⚠️ Porta 4005 exposta e Traefik configurado — considere remover exposição direta
...
### 5. Volumes
✅ databasus_data: volume externo em /databasus-data
...
### 6. Réplicas
✅ databasus: 1 réplica
...
### 7. Rotas Traefik
✅ databasus: rota Host correta, TLS ok
...
### 8. Recursos
✅ 0.5 CPU, 512M de memória (adequado para ferramenta leve)
...
### 9. Deploy
⚠️ update_config não definido
...
### 10. Redes
✅ network_swarm_public: configurado como external
...
### 11. Segurança
❌ DATABASE_DSN: placeholder SENHA detectado
⚠️ Databasus tem acesso total ao banco — adicione middleware de autenticação no Traefik
⚠️ Considere IP allowlist para restringir acesso ao Databasus
...
## 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-docker-networking
Configure a rede (networking) do Docker para containers, incluindo bridge, overlay e service discovery
9promovaweb-devops-review-kestra-stack
Verifica a Stack do Kestra. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Kestra de Acordo com as Recomendações da Promovaweb.
9