Ir para o conteúdo

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.

PM2, systemd e Node.js

3. Reverse proxy — Nginx

TLS, proxy para 127.0.0.1:3000, e bloco com timeouts longos para POST /api/admin/deploy (SSE).

Nginx — app + documentação

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

Cron systemd (timers)

5. Este site de documentação

O build fica em documentation/site/. Aponta docs.diasantos.com para essa pasta (Certbot + nginx).

Alojar docs.diasantos.com


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.