Skip to main content

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

  1. Arquitetura ARM64: Especialmente WAHA e Krayin estão otimizados
  2. Docker Swarm: Todas as stacks estão configuradas para cluster
  3. Persistência: Dados críticos estão em volumes externos
  4. Monitoramento: Health checks implementados onde necessário
  5. 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