# āœ… PDIMaker - Setup Completo ## šŸŽ‰ Status da Aplicação **TODOS OS SERVIƇOS ESTƃO RODANDO!** ``` āœ… PostgreSQL (pdimaker-db) - Porta 5432 āœ… Redis (pdimaker-redis) - Porta 6379 āœ… Backend API (pdimaker-api) - Porta 4000 āœ… Frontend Web (pdimaker-web) - Porta 3300 āœ… Nginx (pdimaker-nginx) - Portas 80 e 443 ``` --- ## šŸ“ Arquivos Criados ### 1. **Middleware de Autenticação** - `frontend/middleware.ts` - Proteção de rotas e autenticação ### 2. **Configuração de Autenticação** - `frontend/lib/auth/config.ts` - NextAuth com Google OAuth - `frontend/lib/prisma.ts` - Cliente Prisma - `frontend/app/api/auth/[...nextauth]/route.ts` - Rotas de autenticação ### 3. **PĆ”ginas** - `frontend/app/login/page.tsx` - PĆ”gina de login com Google - `frontend/app/unauthorized/page.tsx` - PĆ”gina de acesso negado - `frontend/components/SessionProvider.tsx` - Provider de sessĆ£o ### 4. **DependĆŖncias Instaladas** ```json { "next-auth": "^4.24.5", "@auth/prisma-adapter": "^1.4.0", "@prisma/client": "^5.8.0" } ``` --- ## šŸ”§ Configuração NecessĆ”ria ### 1. VariĆ”veis de Ambiente (.env) VocĆŖ precisa configurar o arquivo `.env` na raiz do projeto com: ```bash # Banco de Dados DB_PASSWORD=sua_senha_aqui DATABASE_URL=postgresql://postgres:sua_senha@postgres:5432/pdimaker_prod # Redis REDIS_PASSWORD=sua_senha_redis # JWT e Autenticação JWT_SECRET=seu_jwt_secret_seguro NEXTAUTH_SECRET=seu_nextauth_secret_seguro NEXTAUTH_URL=https://pdimaker.com.br # Google OAuth (IMPORTANTE!) GOOGLE_CLIENT_ID=seu_google_client_id_aqui GOOGLE_CLIENT_SECRET=seu_google_client_secret_aqui # URLs FRONTEND_URL=https://pdimaker.com.br NEXT_PUBLIC_API_URL=https://api.pdimaker.com.br ``` ### 2. Configurar Google OAuth Para configurar o Google OAuth: 1. Acesse: https://console.cloud.google.com/ 2. Crie um novo projeto ou selecione um existente 3. VĆ” em "APIs e ServiƧos" > "Credenciais" 4. Clique em "Criar Credenciais" > "ID do cliente OAuth" 5. Configure: - Tipo: Aplicativo da Web - URIs de redirecionamento autorizados: - `https://pdimaker.com.br/api/auth/callback/google` - `http://localhost:3300/api/auth/callback/google` (desenvolvimento) 6. Copie o Client ID e Client Secret para o `.env` --- ## šŸš€ Como Usar ### Acessar a Aplicação - **Frontend**: http://seu-dominio.com ou http://localhost:80 - **API**: http://api.seu-dominio.com ou http://localhost:4000 - **Frontend Direto**: http://localhost:3300 ### Rotas Protegidas O middleware protege automaticamente: - āœ… Rotas pĆŗblicas: `/`, `/login`, `/about`, `/api/auth` - šŸ”’ Todas as outras rotas requerem autenticação - šŸ” Rotas `/workspace/[slug]` verificam permissĆ£o do usuĆ”rio ### Testar Autenticação 1. Acesse: http://localhost:80/login 2. Clique em "Entrar com Google" 3. FaƧa login com sua conta Google 4. SerĆ” redirecionado para a home page autenticado --- ## šŸ“Š Banco de Dados ### Migrations do Prisma Para aplicar as migrations do banco: ```bash # Frontend cd /var/www/pdimaker/frontend docker exec pdimaker-web npx prisma db push # Backend cd /var/www/pdimaker/backend docker exec pdimaker-api npx prisma db push ``` ### Acessar o Banco ```bash docker exec -it pdimaker-db psql -U postgres -d pdimaker_prod ``` --- ## šŸ” Verificar Logs ```bash cd /var/www/pdimaker # Todos os serviƧos docker-compose logs -f # ServiƧo especĆ­fico docker-compose logs -f frontend docker-compose logs -f backend docker-compose logs -f nginx ``` --- ## šŸ› ļø Comandos Úteis ```bash # Ver status dos containers docker-compose ps # Reiniciar um serviƧo docker-compose restart frontend docker-compose restart backend docker-compose restart nginx # Parar todos os serviƧos docker-compose down # Iniciar todos os serviƧos docker-compose up -d # Rebuild e restart completo docker-compose down docker-compose build docker-compose up -d ``` --- ## šŸ“ Próximos Passos 1. **Configurar Google OAuth** (obrigatório para login funcionar) 2. **Aplicar migrations** do Prisma no banco 3. **Configurar SSL** para HTTPS (certificados em `/var/www/pdimaker/ssl/`) 4. **Criar usuĆ”rio admin** inicial no banco 5. **Implementar pĆ”ginas do dashboard** em `frontend/app/(dashboard)/` --- ## šŸŽÆ Estrutura do Middleware O middleware implementado protege: ```typescript // Rotas pĆŗblicas (nĆ£o requerem autenticação) ["/", "/login", "/about", "/api/auth"] // Rotas protegidas (requerem autenticação) Todas as outras rotas // Rotas com verificação de permissĆ£o /workspace/[slug] - Verifica se usuĆ”rio tem acesso ao workspace ``` --- ## āš ļø Problemas Conhecidos 1. **Vulnerabilidades no npm**: Execute `npm audit fix` no container 2. **OpenSSL warning**: NĆ£o afeta o funcionamento, mas considere atualizar a imagem base 3. **Google OAuth nĆ£o configurado**: O login nĆ£o funcionarĆ” atĆ© configurar --- ## šŸ’” Dicas - Use o Prisma Studio para visualizar dados: `npx prisma studio` - Configure variĆ”veis de ambiente de desenvolvimento no `.env.local` - Logs em tempo real: `docker-compose logs -f --tail=100` - O middleware roda no Edge Runtime do Next.js (mais rĆ”pido) --- ## šŸ“ž Suporte Se tiver problemas: 1. Verifique os logs dos containers 2. Confirme que todas as variĆ”veis de ambiente estĆ£o configuradas 3. Teste a conexĆ£o com o banco de dados 4. Verifique se o Google OAuth estĆ” configurado corretamente --- **Data de Setup**: 19 de Novembro de 2025 **VersĆ£o**: 1.0.0