Webhix

Self-hosted webhook inspector. Single binary, SQLite, no external dependencies.
webhook.site is the go-to tool for debugging webhooks, but it sends your data to someone else's server. Stripe payloads, OAuth tokens, PII β all of it leaves your network. A lot of companies block it outright for that reason. Webhix runs on your own infrastructure and stores everything locally.

Features
- π‘ Capture any HTTP method β headers, body, query params, IP, timestamp, content type, size
- π΄ Live UI updates via SSE β no page refresh needed
- πͺ Replay any request with one click
- π Custom responses β configure status, headers, and body (lightweight mock server)
- π CLI forwarding to localhost:
webhix forward <token> --to localhost:3000
- π Export as curl β copy any request as a runnable command
- π Full-text search and filter by HTTP method
- π Basic auth out of the box
- π³ Docker, Compose, or standalone binary
- πΎ SQLite by default β no Redis or Postgres required
Why not webhook.site / smee.io / webhook-tester?
|
Webhix |
webhook.site (self-hosted) |
smee.io |
tarampampam/webhook-tester |
| Self-hosted |
β
|
β
|
β |
β
|
| Single binary |
β
|
β PHP + Composer + MySQL |
β |
β Redis or fs driver |
| Request history |
β
|
β
|
β |
β
|
| Live UI |
β
|
β
|
β |
β
|
| Replay |
β
|
β |
β |
β |
| CLI forwarding |
β
built-in |
β |
β
only this |
β needs ngrok |
| Custom responses |
β
|
β |
β |
β |
Webhix is the only tool combining single-binary deployment, request replay, and custom responses β no Redis, no PHP, no external tunnel services.
Quick start
Binary
curl -fsSL https://webhix.online/install.sh | sh
webhix serve --base-url https://hooks.yourdomain.com
Or download manually from releases.
Docker
docker run -p 8080:8080 -v webhix-data:/data \
-e WEBHIX_BASE_URL=https://hooks.yourdomain.com \
ghcr.io/gaisbax/webhix
Docker Compose
services:
webhix:
image: ghcr.io/gaisbax/webhix
ports: ["8080:8080"]
volumes: ["./data:/data"]
environment:
WEBHIX_BASE_URL: https://hooks.yourdomain.com
Local dev (no domain needed)
webhix serve
# Listening on http://localhost:8080
Endpoint URLs follow the pattern https://<base-url>/r/<token>.
Auth
Auth is optional. If not configured, the dashboard is open to anyone with network access β recommended for local use only. To protect it, set one or both:
# Basic auth password (browser login)
WEBHIX_PASSWORD=yourpassword webhix serve
# Secret key for API / CLI access (Authorization: Bearer or X-Webhix-Key header)
WEBHIX_SECRET_KEY=yourkey webhix serve
# Both at once
webhix serve --password yourpassword --secret-key yourkey
Webhook capture URLs (/r/<token>) are always public β no auth required there.
Reverse proxy
Works behind Caddy, Nginx, Traefik. Reads X-Forwarded-* headers automatically. Set --base-url or WEBHIX_BASE_URL to match your public domain.
Configuration
| Env var |
Default |
Description |
WEBHIX_BASE_URL |
http://localhost:8080 |
Public base URL for generated endpoint links |
WEBHIX_ADDR |
:8080 |
Address to listen on (e.g. 0.0.0.0:9000) |
WEBHIX_DB_PATH |
./data |
Path to SQLite database directory |
Technical notes
- Written in Go, compiles to a single binary
- SQLite by default, no external database required
- UI is embedded in the binary via
go:embed
- Runs on Linux, macOS, Windows (amd64 + arm64)
- Memory usage under 50 MB at idle
Roadmap
v0.2
- Multi-user support with basic RBAC
- Webhook signature verification (Stripe, GitHub style)
- Schema validation
- Notifications on new requests (Slack, Telegram, Discord)
- Optional Postgres support
- Auto-HTTPS via Let's Encrypt (no reverse proxy needed)
v0.3+
- Tunnel mode β connect Webhix to a managed relay and get a public URL without a server
License
AGPL-3.0. Self-hosted use is always free and open source.
If you want to run Webhix as a network service and keep your changes private, contact us for a commercial license.