Visão geral — implantação¶
Usa esta página como ordem de leitura para montar produção. Cada secção liga ao guia detalhado.
1. Utilizador Unix e permissões¶
Antes do deploy automático funcionar de ponta a ponta, o utilizador coaching (ou equivalente) precisa de permissões para git, npm, Prisma, MkDocs e, opcionalmente, sudo sem palavra-passe para deploy/cron/install.sh.
Permissões do utilizador (deploy)
2. Runtime da aplicação — Node.js e PM2¶
O PM2 deve correr next start com Node ≥ 22 no PATH (padrão do repositório: 24, ver .nvmrc) — unidades systemd costumam precisar de PATH / interpreter explícitos.
3. Reverse proxy — Nginx¶
TLS, proxy para 127.0.0.1:3000, e bloco com timeouts longos para POST /api/admin/deploy (SSE).
4. Tarefas agendadas — timer systemd¶
Instala coaching-cron-tick.timer para POST /api/cron/tick correr em horário. Exige /etc/coaching/cron.env (BASE_URL, CRON_SECRET).
5. Este site de documentação¶
O build fica em documentation/site/. Aponta docs.diasantos.com para essa pasta (Certbot + nginx).
Deploy pela aplicação
O botão Deploy na app corre git pull, install, Prisma, build Next, script de instalação do cron, build MkDocs e reload PM2 — vê deploy/cron/README.md e documentation/build-from-deploy.sh no repositório.