Instalação
Instalação
Seção intitulada “Instalação”Esta página descreve o processo completo de instalação para ambientes reproduzíveis, com foco em previsibilidade operacional.
Instalação boa é reproduzível, não apenas rápida
Seção intitulada “Instalação boa é reproduzível, não apenas rápida”Uma instalação realmente válida não é só “subiu uma vez”; ela precisa ser repetível entre desenvolvedores e contextos de validação. Este guia padroniza versões, variáveis de ambiente, comportamento de migrations e checks de validação.
Requisitos de sistema definidos por runtime e tooling
Seção intitulada “Requisitos de sistema definidos por runtime e tooling”Atualmente o Leci exige:
- Node.js
>=20.0.0 - npm
>=10.0.0 - instância PostgreSQL acessível via
DATABASE_URL
Comandos recomendados de verificação:
node -vnpm -vSe você usa nvm, o repositório inclui:
cat .nvmrc# esperado: 20Variáveis de ambiente necessárias para banco e workflows
Seção intitulada “Variáveis de ambiente necessárias para banco e workflows”O projeto possui .env.example com as variáveis reconhecidas hoje:
DATABASE_URL=DISCORD_PR_REVIEW_WEBHOOK=Propósito e uso das variáveis
Seção intitulada “Propósito e uso das variáveis”DATABASE_URLé obrigatória para migrations locais e tooling Drizzle.DISCORD_PR_REVIEW_WEBHOOKé usada no GitHub Actions e é opcional em desenvolvimento local.
Fluxo padrão de instalação local
Seção intitulada “Fluxo padrão de instalação local”Use este fluxo em máquina de desenvolvimento.
# Clonar e entrar no repositóriogit clone https://github.com/sensdiego/leci.gitcd leci
# Garantir versão correta de Node (se usar nvm)nvm use || nvm install
# Instalar dependênciasnpm install
# Preparar ambientecp .env.example .env
# Editar .env e definir DATABASE_URL
# Rodar migrationsnpx tsx scripts/migrate.ts
# Rodar validações básicasnpm run lintnpm test
# Iniciar appnpm run devInternals de migration e implicações operacionais
Seção intitulada “Internals de migration e implicações operacionais”O fluxo de migration atual é baseado em arquivos SQL e deliberadamente simples.
Como a ordem das migrations é definida
Seção intitulada “Como a ordem das migrations é definida”script/migrate.ts ordena os arquivos por prefixo numérico (0001_, 0002_, etc.) antes de executar.
Como a execução ocorre
Seção intitulada “Como a execução ocorre”Para cada SQL na ordem, o script:
- lê o conteúdo do arquivo;
- executa no PostgreSQL configurado;
- imprime
Applied <filename>em sucesso.
Perfil de segurança atual
Seção intitulada “Perfil de segurança atual”A migration inicial (drizzle/0001_init.sql) usa, em sua maioria, DDL idempotente (IF NOT EXISTS) e seed com ON CONFLICT DO NOTHING.
Modo de instalação: validação estilo CI
Seção intitulada “Modo de instalação: validação estilo CI”Use este modo para simular pipeline antes de abrir PR.
npm cicp .env.example .env# definir DATABASE_URL para ambiente de validaçãonpx tsx scripts/migrate.tsnpm run lintnpm testnpm run buildPor que este modo importa:
npm cidetecta drift de lockfile;builddetecta erros de compilação que podem passar nodev.
Modo de instalação: smoke production-like
Seção intitulada “Modo de instalação: smoke production-like”Este modo valida ciclo de artefato localmente.
npm cicp .env.example .env# definir DATABASE_URLnpx tsx scripts/migrate.tsnpm run buildnpm run startResultado esperado:
- servidor inicia sem erro;
- homepage responde;
- metadata/título refletem branding Leci.
Checklist determinístico de validação
Seção intitulada “Checklist determinístico de validação”Use este checklist para confirmar qualidade da instalação.
- Node e npm compatíveis com
engines. - Dependências instaladas sem conflito de lockfile.
-
.envcriado eDATABASE_URLválido. - Migration finaliza com log de arquivos aplicados.
-
npm run lintpassa. -
npm testexecuta com sucesso. -
npm run buildconclui sem erro. -
npm run devserve a homepage na porta 3000.
Procedimento de upgrade e reinstalação limpa
Seção intitulada “Procedimento de upgrade e reinstalação limpa”Use este fluxo ao trocar de branch, resolver drift de dependência ou recomeçar ambiente.
# Limpeza opcionalrm -rf node_modules
# Reinstalar dependênciasnpm ci
# Revalidar variáveis de ambientecp .env.example .env # se necessário
# Reaplicar migrationsnpx tsx scripts/migrate.ts
# Reexecutar checksnpm run lintnpm testnpm run build🚧 Planned Feature — Grupos de endpoints internos de API estão definidos no roadmap, mas ainda não existem em
src/app/api.
🚧 Planned Feature — Pipeline de ingestão de fontes legais é trilha de roadmap e ainda não faz parte do runtime atual.
Pontos ainda dependentes de confirmação do dono
Seção intitulada “Pontos ainda dependentes de confirmação do dono”Alguns detalhes de instalação/operação precisam de decisão explícita do owner.
⚠️ Unverified — Topologia oficial de deploy em produção e plataforma definitiva de gestão de segredos além do contexto atual do repositório.