# 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`.