Начать
Документация

Быстрый старт

Создайте чек в дашборде — получите уникальный ping-URL. Дальше — одна строчка в вашем коде.

crontab

*/5 * * * * my-job && curl -fsS -m 10 https://ping.cronalive.com/<uuid> > /dev/null

systemd

[Service]
ExecStartPost=/usr/bin/curl -fsS -m 10 https://ping.cronalive.com/<uuid>
# или с кодом выхода (0 = успех):
ExecStopPost=/usr/bin/curl -fsS https://ping.cronalive.com/<uuid>/$EXIT_STATUS

Laravel

composer require cronalive/laravel

// routes/console.php
$schedule->command('backup:run')
    ->daily()
    ->pingCronalive('<uuid>');

// или авто-создание чека по slug — без захода в дашборд:
$schedule->command('etl:run')->hourly()->pingCronaliveSlug('etl-run');

Python

pip install cronalive

@cronalive.monitor('<uuid>')
def nightly_job(): ...

# или обёртка CLI:
cronalive run --id <uuid> -- /usr/local/bin/backup.sh

Node

npm i cronalive

import { monitored } from 'cronalive';
await monitored('<uuid>', () => runJob());

Сигналы пинга

К ping-URL можно добавить суффикс:

Тело POST (до 100 КБ) сохраняется в лог пинга.

Slug-адресация и auto-provisioning

Вместо UUID можно пинговать по имени: https://ping.cronalive.com/<ping-key>/<slug>. Первый пинг с ?create=1 создаст чек сам — удобно для деплой-скриптов. Расписание нового чека — из query-параметров:

# простой период: period 60–31536000 сек, grace 0–2592000 сек
curl "https://ping.cronalive.com/<ping-key>/etl-run?create=1&period=3600&grace=300"

# либо cron-выражение с таймзоной (tz по умолчанию UTC)
curl "https://ping.cronalive.com/<ping-key>/backup?create=1&cron=30+3+*+*+*&tz=Europe/Moscow"

Надёжность доставки пингов

Ping-доменов несколько; сниппеты в дашборде подставляют fallback автоматически (curl url1 || curl url2), а SDK получают актуальный список из GET /api/v1/ping-domains.

REST API

Полный справочник — API Reference (openapi.yaml). Авторизация — ключ проекта: read-write (ca_rw_…) для управления и read-only (ca_ro_…) для чтения. Ключи выпускаются в дашборде — Проекты → API-ключи; ключ показывается один раз, в базе хранится только хэш.

curl -H "Authorization: Bearer ca_ro_..." \
  https://app.cronalive.com/api/v1/checks