https://github.com/distribworks/dkron
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
https://github.com/distribworks/dkron
cron distributed-systems fault-tolerance scheduled-jobs
Last synced: 15 days ago
JSON representation
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
- Host: GitHub
- URL: https://github.com/distribworks/dkron
- Owner: distribworks
- License: lgpl-3.0
- Created: 2015-06-10T08:13:17.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2025-04-08T09:39:17.000Z (about 2 months ago)
- Last Synced: 2025-04-13T02:03:16.472Z (about 2 months ago)
- Topics: cron, distributed-systems, fault-tolerance, scheduled-jobs
- Language: Go
- Homepage:
- Size: 128 MB
- Stars: 4,443
- Watchers: 94
- Forks: 393
- Open Issues: 93
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-distributed-system-projects - dkron - a distributed, fault tolerant job scheduling system for cloud native environments
- awesome-repositories - distribworks/dkron - Dkron - Distributed, fault tolerant job scheduling system https://dkron.io (Go)
- go-awesome - dkron - Distributed task scheduling system (Open source library / Task/Timer)
README
![]()
# Dkron - Distributed, fault tolerant job scheduling system for cloud native environments [](https://godoc.org/github.com/distribworks/dkron) [](https://github.com/distribworks/dkron/actions) [](https://gitter.im/distribworks/dkron) [](https://gurubase.io/g/dkron)
Website: http://dkron.io/
Dkron is a distributed cron service, easy to setup and fault tolerant with focus in:
- Easy: Easy to use with a great UI
- Reliable: Completely fault tolerant
- Highly scalable: Able to handle high volumes of scheduled jobs and thousands of nodesDkron 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.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.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.You can use Dkron to run the most important part of your company, scheduled jobs.
## Installation
[Installation instructions](https://dkron.io/docs/basics/installation)
Full, comprehensive documentation is accessible on the [Dkron website](http://dkron.io)
## Quickstart
### Deploying Dkron using Docker
The best way to test and develop dkron is using docker, you will need [Docker](https://www.docker.com/) with Docker
compose installed before proceeding.```bash
docker compose up -d
```The UI should be available on http://localhost:8080/ui.
### Using Dkron
To add jobs to the system read the [API docs](https://dkron.io/api/).
### Scaling the cluster
To add more Dkron instances to the cluster:
```bash
docker compose up -d --scale dkron-server=4
docker compose up -d --scale dkron-agent=10
```## Development
To develop Dkron, you can deploy the cluster with local changes applied with the following steps:
1. Clone the repository.
2. Run the `docker compose`:
```bash
docker compose -f docker-compose.dev.yml up
```### Frontend development
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.### Resources
Chef cookbook
https://supermarket.chef.io/cookbooks/dkronPython Client Library
https://github.com/oldmantaiter/pydkronRuby client
https://github.com/jobandtalent/dkron-rbPHP client
https://github.com/gromo/dkron-php-adapterTerraform provider
https://github.com/bozerkins/terraform-provider-dkronManage and run jobs in Dkron from your django project
https://github.com/surface-security/django-dkron## Contributors
Made with [contrib.rocks](https://contrib.rocks).
## Get in touch
- Twitter: [@distribworks](https://twitter.com/distribworks)
- Chat: https://gitter.im/distribworks/dkron
- Email: victor at distrib.works