Deploying Hook-Worker¶
Pre-requisite¶
Warning: you might need to sudo all following commands
Python and Python tools¶
Make sure to have python 2.7 and python 3
apt-get install python3 python2
Make sure to have pip installed for both python 2 and 3
- Ubuntu 12.10 and later >
apt-get install python3-pip - Ubuntu
12.04
apt-get install python3-setuptoolsandeasy_install3 pip
- Ubuntu 12.10 and later >
Install virtualenv for python3
pip3 install virtualenv
- Install development dependencies
sudo apt-get install python-dev libxml2-dev libxslt-dev
Redis¶
Supervisor¶
- Install through with pip
pip install supervisor
- Configure
supervisor
- Default configuration can be created with
echo_supervisord_conf > /etc/supervisord.conf
- Default configuration can be created with
Configuration of supervisor¶
DO NOT FORGET TO CHANGE THE PASSWORD
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; socket file mode (default 0700)
chown=capitainshook:nogroup ; socket file uid:gid owner
username=capitainshook ; (default is no username (open server))
password=capitains ; (default is no password (open server))
[supervisord]
logfile=/var/log/supervisord.log ; (main log file;default $CWD/supervisord.log)
user=capitainshook ; (default is current user, required if root)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
username=capitainshook ; should be same as http_username if set
password=capitains ; should be same as http_password if set
Hook Worker¶
Code base¶
We advise to set-up a user account only for Hook. This will relieve you from many security flaws :
adduser capitainshookSet-up the password and remember it
su capitainshookcd /home/capitainshook/virtualenv --python=/usr/bin/python3 venv(orvirtualenv-3.4)source venv/bin/activateFor logs :
mkdir -R logs/api- Using pip
pip install HookWorker
- Using git
git clone https://github.com/Capitains/Hook-Worker.git workercd workerpython setup.py install
Services¶
Add the following to your supervisord.conf
The secret should be set to the secret key used by authorized callers of the HookWorker API
[program:hookworkerapi]
command=/home/capitainshook/venv/bin/hookworker-api --api --path /home/capitainshook/logs/api/ --port 5002 --level INFO --secret YourSecret --git /home/capitainshook/git --workers 7; Do not forget to change the secret !
stderr_logfile=/home/capitainshook/logs/api.error.log
[program:hookworkerrq]
command=/home/capitainshook/venv/bin/hookworker-api --rq --redis 127.0.0.1:6379
stdout_logfile=/home/capitainshook/logs/worker.log
stderr_logfile=/home/capitainshook/logs/worker.error.log