selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

WebHook logo

Self-host WebHook

7.3.3

Hardened webhook-to-command runner for self-hosted use

ReleaseOpen SourceMIT
Updated10 hours ago
LanguageGo
Setup difficultyModerate
Stars
143
Port
9000 (HTTP webhook server)
Docker
soulteary/webhook
Install with Docker Compose

What is WebHook?

WebHook runs as a self-hosted webhook-to-command runner for production use in self-hosted, edge, and private networks. The software accepts HTTP requests, checks them against trigger rules such as HMAC signatures, IP allowlists, and payload matching, then runs allowed commands with request data supplied as arguments or environment variables. Core capabilities include a command allowlist, strict argument validation, adjustable concurrency and rate limiting with optional Redis-backed distributed limiting, Prometheus metrics, OpenTelemetry tracing, audit logging, hot configuration reload, and a web-based config generator. It works with JSON and YAML hook definitions using Go templating and stays compatible with adnanh/webhook configs. The project ships multi-architecture Docker images in core, runner, and extended variants, plus Homebrew, Go install, and pre-built binaries. It listens on port 9000 by default and needs no external database, though Redis is optional for distributed rate limiting.

Should you self-host WebHook?

WebHook scores 49/100 on selfhost.directory (how scoring works) and ranks #82 of 166 in Developer Tools. It has 143 GitHub stars.

It shipped 10 stable releases in the past year. The latest, 7.3.3, came out on 22 October 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is openhands (87/100, 92 068 stars). It scores higher overall, so compare the two before you pick. See WebHook vs openhands side by side.

Features

  • Argument validation
  • Audit Logging
  • Command path whitelisting
  • Go template support
  • HMAC signature validation
  • Hot configuration reload
  • IP Whitelisting
  • OpenAPI/Swagger specRecommend debugging/intranet only
  • OpenTelemetry tracing
  • Prometheus Metrics
  • Rate Limiting
  • Strict mode
  • Web-based config generator UINo authentication; recommend only for debugging or intranet

WebHook README

How to install WebHook

Install WebHook with Docker Compose

Docker Compose
Environment variables
WEBHOOK_IMAGE, DEMO_SECRET

services: webhook: image: ${WEBHOOK_IMAGE:-soulteary/webhook:runner-7.3.2} command: - -profile - secure - -allowed-command-paths=/bin/echo - -template - -hooks - /var/lib/webhook/hooks/hooks.yaml - -audit-file-path=/var/lib/webhook/runtime/audit.log - -verbose environment: DEMO_SECRET: ${DEMO_SECRET:-local-only-demo-secret} ports: - 127.0.0.1:9000:9000 volumes: - ./hooks:/var/lib/webhook/hooks:ro read_only: true tmpfs: - /tmp:size=16m,mode=1777 - /var/lib/webhook/runtime:size=16m,uid=65532,gid=65532,mode=0700 healthcheck: test: [CMD, wget, -q, -O, /dev/null, http://127.0.0.1:9000/readyz] interval: 2s timeout: 1s retries: 15 restart: unless-stopped

Example compose file in example/quickstart/

WebHook releases & version history

More in Automation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…