Cron systemd (timers)
Em produção, coaching-cron-tick.timer chama POST /api/cron/tick em intervalos fixos. O tick carrega linhas CronScheduledJob na base de dados e invoca o caminho HTTP de cada job na hora com o segredo do cron.
Um só timer
As unidades systemd coaching-alerts foram removidas do repositório. A geração agendada de alertas é feita por jobs executados pelo tick (ver seed / UI de administração).
Instalação rápida
sudo bash deploy/cron/install.sh
Garante que existe /etc/coaching/cron.env com BASE_URL e CRON_SECRET alinhados ao .env da aplicação.
Pipeline de deploy
A página de administração Deploy executa deploy/cron/install-from-deploy.sh depois do build Next.js para manter os ficheiros de unidades sincronizados com o repositório. O utilizador do processo Node (muitas vezes coaching) precisa de:
- Um
sudo bash deploy/cron/install.shmanual após o clone, ou - sudo sem palavra-passe só para
install.sh— verdeploy/cron/README.mdno repositório para a linha exacta dosudoers.
Se o sudo não estiver configurado, o passo imprime SKIP e o deploy continua com sucesso.
Verificação
sudo systemctl list-timers | grep coaching
sudo journalctl -u coaching-cron-tick.service -n 50 --no-pager