Cron scheduler with
web dashboard

Single binary, zero dependencies. YAML or crontab format, conditional execution, auto-retry, notifications. No silent failures, no scattered logs.

$ brew install umputun/apps/cronn
jobs.yml
jobs: - spec: "0 2 * * *" command: "backup.sh" name: "Nightly backup" conditions: cpu_below: 50 disk_free_above: 20 repeater: attempts: 3 duration: "10s"

Features

Web Dashboard

Real-time monitoring, execution history, manual triggers. Light and dark themes.

YAML Config

Structured configuration with JSON schema validation. Traditional crontab also supported.

Conditional Execution

Run when CPU, memory, or disk thresholds met. Custom check scripts supported.

Auto-Retry

Exponential backoff with jitter. Per-job override for attempts, duration, factor.

Notifications

Slack, Telegram, email, webhook on failure or completion. Custom templates.

Date Templates

Business day support, EOD logic. Inject {{.YYYYMMDD}} and variants into commands.

Hot Reload

Auto-detect config changes. SIGHUP support. Start with zero jobs, add later.

Container Ready

Use as base image or entrypoint. Graceful shutdown, auto-resume after restart.

Embedded SQLite

Job history persisted locally. No external database required. Survives restarts.

Configuration Formats

jobs.yml (YAML format)
jobs:
  - spec: "0 2 * * *"
    command: "backup.sh"
    name: "Nightly backup"

  - spec: "*/30 * * * *"
    command: "sync.sh"
    conditions:
      cpu_below: 50

  - spec: "@daily"
    command: "cleanup.sh"
    repeater:
      attempts: 3
crontab (traditional format)
# Standard 5-field format
0 2 * * * backup.sh
*/30 * * * * sync.sh
0 * * * * health-check.sh

# @descriptors
@daily cleanup-logs.sh
@every 5m ping-api.sh
@midnight db-maintenance.sh
@reboot startup-tasks.sh

# With date templates
0 18 * * 1-5 report.sh {{.YYYYMMDD}}
0 9 * * * backup.sh {{.WYYYYMMDD}}

Web Dashboard

Enable with --web.enabled. Supports authentication, reverse proxy, multiple views.

Web dashboard
Job monitoring with execution history

vs. Traditional Cron

Feature cronn system cron
Web dashboard Yes No
Execution history SQLite persistence Logs only
Conditional execution CPU/memory/disk/custom No
Auto-retry with backoff Configurable per job No
Notifications Slack/Telegram/email/webhook Email (basic)
Config hot reload Auto + SIGHUP Service restart
Graceful shutdown Waits for jobs Kills jobs
Container-friendly Auto-resume, single process Multiple daemons

Install

Homebrew

brew install umputun/apps/cronn

Docker

ghcr.io/umputun/cronn

Debian/Ubuntu

.deb from releases

RHEL/CentOS

.rpm from releases