{"id":13583051,"url":"https://github.com/maccyber/micro-dockerhub-hook","last_synced_at":"2025-04-07T06:07:21.059Z","repository":{"id":22248502,"uuid":"95718663","full_name":"maccyber/micro-dockerhub-hook","owner":"maccyber","description":"Automatic docker deployment with webhooks","archived":false,"fork":false,"pushed_at":"2024-10-27T16:53:39.000Z","size":512,"stargazers_count":32,"open_issues_count":31,"forks_count":22,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T05:03:53.759Z","etag":null,"topics":["automated-builds","automated-deployment","docker","dockerhub","dockerhub-webhook","hub-docker-com","webhook"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maccyber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-28T23:02:45.000Z","updated_at":"2022-04-22T16:22:07.000Z","dependencies_parsed_at":"2023-12-06T23:26:09.323Z","dependency_job_id":"49feef78-725e-4706-b62d-f267d4852c6f","html_url":"https://github.com/maccyber/micro-dockerhub-hook","commit_stats":{"total_commits":63,"total_committers":9,"mean_commits":7.0,"dds":0.6507936507936508,"last_synced_commit":"69368ea0a016b30b5cd50859d51eabd3e5a17221"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maccyber%2Fmicro-dockerhub-hook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maccyber%2Fmicro-dockerhub-hook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maccyber%2Fmicro-dockerhub-hook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maccyber%2Fmicro-dockerhub-hook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maccyber","download_url":"https://codeload.github.com/maccyber/micro-dockerhub-hook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601447,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated-builds","automated-deployment","docker","dockerhub","dockerhub-webhook","hub-docker-com","webhook"],"created_at":"2024-08-01T15:03:13.430Z","updated_at":"2025-04-07T06:07:21.038Z","avatar_url":"https://github.com/maccyber.png","language":"JavaScript","readme":"[![Build Status](https://travis-ci.org/maccyber/micro-dockerhub-hook.svg?branch=master)](https://travis-ci.org/maccyber/micro-dockerhub-hook)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)\n[![Coverage Status](https://coveralls.io/repos/github/maccyber/micro-dockerhub-hook/badge.svg)](https://coveralls.io/github/maccyber/micro-dockerhub-hook)\n[![Code Climate](https://codeclimate.com/github/maccyber/micro-dockerhub-hook/badges/gpa.svg)](https://codeclimate.com/github/maccyber/micro-dockerhub-hook)\n\n# micro-dockerhub-hook\n\nAutomatic [docker](https://www.docker.com) deployment with [webhooks](https://docs.docker.com/docker-hub/webhooks/).\n\nmicro-dockerhub-hook listens to incoming HTTP POST-requests from hub.docker.com and triggers your specified script(s).\n\n## Features\n\n* Lightweight\n* Pretty simple setup process\n* Can be runned in a docker container\n* Supports updating multiple docker images\n* Scripts can trigger docker or docker-compose\n* Used in production\n* Good logging\n\n# Create a token\nCreate a secret token with ``openssl``, ``uuidgen`` or something else. Don't use any slashes since token is going to be used in the URL.\n\n```sh\nexport TOKEN=$(uuidgen)\necho $TOKEN\n```\n\n# Installation alternatives\n\n## 1. Run on host\n\n### Install\n\nNodejs and npm must be installed.\n\n```sh\ngit clone http://github.com/maccyber/micro-dockerhub-hook\ncd micro-dockerhub-hook\nnpm i\n```\n\n### Edit config\n\nSee [config.js](config.js)\n\n```sh\nvim config.js\n```\n\n### Configure repos and scripts\n\nSee [scripts/index.js](scripts/index.js)\n\n```sh\nvim scripts/index.js\n```\n\nUse this format:\n`'repo/image[:tag]': 'script.sh [parameter1 parameter2]',`\n\ntag and parameters are optional.\n\nRemember to `chmod +x script.sh`\n\n### Start micro-dockerhub-hook\n```sh\nnpm start\n```\n\n## 2. Run with docker-compose\n\nGit clone\n```sh\ngit clone http://github.com/maccyber/micro-dockerhub-hook\n```\n\nAdd secret token in docker.env with\n```sh\nvim docker.env\n```\n\nStart with\n```sh\ndocker-compose up -d\n```\n\n## 3. Run from docker hub\n\nGit clone\n```sh\ngit clone http://github.com/maccyber/micro-dockerhub-hook\n```\n\nStart with\n```sh\ndocker run -d \\\n  -p 3000:3000 \\\n  -e TOKEN=${TOKEN} \\\n  -v ${PWD}/scripts:/src/scripts \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  --name micro-dockerhub-hook \\\n  maccyber/micro-dockerhub-hook\n```\n\n# Configuration on docker hub\n\nGo to https://hub.docker.com/ -\u003e your repo -\u003e Webhooks\n\nAdd a webhook like on the following image.\n\n![alt tag](https://i.imgur.com/DcAAA8G.png)\n\nReplace ``example.com`` with the domain of your server or it's ip address.\n\nReplace ``abc123`` with your secret token.\n\ndocker-hook listens to port 3000 by default.\n\n# Testing on local machine\n\nSetup the development environment\n\n```sh\ngit clone https://github.com/maccyber/micro-dockerhub-hook/\ncd micro-dockerhub-hook\nnpm i\nnpm run dev\n```\n\nRun test with ```curl```\n\n```sh\ncurl -i -d @test/data/payload.json http://localhost:3000/$TOKEN\n```\n","funding_links":[],"categories":["JavaScript","\u003ca name=\"JavaScript\"\u003e\u003c/a\u003eJavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaccyber%2Fmicro-dockerhub-hook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaccyber%2Fmicro-dockerhub-hook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaccyber%2Fmicro-dockerhub-hook/lists"}