- docker-compose.yml: adiciona serviços `erpnext` (frappe/erpnext:version-15)
e `erpnext-db` (MariaDB 10.6) no perfil `erpnext`
Volumes: erpnext_db, erpnext_sites, erpnext_logs
Porta exposta: 8090 (→ :8080 interno)
- docker/erpnext/init.sh: script de inicialização que aguarda MariaDB,
cria o site `erpnext.local` com bench new-site, instala app erpnext
e sobe o servidor na porta 8080
- server/erpnext/proxy.ts: proxy transparente /erpnext-app/* → container
(ativo em DOCKER_MODE=true ou ERPNEXT_PROXY_ENABLED=true)
Reescreve Location headers, forward X-Forwarded-* e X-Site-Name
Endpoint: GET /api/erpnext/container-status
- server/soe/erpnext-rule-importer.ts: importa regras de negócio do ERPNext
(campos obrigatórios por DocType + Workflows ativos) e salva em soe_regras
13 DocTypes mapeados para triggers SOE correspondentes
Endpoint: POST /api/soe/erpnext/import-rules
- server/routes.ts: registra setupErpNextProxy e endpoint de import-rules
- .env.example: documenta variáveis para modo container e modo externo
Uso: docker compose --profile erpnext up
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
- Conecta Manus ao LiteLLM via AI_INTEGRATIONS_OPENAI_BASE_URL (era hardcoded para OpenAI)
- Adiciona OLLAMA_BASE_URL ao serviço litellm no docker-compose.prod.yml (fix crítico: sem isso o fallback para Ollama não funcionava)
- Adiciona DATABASE_URL ao litellm para logging/auditoria de chamadas LLM
- Open WebUI agora também aponta para LiteLLM (acesso a todos os modelos na interface)
- litellm-config.yaml: slot comentado para LLMFit (TIER 1), Ollama como padrão soberano (TIER 2), externos como opt-in (TIER 3)
- Adiciona modelo nomic-embed-text para embeddings locais via Ollama
- .env.example: documenta AI_INTEGRATIONS_*, LLMFIT_BASE_URL, providers externos opcionais
- arcadia-default agora aponta para llama3.3 (Ollama) por padrão — soberania total sem configuração adicional
Estratégia de soberania:
Dados NUNCA saem sem configuração explícita de API key externa.
LLMFit turbocharge: quando ativado, modelos fine-tuned têm prioridade sobre Ollama.
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
Infraestrutura Docker:
- Dockerfile multi-stage para app Node.js
- Dockerfile.python genérico para todos os microserviços Python
- docker-compose.yml para desenvolvimento local (com perfis: bi, ai)
- docker-compose.prod.yml para deploy no Coolify com Traefik
- docker/init-pgvector.sql — instala extensão vector no PostgreSQL
- docker/python-entrypoint.sh — seleciona serviço pelo SERVICE_NAME
- docker/litellm-config.yaml — proxy LLM com fallback OpenAI → Ollama
- .env.example com todas as variáveis documentadas
Soberania de IA:
- Ollama + Open WebUI como perfil 'ai' no docker-compose
- LiteLLM como proxy unificado (OpenAI ↔ Ollama com fallback automático)
Knowledge Graph (rotas faltantes implementadas):
- server/graph/routes.ts — CRUD completo de nodes, edges, knowledge base + busca semântica
- server/graph/service.ts — camada de serviço com indexação automática de embeddings
- server/python/embeddings_service.py — FastAPI com pgvector para busca vetorial
Correções de infraestrutura:
- server/index.ts — DOCKER_MODE=true desativa spawn de processos filhos
- server/routes.ts — registra /api/graph/* no Express
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb