Deploy webhook-inspector
Self-hosted webhook inspector to capture, inspect & replay webhooks
self-hosted-webhook-inspector
Just deployed
Deploy and Host webhook-inspector on Railway
webhook-inspector is a self-hosted webhook tester, debugger, and replay tool — an open-source alternative to webhook.site and RequestBin. It generates unique capture URLs, records every incoming HTTP request (headers, body, query, source IP) in PostgreSQL, streams them to a live UI in real time, and lets you replay any request to a target of your choice.
About Hosting webhook-inspector
Hosting webhook-inspector means running one small Node.js (Fastify) web service backed by a single PostgreSQL database — no Redis, queues, or extra services. The app builds from a multi-stage Dockerfile, runs its schema migration automatically on boot, and serves both the API and the bundled web UI on a single port. Live updates use Server-Sent Events, so it works behind standard proxies without WebSocket configuration. You point any webhook source (Stripe, GitHub, n8n, etc.) at your capture URL, watch requests arrive instantly, inspect the raw payloads, and replay them. An auto-cleanup job prunes old requests on a configurable retention window, keeping the database tidy without manual maintenance.
Common Use Cases
- Debug webhooks from Stripe, GitHub, Shopify, n8n, and WhatsApp Business API by inspecting their exact headers and payloads.
- Replay captured webhook events into a local or staging endpoint to reproduce and fix integration bugs.
- Run a private, self-hosted alternative to webhook.site so sensitive payloads never pass through a third party.
Dependencies for webhook-inspector Hosting
- A PostgreSQL database (added via Railway's PostgreSQL plugin).
- Node.js 20 runtime (handled automatically by the included Dockerfile).
Deployment Dependencies
- Source repository: https://github.com//self-hosted-webhook-inspector
- Railway PostgreSQL plugin: https://docs.railway.com/guides/postgresql
- Fastify: https://fastify.dev
- node-postgres (pg): https://node-postgres.com
Implementation Details
Set DATABASE_URL to reference the Postgres plugin, and the app handles the rest (migration runs on startup, health check at /health):
DATABASE_URL=${{Postgres.DATABASE_URL}}
Optional variables: ACCESS_TOKEN (gates the UI/API; capture URLs stay public), RETENTION_HOURS (default 168), MAX_BODY_BYTES (default 1048576), and PUBLIC_URL (for a custom domain). PORT is injected by Railway automatically.
Why Deploy webhook-inspector on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying webhook-inspector on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
self-hosted-webhook-inspector
Kjudeh/self-hosted-webhook-inspector