Cronicle

Cronicle is a multi-server task scheduler and runner, with a web based front-end UI.

It handles both scheduled, repeating and on-demand jobs, targeting any number of slave servers, with real-time stats and live log viewer.

Written in Node.js, proudly open source and MIT licensed.

Easy to Install
Single command runs auto-install script, and all dependencies are npm packages. Get up and running in 5 minutes.
Single or Multi-Server Setup
Auto-discovery of nearby servers, and auto-failover to backups. Jobs are automatically retried when applicable.
Schedule Events Using Visual Date/Time Picker
Events can be single or recurring, and you can easily schedule them to run hourly, daily, weekly, monthly and/or yearly.
Customizable Run Modes
Target individual servers, or pick randomly across groups. Optionally catch up and run missed events, and retry errors.
Real-Time Stats & Live Log View
Graphical progress bars and estimated time remaining, with a real-time live log watcher for your jobs.
Track CPU and Memory Usage
Custom user-defined performance metrics graphed in a pie chart, and historical stats with performance graphs.
Simple but Powerful Plugin API
Plugins can be written in any language, with a simple JSON system and custom UI controls available.
Multiple Timezone Support
Auto-detects both user and server timezones, and allows you to schedule events in any timezone.
Chain Multiple Events Together
Events can trigger others to create a chain of sequential jobs. Pass custom data between them as well.
External JSON REST API for Apps
API Keys for authenticating remote apps, and custom web hooks for external notification systems.
No Database Required
No database is required to run Cronicle. Everything can be stored as JSON files on disk.
Open Source & MIT Licensed
Cronicle is written in Node.js, and the full source is up on GitHub for your forking pleasure.
Your jobs can emit progress events which are shown in real-time, along with estimated time remaining (calculated automatically). In addition to this, when your job is complete, you can emit categorized performance metrics which are displayed in a pie chart. This way, your users can see how the time was spent during your job run. Read more.
CPU and memory usage are tracked automatically for each of your jobs. This includes the main process that was spawned, as well as any child processes. So if you launch other processes or shell out to command-line utilities, all this will be taken into account. CPU is displayed as the percentage of one CPU core, and memory is displayed as a percentage of the configured maximum. Read more.
The average CPU and memory usage of your jobs is tracked over time, and you can pull up historical graphs, so you can detect trending patterns before they become a problem. In addition, your customized performance metrics are also tracked and graphed over time, if provided by your jobs (Plugins or shell scripts). Read more.
Events are scheduled to run at various dates and times using a visual multi-selector widget. You can multi-select any combination of years, months, days, weekdays, hours and/or minutes. It will also repeat on a recurring basis, each time the server clock matches your selections. This is very similar to the Cron format. Read more.
You can set CPU and/or memory usage limits for each of your jobs, at the category or event level. These cause the job to be aborted if the limits are exceeded. You can also set "sustain" thresholds, so no action is taken until the limits are exceeded for a certain amount of time. Read more.
Cronicle can send out an e-mails to a custom list of recipients for each job's completion. You can also specify a "web hook", which will send an HTTP POST to a custom URL that you specify, both at the start and the end of each job, and include full details in JSON format. Read more.
The Parameter system allows you to define a set of UI controls for your Plugin (text fields, text boxes, checkboxes, drop-down menus, etc.) which are then presented to the user when editing events. This can be useful if your Plugin has configurable behavior which you want to expose to your users. Read more.
Keep track of all completed jobs, and which ones succeeded or failed. Cronicle has a master list of all jobs, and also categorized lists by each event, so you can drill down and see exactly what ran and when. Click on the Job IDs to view full details about each job and view or download log archives. Read more.
Ready to give Cronicle a try? Installation is super easy!
First you'll need to install Node.js on your server, then become root and run this command:
curl -s https://raw.githubusercontent.com/jhuckaby/Cronicle/master/bin/install.js | node
For complete installation instructions see our GitHub repo.