Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Arquitetura do Projeto

Visão geral da estrutura do workspace monorepo do LibreChat e dos limites dos pacotes.

Estrutura do Monorepo

O LibreChat é organizado como um monorepo com limites de workspace claramente definidos:

WorkspaceLanguageSideDependencyPurpose
/apiJS (legacy)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsServidor Express — minimize alterações aqui
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerNovo código de backend reside aqui (apenas TS, consumido pelo /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerModelos/schemas de banco de dados, compartilháveis entre projetos de backend
/packages/data-providerTypeScriptSharedTipos de API compartilhados, endpoints, data-service — usados tanto pelo frontend quanto pelo backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientSPA de frontend
/packages/clientTypeScriptFrontendpackages/data-providerUtilitários de frontend compartilhados

Princípios Fundamentais

  • Todo novo código de backend deve ser em TypeScript em /packages/api.
  • Mantenha as alterações em /api no mínimo absoluto — wrappers JS simples chamando /packages/api.
  • A lógica compartilhada específica do banco de dados pertence a /packages/data-schemas.
  • A lógica de API compartilhada entre frontend/backend (endpoints, types, data-service) pertence a /packages/data-provider.

Build e Instalação

ComandoObjetivo
npm run smart-reinstallInstala dependências (se o lockfile mudou) + compila via Turborepo
npm run reinstallInstalação limpa após alterar versões do Node/npm ou quando o estado das dependências estiver suspeito
npm run buildCompila todo o código via Turborepo (paralelo, em cache)
npm run frontendCompila todo o código sequencialmente (fallback legado)
npm run build:data-providerRecompila packages/data-provider após alterações
npm run backendInicia o servidor backend
npm run backend:devInicia o backend com monitoramento de arquivos (desenvolvimento)
npm run frontend:devInicia o servidor de desenvolvimento do frontend com HMR (porta 3090, requer o backend em execução)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Banco de dados: MongoDB
  • O backend roda em http://localhost:3080/; o servidor de desenvolvimento do frontend em http://localhost:3090/

Nota

Para o conjunto completo de padrões e convenções de codificação, veja Code Standards and Conventions.

Como está este guia?