Simple webhook service to update and deploy sites and do other maintenance
Project description
webhaak is a simple webhook service to update and deploy sites and do other maintenance without having to ssh to a node.
Installation
From PyPI
Assuming you already are inside a virtualenv:
pip install webhaak
From Git
Create a new virtualenv (if you are not already in one) and install the necessary packages:
git clone https://github.com/aquatix/webhaak.git
cd webhaak
mkvirtualenv webhaak # or whatever project you are working on
pip install -r requirements.txt
Usage
Copy settings.py from example_config to the parent directory and configure to your needs. Create a yaml file with the projects to serve (see next section) and refer to this file from the settings.py.
Run webhaak as a service under nginx or apache and call the appropriate url’s when wanted (e.g., on push to repository).
Url’s are of the form https://hook.example.com/app/<appkey>/<triggerkey>
Example configuration
See the example hook settings for syntax of how to configure repositories, commands and directories.
Call webhaak on its endpoint /getappkey to generate a random new key for usage in the projects yaml file (so, for example https://hook.example.com/getappkey)
By default, webhaak clones projects in a directory under its REPOS_CACHE_DIR directory, but there is support for a per-repo parent dir settings with repoparent.
This means that webhaak then doesn’t clone this repo into its default cache dir, but in a subdirectory of the directory configured in repoparent, so <repoparent>/reponame (e.g., /srv/customparent/myproject).
Server configuration
What’s new?
See the Changelog.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.