Skip to content

Oncall is a calendar tool designed for scheduling and managing on-call shifts. It can be used as source of dynamic ownership info for paging systems like http://iris.claims.

License

Notifications You must be signed in to change notification settings

linkedin/oncall

Repository files navigation

Oncall Gitter chat Build Status

See admin docs for information on how to run and manage Oncall.

Development setup

Local machine

See instructions for setting up Oncall on your local machine

Prerequisites

  • Debian/Ubuntu - sudo apt-get install libsasl2-dev python3-dev libldap2-dev libssl-dev python-pip python-setuptools mysql-server mysql-client

Install

python setup.py develop
pip install -e '.[dev]'

Setup mysql schema:

mysql -u root -p < ./db/schema.v0.sql

Setup app config by editing configs/config.yaml.

Optionally, you can import dummy data for testing:

mysql -u root -p -o oncall < ./db/dummy_data.sql

Run

One of the following commands:

  • goreman start
  • procman start
  • make serve
  • oncall-dev ./configs/config.yaml

Test

make test

Docker compose

See instructions for using docker compose

Running

make compose

or running docker compose directly:

docker compose up --build

Limitations

  • Doesn't currently provide a mechanism for running tests
  • Requires rebuilding to apply code changes
  • Doesn't tail Python logs to stdout

Contributing

Check out https://github.com/linkedin/oncall/issues for a list of outstanding issues, and tackle any one that catches your interest. Contributions are expected to be tested thoroughly and submitted with unit/end-to-end tests; look in the e2e directory for our suite of end-to-end tests.