All Projects β†’ danistefanovic β†’ Hooka

danistefanovic / Hooka

Licence: mit
😎 A webhook server with zero coding

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hooka

Git Deploy
Php Script for Auto-Pull in server (Using WebHook from GitLab, GitHub and Bitbucket)
Stars: ✭ 495 (+175%)
Mutual labels:  webhook, deployment, trigger, bitbucket
Git Auto Deploy
Deploy your GitHub, GitLab or Bitbucket projects automatically on Git push events or web hooks
Stars: ✭ 251 (+39.44%)
Mutual labels:  webhook, deployment, bitbucket
Generic Webhook Trigger Plugin
Can receive any HTTP request, extract any values from JSON or XML and trigger a job with those values available as variables. Works with GitHub, GitLab, Bitbucket, Jira and many more.
Stars: ✭ 287 (+59.44%)
Mutual labels:  webhook, trigger, bitbucket
Keel
Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
Stars: ✭ 1,870 (+938.89%)
Mutual labels:  webhook, deployment, trigger
atlassian-kubernetes
All things Atlassian and Kubernetes
Stars: ✭ 30 (-83.33%)
Mutual labels:  deployment, bitbucket
k8s-vault-webhook
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
Stars: ✭ 107 (-40.56%)
Mutual labels:  integration, webhook
Skyhook
Parses webhooks and forwards them in the proper format to Discord.
Stars: ✭ 263 (+46.11%)
Mutual labels:  webhook, bitbucket
zoom-slack-status-updater
Update your Slack status automatically when you join a Zoom meeting.
Stars: ✭ 23 (-87.22%)
Mutual labels:  slack, webhook
Apex Recipes
A library of concise, meaningful examples of Apex code for common use cases following best practices.
Stars: ✭ 307 (+70.56%)
Mutual labels:  integration, trigger
Zabbix Slack Alertscript
Zabbix AlertScript for Slack.com chat
Stars: ✭ 406 (+125.56%)
Mutual labels:  webhook, slack
Rust Slack
A rust crate for sending messages to Slack via webhooks
Stars: ✭ 128 (-28.89%)
Mutual labels:  webhook, slack
SlackWebhooksGithubCrawler
Search for Slack Webhooks token publicly exposed on Github
Stars: ✭ 21 (-88.33%)
Mutual labels:  slack, webhook
iris
Watch on Kubernetes events, filter and send them as standard wehbook to any system
Stars: ✭ 57 (-68.33%)
Mutual labels:  slack, webhook
sre.surmon.me
πŸ’» SRE service for Surmon.me blog.
Stars: ✭ 34 (-81.11%)
Mutual labels:  deployment, webhook
pm2-githook
receive webhook from github/gitlab and ask pm2 to reload the application for you
Stars: ✭ 39 (-78.33%)
Mutual labels:  webhook, bitbucket
Webpack Deploy
Collection of useful utilities for deploying (not only) Webpack apps
Stars: ✭ 44 (-75.56%)
Mutual labels:  slack, deployment
Vscode Deploy Reloaded
Recoded version of Visual Studio Code extension 'vs-deploy', which provides commands to deploy files to one or more destinations.
Stars: ✭ 129 (-28.33%)
Mutual labels:  slack, deployment
feater
Tool for rapid deployment of selected features of your web application to isolated testing or demo environments.
Stars: ✭ 27 (-85%)
Mutual labels:  deployment, bitbucket
pr-reviews-reminder-action
A GitHub Action to send Slack/Teams notification for Pull Request that are waiting for reviewers.
Stars: ✭ 18 (-90%)
Mutual labels:  slack, webhook
Webhook
webhook is a lightweight incoming webhook server to run shell commands
Stars: ✭ 7,201 (+3900.56%)
Mutual labels:  webhook, integration

hooka

Build Status Dependency status

Hooka is a webhook server written in Node, which allows you to easily create HTTP endpoints to trigger the execution of configured commands.

Installation

$ npm install -g hooka

Features

  • Zero coding
  • Pass request data to the command
  • Set validation rules to trigger hooks only under certain circumstances
  • TLS/SSL support

Documentation

Basic usage

  1. Create a webhooks.json file:

    Windows users: Replace $MESSAGEwith %MESSAGE%

[
    {
        "method": ["GET", "POST"],
        "path": "/hello",
        "command": "echo Hello world"
    },
    {
        "method": "POST",
        "path": "/hello-again",
        "command": "echo Hello from the other side: $MESSAGE",
        "validate": [
            {
                "source": "jsonBody",
                "find": "payload.token",
                "match": "exactly",
                "value": "MySecret"
            }
        ],
        "parseJson": [
            {
                "query": "payload.hello",
                "variable": "MESSAGE"
            }
        ]
    }
]
  1. Start Hooka in the same directory:
$ hooka
  1. Open http://localhost:3000/hello in your browser to trigger the first hook.

  2. Trigger the second hook with a POST request in a new terminal window:

$ curl \
    -H "Content-Type: application/json" \
    -X POST \
    -d '{"hello": "I love cupcakes", "token": "MySecret"}' \
    http://localhost:3000/hello-again
  1. Now if you go back to your terminal where Hooka is running, you should see something like:

With Docker

Replace /path/to/webhooks.json with the actual path to your webhooks JSON file.

$ docker run -v /path/to/webhooks.json:/src/webhooks.json -p 3000:3000 danistefanovic/hooka

Security

Since anyone could in principle send requests to your webhook server, it’s important to implement some basic security steps to keep your webhooks safe. Here are some tips that can help reduce the risks:

  • Enable TLS/SSL if the transmitted data is sensitive or if you wish to protect against replay attacks
  • Use validation rules to verify that the requests originated from the expected source. For example:
    • Enable HMAC based validation with the hmac-sha1 match type
    • Send a custom token in the payload or as a HTTP header which has to match exactly
  • Obscurity as a security layer:
    • Set hook paths which are not easy to guess
    • Be creative with the HTTP method for the webhook

License

Do whatever you want with it, but don't blame me for anything that goes wrong.

MIT Β© Daniel Stefanovic

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].