Runbook is an OpenSaaS (Apache 2.0) monitoring service that allows you to perform automated "reactions" when issues are detected. Giving you the ability to automatically resolve DevOps alerts with zero human interaction.
Simply put, Runbook is what you would get if Nagios and IFTTT had a baby.
Runbook is primarily in maintenance mode, pull requests will be reviewed and merged but this project is not currently under active development. It is suggested that newer users check out Automatron as an alternative.
Developer and User docs can be found in the docs directory and on ReadTheDocs.
You can easily deploy Runbook within a Docker container with 3 simple steps. This deployment should work for small environments, for larger environments checkout our Installation Guide.
- Start a RethinkDB Container
$ sudo docker run -d --name rethinkdb rethinkdb
- Start a Redis Container
$ sudo docker run -d --name redis redis
- Start a Runbook Container (linking to Redis and RethinkDB)
$ docker run -d --name runbook -p 8000:8000 --link rethinkdb:rethinkdb --link redis:redis runbook/runbook
Once launched simply navigate to http://<serverip>:8000
.
Develop:
Master:
At Runbook we follow the GitHub Flow, while it is not required that you create feature branches it does help keep code organized. Below are the basic getting started steps for setting up a repo to contribute.
The first step in getting ready to contribute is forking our repository on github. Once it is forked you can clone that fork onto your desktop; this documentation is assuming you are working from a clone of your fork.
To pull the repository to your local machine simply run the following.
$ git clone <url of your repo>
We have two branches develop
and master
, all new code must be submitted to the develop
branch. This branch is considered our testing branch; once all of the features in the develop
branch are ready for production they will be merged to the master
branch.
To start developing a new feature simply create a unique branch for that feature.
$ git checkout develop
$ git checkout -b new-feature
You can make your changes, commit them and when complete push them to your GitHub repo.
$ git push origin new-feature
Once your code is ready and on GitHub you can create a Pull Request via the GitHub UI. Once your pull request is created it is typically best practice to go to the bounty on Assembly and submit your work with a link to the pull request. If the feature you created does not have a bounty created yet, simply create one explaining what you've done and why.
Once the bounty or work is submitted it is best to add a comment to the pull request with a link to the bounty. This keeps the code review and merging process quick and easy.
Runbook is a very fast paced application, we are making major code changes frequently and it is important that you keep your fork in sync to avoid conflicts. PR's with conflicts will not be merged until those conflicts are removed. To keep your repository in sync you can follow these steps.
To synchronize with the upstream repository you must first define it as an upstream source.
$ git remote add upstream https://github.com/Runbook/runbook.git
Once the upstream repository is set you can update your repo by fetching and merging the updates.
$ git checkout develop
$ git fetch upstream
$ git merge upstream/develop
$ git checkout master
$ git merge upstream/master
To keep your GitHub fork up to date you can push the changes to your origin
repository
$ git push origin