All Projects → maccyber → micro-dockerhub-hook

maccyber / micro-dockerhub-hook

Licence: other
Automatic docker deployment with webhooks

Programming Languages

javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to micro-dockerhub-hook

deployserver
Deploy your project automatically when git branch was updated.
Stars: ✭ 24 (-25%)
Mutual labels:  webhook, automated-deployment
Aftermath
A simple anti token-grabber, written in Python.
Stars: ✭ 40 (+25%)
Mutual labels:  webhook
discord
GitHub webhook that analyzes pull requests and adds comments about incompatible CSS
Stars: ✭ 29 (-9.37%)
Mutual labels:  webhook
k8s-mutate-webhook
A playground to build a very crude k8s mutating webhook in Go
Stars: ✭ 55 (+71.88%)
Mutual labels:  webhook
gitdub
📤 A github WebHook that emails detailed diffs of your commits.
Stars: ✭ 25 (-21.87%)
Mutual labels:  webhook
Temps
λ A selfhostable serverless function runtime. Inspired by zeit now.
Stars: ✭ 15 (-53.12%)
Mutual labels:  webhook
MsftTeams
Module for Posting messages to MSTeams via Webhook
Stars: ✭ 35 (+9.38%)
Mutual labels:  webhook
docker-pushrm
"Docker Push Readme" - a Docker CLI plugin to update container repo docs
Stars: ✭ 100 (+212.5%)
Mutual labels:  dockerhub
rebasebot
A GitHub bot that rebases your branches
Stars: ✭ 43 (+34.38%)
Mutual labels:  webhook
tcWebHooks
WebHooks plugin for Teamcity. Supports many build states and payload formats.
Stars: ✭ 128 (+300%)
Mutual labels:  webhook
wikibot
A 🤖 which provides features from Wikipedia like summary, title searches, location API etc.
Stars: ✭ 25 (-21.87%)
Mutual labels:  webhook
github-release-notifier
Automatize tasks when a specific package got a new release - Github Release Notifier
Stars: ✭ 21 (-34.37%)
Mutual labels:  webhook
kube-watch
Simple tool to get webhooks on Kubernetes cluster events
Stars: ✭ 21 (-34.37%)
Mutual labels:  webhook
PSDiscord
Simple PowerShell module allowing to send messages to Discord Channel over webhooks
Stars: ✭ 34 (+6.25%)
Mutual labels:  webhook
cicd-images
Images used internally for running continuous integration/delivery tasks
Stars: ✭ 19 (-40.62%)
Mutual labels:  dockerhub
rocketchat-uptimerobot
Uptime Robot integration for Rocket.Chat
Stars: ✭ 34 (+6.25%)
Mutual labels:  webhook
disgo
A modular Golang Discord API Wrapper
Stars: ✭ 113 (+253.13%)
Mutual labels:  webhook
docker-multi-arch-hooks
Template Repository with Build Hooks for Multi-Arch and Semantic Versioned Docker Hub Containers
Stars: ✭ 29 (-9.37%)
Mutual labels:  dockerhub
sagdevops-ci-assets
Software AG DevOps library to support assets CI (continuous integration) with webMethods 9.x and 10.0. Work together with https://github.com/SoftwareAG/webmethods-sample-project-layout
Stars: ✭ 23 (-28.12%)
Mutual labels:  automated-deployment
deploy
Used to deploy project, includes webhooks.
Stars: ✭ 15 (-53.12%)
Mutual labels:  webhook

Build Status js-standard-style Coverage Status Code Climate

micro-dockerhub-hook

Automatic docker deployment with webhooks.

micro-dockerhub-hook listens to incoming HTTP POST-requests from hub.docker.com and triggers your specified script(s).

Features

  • Lightweight
  • Pretty simple setup process
  • Can be runned in a docker container
  • Supports updating multiple docker images
  • Scripts can trigger docker or docker-compose
  • Used in production
  • Good logging

Create a token

Create a secret token with openssl, uuidgen or something else. Don't use any slashes since token is going to be used in the URL.

export TOKEN=$(uuidgen)
echo $TOKEN

Installation alternatives

1. Run on host

Install

Nodejs and npm must be installed.

git clone http://github.com/maccyber/micro-dockerhub-hook
cd micro-dockerhub-hook
npm i

Edit config

See config.js

vim config.js

Configure repos and scripts

See scripts/index.js

vim scripts/index.js

Use this format: 'repo/image[:tag]': 'script.sh [parameter1 parameter2]',

tag and parameters are optional.

Remember to chmod +x script.sh

Start micro-dockerhub-hook

npm start

2. Run with docker-compose

Git clone

git clone http://github.com/maccyber/micro-dockerhub-hook

Add secret token in docker.env with

vim docker.env

Start with

docker-compose up -d

3. Run from docker hub

Git clone

git clone http://github.com/maccyber/micro-dockerhub-hook

Start with

docker run -d \
  -p 3000:3000 \
  -e TOKEN=${TOKEN} \
  -v ${PWD}/scripts:/src/scripts \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name micro-dockerhub-hook \
  maccyber/micro-dockerhub-hook

Configuration on docker hub

Go to https://hub.docker.com/ -> your repo -> Webhooks

Add a webhook like on the following image.

alt tag

Replace example.com with the domain of your server or it's ip address.

Replace abc123 with your secret token.

docker-hook listens to port 3000 by default.

Testing on local machine

Setup the development environment

git clone https://github.com/maccyber/micro-dockerhub-hook/
cd micro-dockerhub-hook
npm i
npm run dev

Run test with curl

curl -i -d @test/data/payload.json http://localhost:3000/$TOKEN
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].