# Coolify scheduled tasks

The Vercel cron configuration in `vercel.json` is not executed automatically by Coolify.
Create one scheduled task per entry in that file. Each task must send:

```text
Authorization: Bearer $CRON_SECRET
```

Use the exact route and schedule from `vercel.json`. Example command:

```bash
curl --fail --max-time 900 \
  -H "Authorization: Bearer ${CRON_SECRET}" \
  https://app2.meseoapp.com/api/cron/data-retention
```

Set `CRON_SECRET` as a Coolify secret/environment variable. Do not commit its value.
Do not allow overlapping runs of the same task, especially for rollups, audits, rank checks,
and integration sync.

Run `npm run db:push` separately and deliberately when a schema change is approved.
It is intentionally not part of `npm run build`.
