Orquestração do Monorepo
Uma referência abrangente para desenvolvedores gerenciarem o monorepo Elo Orgânico, infraestrutura e automação.
Executando a Plataforma
Utilizamos o Turborepo e o Docker Compose para orquestrar as aplicações e suas respectivas infraestruturas locais (banco de dados e cache) em scripts unificados.
- Instância de Comunidade
- Portal Global
- Documentação
- Iniciar Stack de Desenvolvimento:
pnpm instance:dev(Inicia bancos locais no Docker e executa Web e API no host) - Parar & Liberar Portas:
pnpm instance:down(Para os containers e libera as portas 3000 e 5173) - Resetar Infraestrutura:
pnpm instance:reset(Para, apaga os volumes do MongoDB/Redis e reconstrói os containers)
- Iniciar Stack de Desenvolvimento:
pnpm portal:dev(Inicia bancos locais no Docker e executa Web e API no host) - Parar & Liberar Portas:
pnpm portal:down(Para os containers e libera as portas 3001 e 5174) - Resetar Infraestrutura:
pnpm portal:reset(Para, apaga os volumes do MongoDB/Redis e reconstrói os containers)
- Iniciar Servidor de Desenvolvimento:
pnpm docs:dev(Inicia o servidor local do Docusaurus na porta 3002) - Build da Documentação:
pnpm docs:build(Compila os arquivos estáticos do Docusaurus)
Infraestrutura (Docker)
O projeto utiliza dois arquivos Compose por contexto delimitado, com responsabilidades estritamente separadas.
Infraestrutura de Desenvolvimento (compose.dev.yaml)
Inicia apenas os serviços de infraestrutura local. As aplicações rodam diretamente no host via pnpm *:dev.
| Escopo | Comando | Descrição |
|---|---|---|
| Instância | pnpm instance:up | Inicia o MongoDB (Replica Set) e o Redis para a Instância. |
| Instância | pnpm instance:down | Para os containers da Instância e libera as portas 3000 e 5173. |
| Instância | pnpm instance:reset | Remove volumes e reinicia a infraestrutura da Instância. |
| Portal | pnpm portal:up | Inicia o MongoDB (Replica Set) e o Redis para o Portal. |
| Portal | pnpm portal:down | Para os containers do Portal e libera as portas 3001 e 5174. |
| Portal | pnpm portal:reset | Remove volumes e reinicia a infraestrutura do Portal. |
Stack de Produção e Staging (compose.prod.yaml)
Compila e implanta a stack de aplicação completa (API + Web/Nginx + Redis). Sem MongoDB local — a produção conecta-se ao MongoDB Atlas. Produção e staging compartilham o mesmo arquivo Compose; apenas o arquivo --env-file difere.
| Escopo | Comando | Descrição |
|---|---|---|
| Instância | pnpm instance:prod | Compila e inicia a stack da Instância com .env.prod. |
| Instância | pnpm instance:staging | Mesma stack com .env.staging (cluster staging do Atlas). |
| Instância | pnpm instance:prod:down | Para a stack de produção/staging da Instância. |
| Portal | pnpm portal:prod | Compila e inicia a stack do Portal com .env.prod. |
| Portal | pnpm portal:staging | Mesma stack com .env.staging. |
| Portal | pnpm portal:prod:down | Para a stack de produção/staging do Portal. |
Gestão de Workspace
Lidando com dependências internas, catálogos, checagens de compilação e linting.
Orquestração Global (Turborepo)
Estes comandos são executados em paralelo em todas as workspaces ativas do monorepo usando as configurações definidas no turbo.json:
- Validar Tipagem de Todo o Projeto (Typecheck):
pnpm typecheck(Executaturbo run typecheckem paralelo) - Lint de Todo o Projeto:
pnpm lint(Executaturbo run lintem paralelo) - Limpar pastas node_modules:
pnpm clean(Executa onpkillpara recuperar armazenamento) - Adicionar Dependência ao Catálogo:
pnpm add <package> --catalog - Adicionar Dependência a App Específica:
pnpm add <package>@catalog: --filter <package-name>
Validações Específicas por Workspace
Execute typecheck ou linter apenas para um contexto delimitado do monorepo:
| Contexto | Comando de Typecheck | Comando de Lint |
|---|---|---|
| Instância | pnpm instance:typecheck | pnpm instance:lint |
| Portal | pnpm portal:typecheck | pnpm portal:lint |
| Studio | pnpm studio:typecheck | pnpm studio:lint |
| Tools | pnpm tools:typecheck | pnpm tools:lint |
Utilizamos o eslint-plugin-prettier para integrar as regras de formatação do Prettier diretamente no ESLint para arquivos .ts, .tsx, .js e .jsx. Executar qualquer um dos comandos de lint acima irá validar a qualidade do código e formatar os arquivos em um único passo. O uso direto do CLI do prettier é reservado apenas para arquivos de configuração e documentação (.json, .yaml, .md e .mdx).
IA & Studio (MCP)
Orquestrando o Model Context Protocol e a ponte de design.
- Penpot Studio:
pnpm penpot:up/pnpm penpot:down - Aide AI Bridge:
pnpm penpot:aide:up/pnpm penpot:aide:down - Busca Context7: (Via Agente de IA) Pesquisa profunda em documentação técnica.
Pipelines de Build
- Build Completo:
pnpm build - Build Core (Instância):
pnpm --filter @elo-instance/core build - Build Core (Portal):
pnpm --filter @elo-portal/core build
Última Atualização: Junho de 2026