π¬ WebhookHub is a lightweight, self-hosted service for receiving, logging, and forwarding webhooks.
Use it to debug, inspect, replay, and route incoming webhooks during development or in production. No third-party services, no cloud lock-in β just full control.
When working with external services (Stripe, GitHub, Telegram, Shopify, etc.), developers often face the same pain points:
- β Where did the webhook go? Why didnβt my service receive it?
- π How do I replay a webhook for debugging or recovery?
- π How do I inspect payloads and headers easily?
- π‘ How can I fan-out one webhook to multiple services?
WebhookHub provides a simple, developer-friendly solution to these problems.
- β
Receive webhooks at
/hook/:source - β Log full payloads, headers, timestamps
- β Replay any webhook via Web UI
- β Forwarding rules per source (fan-out, routing)
- β Web dashboard with filters, pagination
- β Secure login (admin account)
- β Postgres + GORM backend
- β Dockerized and ready to deploy
- Accept and log webhooks
- View logs with filters and pagination
- Replay webhooks on demand
- Add/edit/delete forwarding rules
- Delete individual webhook logs
- Admin auth (session cookie + bcrypt)
- PostgreSQL + GORM backend
- Docker + compose setup
- HMAC signature verification (e.g., Stripe-style)
- Delivery status tracking + metrics
- Dead-letter queue
- Ngrok/localtunnel integration (for local dev)
- OpenAPI schema
- Plugin system for custom processors
| Component | Technology |
|---|---|
| Language | Go |
| Database | PostgreSQL (via GORM) |
| UI | HTML + HTMX |
| Auth | SecureCookie + bcrypt |
| Container | Docker + Compose |
git clone https://github.com/yourname/webhookhub
cd webhookhub
docker-compose up -d --buildWebhookHub uses a 32-byte secret key to sign session cookies.
You must set this in your .env file as SESSION_HASH_KEY.
To generate a secure random key:
openssl rand -hex 32curl -X POST http://localhost:8080/hook/test \
-H "Content-Type: application/json" \
-H "X-Webhook-Source: test" \
-d '{"event":"test.ping","message":"Hello from test curl"}'This project is licensed under AGPL-3.0 for self-hosted and open-source use.
Commercial SaaS deployment or integration into paid platforms requires a separate license. Contact [ivan.parfenov.42a@gmail.com] for details.