Instalação
Instalação
Seção intitulada “Instalação”Este é o guia de configuração completo. Para uma configuração mínima de 5 minutos, veja Quickstart.
Requisitos do Sistema
Seção intitulada “Requisitos do Sistema”| Requisito | Versão | Observações |
|---|---|---|
| Node.js | 20+ | LTS recomendado. Verifique: node -v |
| npm | 10+ | Incluído no Node 20 |
| Git | 2.x+ | Com Git LFS para arquivos de dados grandes |
| Ferramentas de build C++ | — | Necessário para compilação nativa do better-sqlite3 |
| Docker | — | Opcional, apenas para Neo4j local |
Configuração Passo a Passo
Seção intitulada “Configuração Passo a Passo”1. Clonar o Repositório
Seção intitulada “1. Clonar o Repositório”git clone https://github.com/sensdiego/juca.gitcd jucaSe o repositório usa Git LFS para arquivos de dados, execute também:
git lfs installgit lfs pull2. Instalar Dependências
Seção intitulada “2. Instalar Dependências”npm installIsso instala ~670 pacotes, incluindo o módulo nativo better-sqlite3. Se a compilação falhar:
- macOS:
xcode-select --install - Linux (Debian/Ubuntu):
sudo apt-get install build-essential python3 - Linux (RHEL/Fedora):
sudo dnf groupinstall "Development Tools"
3. Configuração do Ambiente
Seção intitulada “3. Configuração do Ambiente”Copie o arquivo de exemplo e preencha seus valores:
cp .env.example .env.localVariáveis obrigatórias (mínimo):
# Provedores de LLM — pelo menos Anthropic + GroqANTHROPIC_API_KEY=sk-ant-...GROQ_API_KEY=gsk_...
# Bypass de autenticação em devENABLE_DEV_AUTH=trueOpcionais mas recomendadas:
# Integração com o Valter (o backend principal)VALTER_API_URL=https://valter-api-production.up.railway.appVALTER_API_KEY=your-key
# Provedores de LLM adicionaisOPENAI_API_KEY=sk-...GEMINI_API_KEY=...DEEPSEEK_API_KEY=sk-...
# Grafo de Conhecimento (modo JSON por padrão)KG_PROVIDER=jsonVeja Variáveis de Ambiente para a referência completa das 30+ variáveis.
4. Neo4j Local (Opcional)
Seção intitulada “4. Neo4j Local (Opcional)”Se quiser usar o grafo de conhecimento Neo4j localmente em vez de arquivos JSON:
docker compose up -dIsso inicia uma instância do Neo4j Community 5. Em seguida, configure:
KG_PROVIDER=neo4jNEO4J_URI=bolt://localhost:7687NEO4J_USERNAME=neo4jNEO4J_PASSWORD=password5. Git Hooks
Seção intitulada “5. Git Hooks”O projeto usa git hooks customizados em .githooks/:
| Hook | Ação |
|---|---|
pre-commit | Roda o ESLint nos arquivos em stage |
pre-push | Roda a suíte de testes completa |
post-checkout | Tarefas de manutenção |
post-commit | Tarefas de manutenção |
post-merge | Tarefas de manutenção |
Os hooks são configurados automaticamente via o script prepare no package.json:
npm run prepare # Executa: git config core.hooksPath .githooks6. Verificar a Instalação
Seção intitulada “6. Verificar a Instalação”# Iniciar o servidor de devnpm run dev
# Em outro terminal, rodar os testesnpm testResultados esperados:
- Servidor de dev inicia em
http://localhost:3000sem erros - Testes são executados (alguns podem falhar devido ao problema conhecido #270)
Configuração com Docker (Produção)
Seção intitulada “Configuração com Docker (Produção)”O Juca usa um build Docker multi-stage para deploy em produção:
# Build da imagem (ATENÇÃO: apenas para CI/Railway — NÃO rode localmente)docker build -t juca .O Dockerfile:
- Estágio deps — Instala as dependências npm
- Estágio build — Roda
next buildcom saída standalone - Estágio runtime — Imagem mínima de Node.js com apenas os artefatos de produção
O deploy no Railway acontece automaticamente ao fazer push para main.
Solução de Problemas
Seção intitulada “Solução de Problemas”| Problema | Solução |
|---|---|
Falha na compilação do better-sqlite3 | Instale as ferramentas de build C++ (veja o passo 2) |
| Arquivos Git LFS aparecem como ponteiros | Execute git lfs pull |
| Erros de autenticação em todas as páginas | Defina ENABLE_DEV_AUTH=true no .env.local |
| ”No API key configured” | Adicione no mínimo ANTHROPIC_API_KEY e GROQ_API_KEY |
Para outros problemas, veja Solução de Problemas.