# Desenvolvimento Local Guia para rodar o projeto localmente conectando aos dados de producao. ## Pre-requisitos - [Bun](https://bun.sh/) 1.3+ - [Docker](https://www.docker.com/) (para PostgreSQL) - Node.js 20+ (opcional, usado pelo tsx) ## 1. Subir o PostgreSQL O sistema usa PostgreSQL para autenticacao (Better Auth). Os dados de tickets ficam no Convex. ```bash docker run -d \ --name postgres-chamados \ -p 5432:5432 \ -e POSTGRES_PASSWORD=dev \ -e POSTGRES_DB=sistema_chamados \ postgres:18 ``` Para verificar se esta rodando: ```bash docker ps | grep postgres-chamados ``` Para parar/iniciar posteriormente: ```bash docker stop postgres-chamados docker start postgres-chamados ``` ## 2. Configurar variaveis de ambiente O arquivo `.env.local` ja vem configurado para desenvolvimento local apontando para o Convex de producao: ```env NODE_ENV=development # URLs locais NEXT_PUBLIC_APP_URL=http://localhost:3000 BETTER_AUTH_URL=http://localhost:3000 # Convex de producao (dados reais) NEXT_PUBLIC_CONVEX_URL=https://convex.esdrasrenan.com.br CONVEX_INTERNAL_URL=https://convex.esdrasrenan.com.br # PostgreSQL local (apenas autenticacao) DATABASE_URL=postgresql://postgres:dev@localhost:5432/sistema_chamados ``` ## 3. Instalar dependencias ```bash bun install ``` ## 4. Gerar cliente Prisma e aplicar schema ```bash bun run prisma:generate bunx prisma db push ``` ## 5. Criar usuarios de desenvolvimento O seed cria usuarios locais para autenticacao: ```bash DATABASE_URL="postgresql://postgres:dev@localhost:5432/sistema_chamados" bun tsx scripts/seed-auth.mjs ``` ### Credenciais padrao | Usuario | Email | Senha | Role | |---------------|----------------------|------------|-------| | Administrador | `admin@sistema.dev` | `admin123` | admin | | Agentes | `*@rever.com.br` | `agent123` | agent | ## 6. Iniciar o servidor de desenvolvimento ```bash bun run dev:bun ``` Acesse: http://localhost:3000 ## Arquitetura Local vs Producao ``` ┌─────────────────────────────────────────────────────────────┐ │ DESENVOLVIMENTO LOCAL │ ├─────────────────────────────────────────────────────────────┤ │ │ │ localhost:3000 (Next.js) │ │ │ │ │ ├──► PostgreSQL local (porta 5432) │ │ │ └── Autenticacao (Better Auth) │ │ │ └── Usuarios, sessoes, contas │ │ │ │ │ └──► convex.esdrasrenan.com.br (remoto) │ │ └── Dados de producao │ │ └── Tickets, empresas, filas, etc. │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ## Comandos uteis | Comando | Descricao | |---------|-----------| | `bun run dev:bun` | Inicia servidor de desenvolvimento com Turbopack | | `bun run build:bun` | Build de producao | | `bun run lint` | Verificar codigo com ESLint | | `bun test` | Rodar testes | | `bunx prisma studio` | Interface visual do banco de dados | ## Solucao de problemas ### Erro de conexao com PostgreSQL ``` Error: P1001: Can't reach database server at localhost:5432 ``` **Solucao:** Verifique se o container Docker esta rodando: ```bash docker start postgres-chamados ``` ### Erro de migracao (tipo DATETIME) Se aparecer erro sobre tipo `DATETIME` ao rodar migrations, use `db push` em vez de `migrate`: ```bash bunx prisma db push --accept-data-loss ``` ### Usuario nao consegue logar Os usuarios de autenticacao ficam no PostgreSQL local, nao no Convex. Rode o seed novamente: ```bash DATABASE_URL="postgresql://postgres:dev@localhost:5432/sistema_chamados" bun tsx scripts/seed-auth.mjs ``` ### Limpar banco e recriar ```bash docker stop postgres-chamados docker rm postgres-chamados docker run -d --name postgres-chamados -p 5432:5432 -e POSTGRES_PASSWORD=dev -e POSTGRES_DB=sistema_chamados postgres:18 bunx prisma db push DATABASE_URL="postgresql://postgres:dev@localhost:5432/sistema_chamados" bun tsx scripts/seed-auth.mjs ``` ## Proximos passos - Para deploy em producao, consulte `docs/OPERACAO-PRODUCAO.md` - Para configuracao de SMTP, consulte `docs/SMTP.md` - Para testes automatizados, consulte `docs/testes-vitest.md`