Files
SeConectai_Web/Schema/01-setup-projeto-docker.md
T

2.3 KiB

01 — Setup do projeto e Docker

Contexto do projeto (leia sempre)

Sistema web "Briefing de Site" da SeConectai: o cliente se cadastra e depois preenche o briefing de criação do site, com um botão Ajuda em cada pergunta que abre um popup com o texto do guia auxiliar. O dono (Tiago) acompanha tudo por um painel admin. Stack fixa: Next.js 14+ (App Router) + TypeScript, PostgreSQL 16, Prisma, Tailwind + shadcn/ui, React Hook Form + Zod, Auth.js v5 (Credentials, estratégia JWT), Docker Compose. Idioma da interface: pt-BR. Regras gerais: leia 00-arquitetura-briefing-site.md e 99-progresso.md antes de começar; não avance se a etapa anterior estiver incompleta; ao terminar, devolva o 99-progresso.md atualizado. Não invente dependências fora da stack. Nada de senhas de clientes em lugar nenhum.

Tarefa

  1. Criar projeto Next.js 14+ com TypeScript, App Router, Tailwind e ESLint (src opcional — siga a estrutura do doc 00).
  2. Instalar: prisma @prisma/client zod react-hook-form @hookform/resolvers next-auth@beta @auth/core argon2 nodemailer @tanstack/react-query lucide-react, e iniciar shadcn/ui (componentes: button, input, textarea, label, checkbox, radio-group, dialog, form, card, progress, badge, table, select, sonner, tabs, alert).
  3. Criar docker-compose.yml com app (Node 20) e db (postgres:16, volume nomeado pgdata), healthcheck no db, rede interna. Volume uploads montado em /app/storage/uploads.
  4. Criar Dockerfile multi-stage (deps → build → runner, output: "standalone").
  5. .env.example com: DATABASE_URL, AUTH_SECRET, APP_URL, CPF_ENC_KEY (32 bytes base64), CPF_HASH_KEY, SMTP_HOST/PORT/USER/PASS/FROM, ADMIN_EMAIL, ADMIN_INITIAL_PASSWORD, EVOLUTION_API_URL/KEY/INSTANCE e ADMIN_WHATSAPP (opcionais), UPLOAD_DIR, UPLOAD_MAX_MB=25.
  6. Layout base pt-BR (<html lang="pt-BR">), tema simples e responsivo (mobile primeiro: clientes vão preencher pelo celular).
  7. Script npm run dev, build, db:migrate, db:seed, lint.

Critérios de aceite

  • docker compose up sobe app + banco sem erro; página inicial abre em http://localhost:3000.
  • .env.example completo; .env no .gitignore.
  • npm run lint e npm run build passam.
  • Nenhuma dependência fora da stack.

Ao final, atualize 99-progresso.md (marque 01).