Files
PDI-MAKER/SETUP_COMPLETO.md
Sergio Correa 0524656198 🚀 Initial commit - PDIMaker v1.0.0
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
2025-11-19 02:09:04 +00:00

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 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

{
  "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:

  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

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:

# 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

  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:

// 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