For a maintained fork, see jibby0/docker-jekyll-webhook
.
cmrn/jekyll-webhook
is a docker image which:
To start cmrn/jekyll-webhook
on port 80:
docker run -d -p 80:80 \
-e REPO="https://github.com/cmrn/cameronmoon.com.git" \
-e WEBHOOK_SECRET="change me" \
cmrn/jekyll-webhook
Set WEBHOOK_SECRET
to variable to a long, random passphrase, and set REPO
to the clone URL of your GitHub repository.
To set up the webhook in GitHub, go to your repository page, then go to Settings > Webhooks & Services > Add webhook. Set "Payload URL" to your server's address, followed by /webhook
- for example, http://cameronmoon.com/webhook
. Set "Secret" to the same value as WEBHOOK_SECRET
. "Content type" should be "application/json", and the Webhook should only recieve the "push" event.
The image can be given the following configuration values as environment variables:
REPO
: Required. The clone URL for your Jekyll repository. If your repository is private, this should also contain a username and password.WEBHOOK_SECRET
: Required. The secret which authenticates genuine requests to the webhook. This should be a long, random secret shared only with GitHub.WEBHOOK_ENDPOINT
: Optional, defaults to /webhook
. The endpoint for the webhook. Change this if you want to publish something at the URL /webhook
.BRANCH
: Optional, defaults to master
. The branch to use from your repository. Another popular value is gh-pages
, used by GitHub Pages.It's also possible to customise the nginx server configuration by linking in a new site.conf
template. Save site.conf
to your host machine, make your changes, and link it into your container:
docker run -d -p 80:80 \
-v /path/to/your/site.conf:/site.conf \
-e REPO="https://github.com/cmrn/cameronmoon.com.git" \
-e WEBHOOK_SECRET="change me" \
cmrn/jekyll-webhook
This project is a concoction of:
Permission to use, copy, modify, and/or distribute this software is given under the ISC license.