Skip to content
Snippets Groups Projects
README.md 3.6 KiB
Newer Older
<p align="center">
Victor Castell's avatar
Victor Castell committed
<img width="400" src="docs/images/DKRON_STICKER_OK_CMYK_RGB_CONV_300.png" alt="Dkron" title="Dkron" />
Victor Castell's avatar
Victor Castell committed
# Dkron - Distributed, fault tolerant job scheduling system for cloud native environments [![GoDoc](https://godoc.org/github.com/distribworks/dkron?status.svg)](https://godoc.org/github.com/distribworks/dkron) [![Actions Status](https://github.com/distribworks/dkron/workflows/Test/badge.svg)](https://github.com/distribworks/dkron/actions) [![Gitter](https://badges.gitter.im/distribworks/dkron.svg)](https://gitter.im/distribworks/dkron)
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
Website: http://dkron.io/
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
Dkron is a distributed cron service, easy to setup and fault tolerant with focus in:
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
- Easy: Easy to use with a great UI
Victor Castell's avatar
Victor Castell committed
- Reliable: Completely fault tolerant
Victor Castell's avatar
Victor Castell committed
- Highly scalable: Able to handle high volumes of scheduled jobs and thousands of nodes
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
Dkron is written in Go and leverage the power of the Raft protocol and Serf for providing fault tolerance, reliability and scalability while keeping simple and easily installable.
Victor Castell's avatar
Victor Castell committed

Dkron is inspired by the google whitepaper [Reliable Cron across the Planet](https://queue.acm.org/detail.cfm?id=2745840) and by Airbnb Chronos borrowing the same features from it.
Victor Castell's avatar
Victor Castell committed

Dkron runs on Linux, OSX and Windows. It can be used to run scheduled commands on a server cluster using any combination of servers for each job. It has no single points of failure due to the use of the Gossip protocol and fault tolerant distributed databases.
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
You can use Dkron to run the most important part of your company, scheduled jobs.
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
## Installation
Victor Castell's avatar
Victor Castell committed

Vijay Anand's avatar
Vijay Anand committed
[Installation instructions](https://dkron.io/docs/basics/installation)

Full, comprehensive documentation is viewable on the [Dkron website](http://dkron.io)

## Development Quick start
Victor Castell's avatar
Victor Castell committed

cui fliter's avatar
cui fliter committed
The best way to test and develop dkron is using docker, you will need [Docker](https://www.docker.com/) installed before proceeding.
Victor Castell's avatar
Victor Castell committed

Clone the repository.
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
Next, run the included Docker Compose config:
Victor Castell's avatar
Victor Castell committed
`docker-compose up`
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
This will start Dkron instances. To add more Dkron instances to the clusters:
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
```
docker-compose up --scale dkron-server=4
docker-compose up --scale dkron-agent=10
```
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
Check the port mapping using `docker-compose ps` and use the browser to navigate to the Dkron dashboard using one of the ports mapped by compose.
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
To add jobs to the system read the [API docs](https://dkron.io/api/).
Victor Castell's avatar
Victor Castell committed

## Frontend development
Victor Castell's avatar
Victor Castell committed

Dkron dashboard is built using [React Admin](https://marmelab.com/react-admin/) as a single page application.
To start developing the dashboard enter the `ui` directory and run `npm install` to get the frontend dependencies and then start the local server with `npm start` it should start a new local web server and open a new browser window serving de web ui.
Make your changes to the code, then run `make ui` to generate assets files. This is a method of embedding resources in Go applications.
Victor Castell's avatar
Victor Castell committed

Victor Castell's avatar
Victor Castell committed
### Resources

Chef cookbook
https://supermarket.chef.io/cookbooks/dkron

Tait Clarridge's avatar
Tait Clarridge committed
Python Client Library
https://github.com/oldmantaiter/pydkron

Victor Castell's avatar
Victor Castell committed
Ruby client
https://github.com/jobandtalent/dkron-rb

Sardorbek Pulatov's avatar
Sardorbek Pulatov committed
PHP client
https://github.com/gromo/dkron-php-adapter

Terraform provider
https://github.com/bozerkins/terraform-provider-dkron
Victor Castell's avatar
Victor Castell committed
Manage and run jobs in Dkron from your django project
https://github.com/surface-security/django-dkron

Victor Castell's avatar
Victor Castell committed
## Contributors

<a href="https://github.com/distribworks/dkron/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=distribworks/dkron" />
</a>

Made with [contrib.rocks](https://contrib.rocks).

Victor Castell's avatar
Victor Castell committed
## Get in touch

- Twitter: [@distribworks](https://twitter.com/distribworks)
- Chat: https://gitter.im/distribworks/dkron
Victor Castell's avatar
Victor Castell committed
- Email: victor at distrib.works
Victor Castell's avatar
Victor Castell committed