Introduction
Cronicle is a self-hosted replacement for cron that adds a web-based UI, multi-server job targeting, real-time log streaming, and visual scheduling. It runs as a Node.js service and requires no external database.
What Cronicle Does
- Schedules recurring and one-time jobs with a visual calendar interface
- Distributes jobs across multiple servers with automatic failover
- Streams job output logs in real time through the web UI
- Supports shell commands, HTTP webhooks, and custom plugins as job types
- Sends notifications via email, webhooks, or custom notification plugins
Architecture Overview
Cronicle runs as a primary server that manages the schedule and one or more worker servers that execute jobs. State is stored in a built-in key-value store backed by the local filesystem, eliminating the need for a separate database. Communication between primary and workers uses a simple JSON-over-HTTP protocol. The web UI is a single-page application served by the primary.
Self-Hosting & Configuration
- Install globally with npm or download pre-built releases
- Run
setupto initialize the data directory and default admin account - Configure
conf/config.jsonfor port, data paths, and email settings - Add worker servers by pointing them to the primary's hostname
- Set up categories and server groups to organize and target jobs
Key Features
- Visual drag-and-drop scheduling with timezone support
- Multi-server job targeting with round-robin or all-server modes
- Built-in retry logic, timeout enforcement, and chain scheduling
- Resource limits to cap CPU and memory per job
- Historical job logs with searchable output archives
Comparison with Similar Tools
- cron — system-level scheduler; Cronicle adds a web UI, multi-server support, and log management
- Apache Airflow — DAG-based orchestrator; Cronicle is simpler and requires no Python or database
- Rundeck — enterprise job scheduler; Cronicle is lighter with zero dependencies beyond Node.js
- Ofelia — Docker cron replacement; Cronicle supports bare-metal and multi-host scheduling
FAQ
Q: Does Cronicle require a database? A: No. It uses a built-in filesystem-backed key-value store.
Q: Can I run jobs on remote servers? A: Yes. Install Cronicle workers on remote servers and register them with the primary.
Q: How does failover work? A: If the primary goes down, a standby server automatically takes over scheduling.
Q: What job types are supported? A: Shell commands, HTTP requests, and custom plugins written in any language.