Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. webhook

webhook

MITGo2.8.3

A lightweight incoming webhook server written in Go that executes shell commands based on HTTP requests.

GitHubGitHub
11.8k stars865 forks0 contributors

What is webhook?

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.

Target Audience

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.

Value Proposition

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.

Overview

webhook is a lightweight incoming webhook server to run shell commands

Use Cases

Best For

  • Automating application redeployments on a staging server when code is pushed to a Git repository (e.g., GitHub or Bitbucket).
  • Setting up slash commands or outgoing webhook integrations for chat platforms like Slack or Mattermost to run server commands.
  • Executing custom shell scripts or maintenance tasks via HTTP GET or POST requests with secure trigger rules (e.g., secret tokens, IP whitelists).
  • Integrating with CI/CD pipelines to trigger builds, tests, or deployments using webhooks from services like GitLab or Jenkins.
  • Running behind reverse proxies (e.g., Nginx, Apache) or in Docker containers for scalable and secure webhook handling.
  • Serving hooks over HTTPS with custom certificates and configuring CORS headers for cross-origin requests in web applications.

Not Ideal For

  • Projects requiring complex workflow orchestration with task dependencies and state management
  • High-volume webhook processing scenarios needing built-in queuing, retries, and rate limiting
  • Teams that prefer a graphical interface or dashboard for monitoring and managing webhook endpoints

Pros & Cons

Pros

Lightweight and Focused

Executes only core tasks—receiving requests, parsing data, validating rules, and running commands—as per its philosophy, avoiding bloat and keeping it simple.

Flexible Configuration

Supports JSON or YAML configuration files with optional Go template parsing for dynamic setups, allowing easy customization and integration.

Robust Security Features

Includes trigger rules for secret tokens, IP whitelists, and HTTPS support with custom certificates, enhancing endpoint security without extra tools.

Easy Integration Options

Can run behind reverse proxies like Nginx, with systemd socket activation, or in Docker containers, offering versatile deployment for various environments.

Cons

Limited Multipart Parsing

Admits 'limited support' for multipart form data, only parsing JSON parts, which restricts handling of file uploads or complex payloads.

Proxy Security Caveats

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.

External Script Dependency

All business logic must be implemented in external shell scripts, increasing maintenance overhead and complexity for advanced automation needs.

Open Source Alternative To

webhook is an open-source alternative to the following products:

h
hookdoo

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.

h
hookdeck

Hookdeck is a platform for managing, debugging, and monitoring webhooks, providing tools for receiving, retrying, and inspecting webhook payloads from various services.

Frequently Asked Questions

Quick Stats

Stars11,760
Forks865
Contributors0
Open Issues90
Last commit2 months ago
CreatedSince 2015

Tags

#devops#integration#shell-commands#server#shell#ci-cd#webhook-server#deploy#web#go#self-hosted#automation#webhook

Built With

G
Go

Included in

Go169.1kSlack878
Auto-fetched 1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub