A lightweight incoming webhook server written in Go that executes shell commands based on HTTP requests.
Webhook is a lightweight, configurable tool written in Go that creates HTTP endpoints (hooks) on a server to execute configured shell commands. It solves the problem of automating tasks like redeploying applications, running scripts, or integrating with services like GitHub, Bitbucket, Slack, and Mattermost by parsing request data and validating trigger rules before executing commands.
System administrators, DevOps engineers, and developers who need to automate server-side tasks via HTTP requests, such as deploying code, running maintenance scripts, or integrating with third-party webhook services.
Developers choose Webhook for its simplicity and focus on doing one thing well: receiving requests, parsing data, validating rules, and executing commands, while leaving everything else to the command's author. Its lightweight nature, configuration flexibility (JSON/YAML), and security features like trigger rules and HTTPS support make it a reliable choice over more complex alternatives.
webhook is a lightweight incoming webhook server to run shell commands
Executes only core tasks—receiving requests, parsing data, validating rules, and running commands—as per its philosophy, avoiding bloat and keeping it simple.
Supports JSON or YAML configuration files with optional Go template parsing for dynamic setups, allowing easy customization and integration.
Includes trigger rules for secret tokens, IP whitelists, and HTTPS support with custom certificates, enhancing endpoint security without extra tools.
Can run behind reverse proxies like Nginx, with systemd socket activation, or in Docker containers, offering versatile deployment for various environments.
Admits 'limited support' for multipart form data, only parsing JSON parts, which restricts handling of file uploads or complex payloads.
IP whitelist rules don't work correctly when running behind a reverse proxy, as noted in the README, requiring additional proxy-side configuration for client IP restrictions.
All business logic must be implemented in external shell scripts, increasing maintenance overhead and complexity for advanced automation needs.
webhook is an open-source alternative to the following products:
Hookdoo is a webhook management and automation service that allows users to create, manage, and trigger workflows based on incoming webhook events from various applications.
Hookdeck is a platform for managing, debugging, and monitoring webhooks, providing tools for receiving, retrying, and inspecting webhook payloads from various services.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.