Guia do admin

Admin

Crons em execução

4 crons no host manager (Hetzner). Todos protegidos por CRON_TOKEN no header.

Lista

ScheduleEndpointFunçãoLote
*/5 * * * */api/cron/cleanup-reservationsLibera reservas de pré-venda expiradas (>2h ABERTA)Sem limite
*/15 * * * */api/cron/recover-abandoned-cartsWhatsApp pra carts >30 min50/lote
0 * * * */api/cron/expire-ai-actionsMarca AiActionApproval PENDING >24h como EXPIREDSem limite
30 3 * * *casaroxa-disk-cleanup.shLimpeza Docker images >72h + alerta discon/a

Onde está configurado

crontab -e no usuário root do manager. Cada linha tem o token explícito (não usa env var pra evitar dependência de shell):

*/5 * * * * curl -sf -X POST -H "x-cron-token: <TOKEN>" https://gestao.casaroxa.com.br/api/cron/cleanup-reservations >> /var/log/casaroxa-cron.log 2>&1

Logs

/var/log/casaroxa-cron.log (rotacionado semanalmente, mantém 50k linhas).

Rodar manualmente

Pra testar fora do schedule:

ssh root@<ip>
curl -X POST -H "x-cron-token: $TOKEN" https://gestao.casaroxa.com.br/api/cron/<endpoint>

Resposta JSON inclui {ok: true, ...} com contadores (released, notified, expired etc).

Mudar CRON_TOKEN

  1. Gera novo token: openssl rand -hex 32
  2. Atualiza env do service: docker service update --env-add "CRON_TOKEN=<novo>" casaroxa_app
  3. Atualiza crontab -e substituindo o token nas 3 linhas