Cron scheduler with
web dashboard
Single binary, zero dependencies. YAML or crontab format, conditional execution, auto-retry, notifications. No silent failures, no scattered logs.
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:
- 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
# 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.
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