Files
SeConectai_Web/Schema/12-deploy-producao.md

1.9 KiB
Raw Permalink Blame History

12 — Deploy em produção

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.

Pré-requisito

Etapas 01–11 concluídas.

Tarefa

  1. docker-compose.prod.yml: app (imagem standalone), Postgres 16 com volume, volume de uploads, restart unless-stopped, sem portas do banco expostas, variáveis só por .env do servidor.
  2. Proxy reverso com HTTPS (Caddy ou Nginx + Let's Encrypt) para o domínio escolhido; redirecionar HTTP → HTTPS.
  3. Comando de release: prisma migrate deploy + seed idempotente (que não sobrescreve nada do cliente).
  4. Healthcheck /api/health (app + banco) e política de reinício.
  5. Documentar em README.md: variáveis de ambiente, como subir, como rodar backup/restauração, como criar o admin, como atualizar.
  6. Conferir e-mail (SPF/DKIM do remetente) para os e-mails não caírem em spam.

Critérios de aceite

  • Sistema acessível por HTTPS no domínio, cadastro → briefing → envio funcionando de ponta a ponta em produção.
  • Banco e uploads persistem após docker compose down && up.
  • Porta do Postgres não acessível externamente.

Atualize 99-progresso.md (12) e marque o projeto como concluído.