Stacks Implementadas
📋 Documentação Consolidada das Stacks Docker
Última atualização: 23 de Janeiro de 2026 Ambiente: Docker Swarm em produção Arquitetura: ARM64 (compatível)
🔍 Resumo Executivo
Este documento consolida todas as 4 stacks Docker Compose encontradas no ambiente de produção:
| Stack | Serviços | Banco de Dados | Cache | Status | Domínio |
|---|---|---|---|---|---|
| Operações | 1 | - | - | ✅ Ativo | operaes.memudecore.com.br |
| BookStack | 3 | MariaDB 11.2 | Redis 7.2 | ✅ Ativo | docs.memudecore.com.br |
| WAHA (WhatsApp) | 1 | - | - | ✅ Ativo | waha.memudecore.com.br |
| Krayin CRM | 3 | MariaDB 11.2 | Redis 7.2 | ✅ Ativo | crm.memudecore.com.br |
🏢 1. Stack Operações
Arquivo: Operaes/docker-stack.yml
Função: Aplicação principal de operações da empresa
Serviços
🚀 operaes
image: ${REGISTRY:-}operaes:${TAG:-latest}
Configurações:
- Porta: 80
- Réplicas: 1 (modo replicado)
- CPU: 0.5 (limite) / 0.1 (reservado)
- Memória: 128M (limite) / 32M (reservado)
- Reinicialização: On-failure (máximo 3 tentativas)
- Domínio: operaes.memudecore.com.br
- Traefik: HTTP (sem HTTPS configurado)
Rede: minha_rede (externa)
📚 2. Stack BookStack (Documentação)
Arquivo: bookstack-stack.yml
Função: Sistema de documentação e wiki da empresa
Serviços
🗄️ bookstack_db (Banco de Dados)
image: mariadb:11.2
- Banco: bookstackapp
- Usuário: bookstack
- Volume: bookstack_db:/var/lib/mysql
- Reinicialização: On-failure (3 tentativas)
⚡ bookstack_redis (Cache)
image: redis:7.2-alpine
- Porta: 6379
- Função: Cache e gerenciamento de sessões
- Reinicialização: On-failure (3 tentativas)
📖 bookstack (Aplicação Principal)
image: lscr.io/linuxserver/bookstack:24.05.4
Configurações:
- URL: https://docs.memudecore.com.br
- Cache: Redis integrado
- Volumes: Aplicação (/config) e dados persistentes
- Dependências: bookstack_db, bookstack_redis
- Traefik: HTTPS com certificado Let's Encrypt
- Reinicialização: On-failure (3 tentativas)
Redes: minha_rede, traefik_public (externas) Volumes: bookstack_app, bookstack_db (externos)
📱 3. Stack WAHA (WhatsApp API)
Arquivo: waha-stack.yml
Função: API para integração com WhatsApp
Serviços
💬 waha (WhatsApp API)
image: devlikeapro/waha:latest
Configurações:
- Porta: 3000
- Engine: NOWEB (otimizado para ARM64)
- Webhook: https://n8n.memudecore.com.br/webhook/waha
- Eventos: message, session.status, message.any
- Método: POST
- Domínio: waha.memudecore.com.br
Recursos:
- CPU: 1.0 (limite)
- Memória: 1GB (limite)
- Restrição: Apenas node manager do Swarm
Configurações Específicas:
- QR Code: Habilitado
- Log Level: info
- Sessões: Início manual (WHATSAPP_START_SESSION=false)
- Volume: waha_sessions:/app/.sessions
Rede: minha_rede (externa) Traefik: HTTPS com certificado Let's Encrypt
🏪 4. Stack Krayin CRM
Arquivo: krayin-setup/krayin-files/stack-persistent.yml
Função: Sistema CRM completo da empresa
Serviços
🏢 krayin (Aplicação CRM)
image: krayin-crm:arm64
Configurações:
- URL: https://crm.memudecore.com.br
- Ambiente: production
- Localização: pt_BR, America/Sao_Paulo
- Banco: MySQL (host: krayin_db)
- Cache/Session/Queue: Redis
Recursos:
- CPU: 2.0 (limite) / 0.5 (reservado)
- Memória: 1536M (limite) / 512M (reservado)
- Health Check: 30s interval
- Réplicas: 1 (estratégia start-first)
- Reinicialização: On-failure (5 tentativas)
Volumes Persistentes:
- storage, themes, cache, config
- providers, views, middleware, scripts
Traefik: HTTPS com cookie sticky Secrets: APP_KEY e credenciais de banco
🗄️ krayin_db (Banco de Dados)
image: mariadb:11.2
Configurações:
- Banco: krayin
- Health Check: 10s interval
- CPU: 1.5 (limite) / 0.25 (reservado)
- Memória: 1024M (limite) / 256M (reservado)
- Restrição: Apenas node manager
- Volume: krayin_db:/var/lib/mysql
- Secrets: Senhas root e usuário
⚡ krayin_redis (Cache e Fila)
image: redis:7.2-alpine
Configurações:
- Persistência: AOF ativada
- MaxMemory: 256MB (política LRU)
- Health Check: 10s interval
- CPU: 0.5 (limite) / 0.1 (reservado)
- Memória: 300M (limite) / 64M (reservado)
- Reinicialização: On-failure (5 tentativas)
Rede: minha_rede (externa) Volumes Múltiplos: Para persistência completa dos dados
🔧 Configurações Globais
Redes Utilizadas
- minha_rede (externa) - Rede principal compartilhada
- traefik_public (externa) - Rede para roteamento Traefik
Padrões de Configuração
🌐 Traefik (Reverse Proxy)
Todas as stacks utilizam Traefik para:
- Roteamento baseado em domínio
- Certificados SSL automatizados (Let's Encrypt)
- Load balancing
- Configurações de segurança
🔒 Segurança
- HTTPS: Obrigatório em produção
- Certificados: Let's Encrypt (renovação automática)
- Secrets: Utilizados no Krayin para credenciais sensíveis
- Health Checks: Implementados onde necessário
📊 Recursos e Performance
- CPU/Memória: Limitados por serviço
- Restart Policy: On-failure com limites de tentativas
- Placement Constraints: Node manager para serviços críticos
🚀 Guia de Referência Rápida
Comandos Úteis
Deploy de Stack
# Deploy individual
docker stack deploy -c waha-stack.yml waha
docker stack deploy -c bookstack-stack.yml bookstack
docker stack deploy -c Operaes/docker-stack.yml operaes
docker stack deploy -c krayin-setup/krayin-files/stack-persistent.yml krayin
# Lista todas as stacks
docker stack ls
# Serviços de uma stack
docker stack services <nome-da-stack>
Monitoramento
# Logs de um serviço
docker service logs <stack>_<service>
# Status dos containers
docker service ps <stack>_<service>
# Estatísticas de recursos
docker stats
Domínios e Portas
| Serviço | Domínio | Porta Interna | Acesso |
|---|---|---|---|
| Operações | operaes.memudecore.com.br | 80 | HTTP |
| BookStack | docs.memudecore.com.br | 80 | HTTPS |
| WAHA | waha.memudecore.com.br | 3000 | HTTPS |
| Krayin CRM | crm.memudecore.com.br | 80 | HTTPS |
Volumes Importantes
| Stack | Volume | Conteúdo |
|---|---|---|
| BookStack | bookstack_app, bookstack_db | Aplicação e dados |
| WAHA | waha_sessions | Sessões WhatsApp |
| Krayin | krayin_storage, krayin_db | Arquivos e banco |
📝 Notas e Observações
- Arquitetura ARM64: Especialmente WAHA e Krayin estão otimizados
- Docker Swarm: Todas as stacks estão configuradas para cluster
- Persistência: Dados críticos estão em volumes externos
- Monitoramento: Health checks implementados onde necessário
- Escalabilidade: Recursos definidos para crescimento futuro
Documento gerado automaticamente em: 2026-01-23 Fonte: Análise automatizada dos arquivos Docker Compose Manutenção: Atualizar sempre que houver mudanças nas stacks
No Comments