Sistema completo de gestão de PDI com: - Autenticação com email/senha e Google OAuth - Workspaces privados isolados - Sistema de convites com código único - Interface profissional com Next.js 14 - Backend NestJS com PostgreSQL - Docker com Nginx e SSL Desenvolvido por Sergio Correa
5.3 KiB
5.3 KiB
✅ 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 OAuthfrontend/lib/prisma.ts- Cliente Prismafrontend/app/api/auth/[...nextauth]/route.ts- Rotas de autenticação
3. Páginas
frontend/app/login/page.tsx- Página de login com Googlefrontend/app/unauthorized/page.tsx- Página de acesso negadofrontend/components/SessionProvider.tsx- Provider de sessão
4. Dependências Instaladas
{
"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:
# 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:
- Acesse: https://console.cloud.google.com/
- Crie um novo projeto ou selecione um existente
- Vá em "APIs e Serviços" > "Credenciais"
- Clique em "Criar Credenciais" > "ID do cliente OAuth"
- Configure:
- Tipo: Aplicativo da Web
- URIs de redirecionamento autorizados:
https://pdimaker.com.br/api/auth/callback/googlehttp://localhost:3300/api/auth/callback/google(desenvolvimento)
- 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
- Acesse: http://localhost:80/login
- Clique em "Entrar com Google"
- Faça login com sua conta Google
- Será redirecionado para a home page autenticado
📊 Banco de Dados
Migrations do Prisma
Para aplicar as migrations do banco:
# 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
docker exec -it pdimaker-db psql -U postgres -d pdimaker_prod
🔍 Verificar Logs
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
# 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
- Configurar Google OAuth (obrigatório para login funcionar)
- Aplicar migrations do Prisma no banco
- Configurar SSL para HTTPS (certificados em
/var/www/pdimaker/ssl/) - Criar usuário admin inicial no banco
- Implementar páginas do dashboard em
frontend/app/(dashboard)/
🎯 Estrutura do Middleware
O middleware implementado protege:
// 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
- Vulnerabilidades no npm: Execute
npm audit fixno container - OpenSSL warning: Não afeta o funcionamento, mas considere atualizar a imagem base
- 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:
- Verifique os logs dos containers
- Confirme que todas as variáveis de ambiente estão configuradas
- Teste a conexão com o banco de dados
- Verifique se o Google OAuth está configurado corretamente
Data de Setup: 19 de Novembro de 2025 Versão: 1.0.0