Skip to content

Paramoshka/WebhookHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WebhookHub

πŸ“¬ 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.

WebhookHub Dashboard


πŸš€ Why WebhookHub?

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.


✨ Core Features (MVP)

  • βœ… Receive webhooks at /hook/:source
  • βœ… Log full payloads, headers, timestamps
  • βœ… Replay any webhook via Web UI
  • βœ… Forwarding rules per source (fan-out, routing)
  • βœ… Optional incoming/outgoing HMAC signing (Stripe-style header format)
  • βœ… Web dashboard with filters, pagination
  • βœ… Secure login (admin account)
  • βœ… Postgres + GORM backend
  • βœ… Dockerized and ready to deploy

πŸ“Œ Roadmap

MVP - v0.1

  • 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

v0.2+

  • HMAC signature verification (e.g., Stripe-style)
  • Delivery status tracking + metrics
  • Dead-letter queue
  • Configurable retry/backoff policy
  • Dead-letter queue management UI

v0.3+

  • Advanced search and filters
  • Retention / cleanup policies
  • Export and bulk redelivery tools
  • Telegram integration
  • OpenAPI schema

v0.4+

  • Plugin system for custom processors

πŸ› οΈ Tech Stack

Component Technology
Language Go
Database PostgreSQL (via GORM)
UI HTML + HTMX
Auth SecureCookie + bcrypt
Container Docker + Compose

πŸ“¦ Getting Started

git clone https://github.com/Paramoshka/WebhookHub.git
cd webhookhub
docker-compose up -d --build

πŸ” Generate Session Key

WebhookHub uses a 32-byte secret key to sign session cookies.
You must set this in your .env file as SESSION_KEY.

To generate a secure random key:

openssl rand -hex 32

βš™οΈ Configuration

Retention cleanup

Retention cleanup is optional and disabled by default. Configure via .env:

# Retention cleanup
RETENTION_ENABLED=false
RETENTION_DAYS=30
RETENTION_INTERVAL=24h
RETENTION_BATCH_SIZE=300

When enabled, expired webhooks are removed in batches every interval by received_at.

Advanced logs filters (UI and API)

/dashboard includes advanced filters in the UI and the same parameters are available via:

GET /partials/webhooks

Query params:

  • source: exact match on webhook source.
  • status: exact match on status (pending, retrying, success, failed, dead_lettered).
  • q: full-text search across source, payload, headers, last error, and DLQ reason.
  • from: lower bound for received_at (supports RFC3339, RFC3339Nano, 2006-01-02T15:04, 2006-01-02).
  • to: upper bound for received_at (supports the same formats as from; date-only values are interpreted as end-of-day).
  • sort: one of id_desc (default), received_desc, received_asc, id_asc.
  • page: page number (default 1), 10 items per page.

Example:

curl "http://localhost:8080/partials/webhooks?source=stripe&status=failed&q=payment&from=2026-07-01&to=2026-07-11T23:59&sort=received_desc&page=2"

πŸ“„ License

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.

About

πŸ“¬ **WebhookHub** is a lightweight, self-hosted service for receiving, logging, and forwarding webhooks.

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors