# cronsun [![Build Status](https://travis-ci.org/shunfei/cronsun.svg?branch=master)](https://travis-ci.org/shunfei/cronsun) `cronsun` is a distributed cron-style job system. It's similar with `crontab` on stand-alone `*nix`. [简体中文](README_ZH.md) ## Purpose The goal of this project is to make it much easier to manage jobs on lots of machines and provides high availability. `cronsun` is different from [Azkaban](https://azkaban.github.io/), [Chronos](https://mesos.github.io/chronos/), [Airflow](https://airflow.incubator.apache.org/). ## Features - Easy manage jobs on multiple machines - Managemant panel - Mail service - Multi-language support ## Architecture ``` [web] | -------------------------- (add/del/update/exec jobs)| |(query job exec result) [etcd] [mongodb] | ^ -------------------- | | | | | [node.1] [node.2] [node.n] | (job exec fail)| | | | [send mail]<-----------------------------------------(job exec result) ``` ## Security `cronsun` support security with `security.json` config. When `opne=true`, job command is only allow local files with special extension on the node. ```json { "open": true, "#users": "allowed execution users", "users": [ "www", "db" ], "#ext": "allowed execution file extension", "ext": [ ".cron.sh", ".cron.py" ] } ``` ## Getting started ### Setup / installation Install from binary [releases](https://github.com/shunfei/cronsun/releases), download and unzip. Or build from source, require `go >= 1.7+` ``` go get -u github.com/shunfei/cronsun cd $GOPATH/src/github.com/shunfei/cronsun sh build.sh ``` ### Run 1. Install [MongoDB](http://docs.mongodb.org/manual/installation/) 2. Install [etcd3](https://github.com/coreos/etcd) 3. Modify config in `conf` dir 4. Start Node: `./cronnode -conf conf/base.json`, start Web: `./cronweb -conf conf/base.json` 5. Opne `http://127.0.0.1:7079/ui/` with the browser ## Screenshot **Brief**: ![](doc/img/brief.png) **Exec result**: ![](doc/img/log.png) **Job**: ![](doc/img/job.png) ![](doc/img/new_job.png) **Node**: ![](doc/img/node.png) ## Credits cron is base on [robfig/cron](https://github.com/robfig/cron)