Monorepo e submódulos

Estrutura de diretórios

.
├── evo-auth-service-community/        # submodule: autenticação
├── evo-ai-crm-community/              # submodule: API principal
├── evo-ai-frontend-community/         # submodule: UI web
├── evo-ai-processor-community/        # submodule: processamento IA/MCP
├── evo-ai-core-service-community/     # submodule: gerenciamento de agentes
├── evo-bot-runtime/                   # submodule: runtime de bots
├── evolution-api/, evolution-go/      # integrações externas (WhatsApp)
├── nginx/                             # API Gateway de produção (fora do compose raiz)
├── docker-compose.yml                 # orquestração principal
├── Makefile                           # comandos do monorepo
└── docs/                              # documentação (sessões, bugs, ADRs, Sphinx)

Clonando e atualizando

git clone --recurse-submodules <repo>
git submodule update --init --recursive   # se já clonado sem --recurse-submodules
git submodule update --remote --merge     # atualizar todos para o mais recente

Importante

Commits dentro de um submodule não atualizam o superprojeto automaticamente. Após alterar um submodule: git add <submodule> e git commit no repositório raiz.

Comandos do Makefile (raiz)

make help          # lista todos os comandos
make setup         # instala tudo
make start / stop  # sobe/derruba containers
make seed          # seed geral
make seed-auth / make seed-crm   # seed por serviço
make shell-<serviço>              # shell dentro do container

Nota

make up/make down/make test/make lint aparecem em versões antigas do AGENTS.md, mas os targets reais são start/stop; test/lint não existem como targets do Makefile raiz — usar os comandos por serviço documentados em cada página de arquitetura.

Ordem de seed

evo-auth-service-community precisa ser semeado antes de evo-ai-crm-community — o CRM depende do usuário criado pelo seed do Auth.