Installation

Quickstart for testing

If you just want to checkout omnibot and aren’t looking to deploy it into production check out the quickstart.

Docker installation

To run omnibot in Docker

omnibot is configured through a combination of environment variables and a configuration file. When starting the docker container, you’ll need to inject both, which can be done via --env-file and -v arguments.

docker pull lyft/omnibot
# You can also override the logging config, via: -v logging.conf:/etc/omnibot/logging.conf
docker run --env-file omnibot.env -v omnibot.conf:/etc/omnibot/omnibot.conf -t lyft/omnibot -c "gunicorn --config /srv/omnibot/config/gunicorn.conf omnibot.wsgi:app --workers=2 -k gevent --access-logfile=- --error-logfile=-"
docker run --env-file omnibot.env -v omnibot.conf:/etc/omnibot/omnibot.conf -t lyft/omnibot -c "python3 -m omnibot.webhook_worker"
docker run --env-file omnibot.env -v omnibot.conf:/etc/omnibot/omnibot.conf -t lyft/omnibot -c "python3 -m omnibot.watcher"

To build the image

If you want to build the image and store it in your private registry, you can do the following:

git clone https://github.com/lyft/omnibot
cd omnibot
docker build -t lyft/omnibot .

pip installation

  1. Using Ubuntu or Debian (please help with non-Ubuntu/Debian install instructions!)

  2. venv location: /srv/omnibot/venv

Make a virtualenv and install pip requirements

sudo apt-get install -y python3 python3-dev python3-pip python3-virtualenv openssl libssl-dev gcc pkg-config libffi-dev libxml2-dev libxmlsec1-dev
cd /srv/omnibot
virtualenv3 venv
source venv/bin/activate
pip3 install -U pip
pip3 install omnibot
deactivate

Manual installation

Assumptions:

  1. Using Ubuntu or Debian (please help with non-Ubuntu/Debian install instructions!)

  2. Installation location: /srv/omnibot/venv

  3. venv location: /srv/omnibot/venv

Clone omnibot

cd /srv
git clone https://github.com/lyft/omnibot

Make a virtualenv and install pip requirements

sudo apt-get install -y python3 python3-dev python3-pip python3-virtualenv openssl libssl-dev gcc pkg-config libffi-dev libxml2-dev libxmlsec1-dev
cd /srv/omnibot
virtualenv venv
source venv/bin/activate
pip install -U pip
pip install -r piptools_requirements3.txt
pip install -r requirements3.txt
deactivate

Run omnibot

It’s necessary to export your configuration variables before running omnibot. The easiest method is to source a file that exports your environment before running omnibot. You’ll also need to write a configuration file to /etc/omnibot/omnibot.conf (or to a location of your choosing, via the CONFIG_FILE environment variable).

mkdir /etc/omnibot
mkdir /var/log/omnibot
cd /srv/omnibot
# You need to create omnibot.env, and omnibot.conf
cp omnibot.env /etc/omnibot/
source /etc/omnibot/omnibot.env
cp omnibot.conf /etc/omnibot/
# A default logging config is included
cp conf/logging.conf /etc/omnibot/
source venv/bin/activate
# You should really probably use some form of an init system here, rather than running them directly.
gunicorn --config /srv/omnibot/config/gunicorn.conf omnibot.wsgi:app --workers=2 -k gevent --access-logfile=/var/log/omnibot/omnibot.log --error-logfile=/var/log/omnibot/omnibot.err &
python3 -m omnibot.webhook_worker > /var/log/omnibot/webhook_worker.log &
python3 -m omnibot.watcher > /var/log/omnibot/watcher.log &