danryan/reveille

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Revily

[![Build Status](https://secure.travis-ci.org/revily/revily.png?branch=master)](https://travis-ci.org/revily/revily)
[![Code Climate](https://codeclimate.com/github/revily/revily.png)](https://codeclimate.com/github/revily/revily)
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/revily/revily/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/df59799a89c2ecdad827f45ea3f19762 "githalytics.com")](http://githalytics.com/revily/revily)

## Description

Revily is an on-call management and incident response service. Revily sends alerts right to your phone, route to the right person with flexible on-call scheduling, and fully integrates with your services using a powerful API.

# Dependencies

## Data storage

* [PostgreSQL](http://www.postgresql.org/) 9.x (application data)
* [Redis](http://redis.io/) (background processing; caching; session store)

Configuring these services is left as an exercise for the reader. You'll want at least one Postgres database, and up to three Redis databases (though, a single namespaced Redis instance will suffice).

## 3rd-Party Services

* [Twilio](http://www.twilio.com/) (voice and SMS communication)
* [Mailgun](http://www.mailgun.com/) (email receiving and parsing)

## Options

## Deployment

* [Heroku](https://github.com/revily/revily/wiki/Heroku)

## Configuration

Revily makes extensive use of environment variables for configuring various parts of the system. The following variables are required:

* `SECRET_TOKEN` - generate with `rake secret`. Must be at least 30 characters long.
* `TWILIO_ACCOUNT_SID` - found at https://www.twilio.com/user/account
* `TWILIO_AUTH_TOKEN` - found at https://www.twilio.com/user/account
* `TWILIO_APPLICATION_SID` - found at https://www.twilio.com/user/account/apps
* `TWILIO_NUMBER` - found at https://www.twilio.com/user/account/phone-numbers/incoming
* `MAILER_URL` - default URL for mailing.
* `MAILER_DELIVERY_METHOD` - options: mailgun, smtp
* `MAILER_SENDER` - the email address from which Revily will send emails
* `REVILY_REDIS_CACHE_URL ` - URI to redis instance (ex: `redis://localhost:6379/0/cache`)

The following variables are optional
* `MAILGUN_API_KEY` - Mailgun API key
* `MAILGUN_DOMAIN` - Mailgun domain

## Installation

For manual instructions, consult the [INSTALL.md](INSTALL.md) documentation.

### TL;DR

```bash
export RAILS_ENV=production TWILIO_ACCOUNT_SID=... TWILIO_AUTH_TOKEN=...
rake revily:setup revily:bootstrap revily:twilio:bootstrap
```

### Bootstrapping Revily

Two rake tasks are used to setup the initial configuration. The `revily:setup` task will create a database user, create a production database, and run all migrations. The `revily:bootstrap` task
will create your first account, user and print out environment variables which can be used to configure the application further.

```bash
export RAILS_ENV=production
rake revily:setup
rake revily:bootstrap
```

### Creating a Twilio account

A rake task is provided for automating the creation of a Twilio application, a phone number for voice and SMS messages, and configuring the number to use the Twilio application. You will need to know your account SID and your auth token, both of which you can find on the [Twilio dashboard](https://www.twilio.com/user/account).

```bash
export RAILS_ENV=production TWILIO_ACCOUNT_SID=... TWILIO_AUTH_TOKEN=...
rake revily:twilio:bootstrap
```

## Deployment

## HISTORY

https://github.com/revily/revily/commits/master

## BUGS

https://github.com/revily/revily/issues?state=open

## COPYRIGHT

Revily is Copyright © Applied Awesome LLC.

## SEE ALSO

[pagerduty(1)](http://pagerduty.com), [opsgenie(1)](http://opsgenie.com), [victorops(1)](http://victorops.com/)