Deploy Webhook Buffer

Depoly Webhook Buffer on Railway

Deploy Webhook Buffer

Just deployed

/data

Deploy and Host Webhook Buffer with Railway

Webhook Buffer is a lightweight, self-hosted relay that sits between webhook senders and your services. It accepts every incoming webhook instantly, stores it on disk, and fans it out to one or more destinations, retrying until each one succeeds. If a destination goes down, nothing is lost: webhooks are held until it comes back.

About Hosting Webhook Buffer

Webhook Buffer is a single static Rust binary backed by SQLite, shipped as a tiny multi-arch Docker image. On Railway it runs as one service with a persistent volume mounted at /data, where the database lives. Senders always get an immediate 202 Accepted, so slow or offline destinations never cause upstream timeouts. Error responses are retried with exponential backoff up to a per-destination limit. Destinations that don't respond at all are held until they call their recovery URL (/d/{token}/alive), or until you click "Mark alive" in the panel. A built-in web panel, protected by an admin token, lets you manage endpoints and destinations, inspect headers and bodies, replay webhooks, and work through the retry queue.

Common Use Cases

Webhook Buffer is a single static Rust binary backed by SQLite, shipped as a tiny multi-arch Docker image. On Railway it runs as one service with a persistent volume mounted at /data, where the database lives. Senders always get an immediate 202 Accepted, so slow or offline destinations never cause upstream timeouts. Error responses are retried with exponential backoff up to a

Common Use Cases

  • Keep GitHub, Stripe, or CI webhooks from being lost while your app is deploying, restarting, or down for maintenance
  • Fan out a single webhook source to several services (staging and production, multiple microservices, logging)
  • Inspect and replay real webhook payloads while debugging an integration
  • Put a stable public webhook URL in front of a service on a home server or private network that is sometimes offline

Dependencies for Webhook Buffer Hosting

  • A Railway volume mounted at /data for the SQLite database
  • An ADMIN_TOKEN secret for the web panel and admin API

Deployment Dependencies

Implementation Details

VariableDefaultDescription
ADMIN_TOKENgeneratedToken for the web panel and /api
LISTEN_ADDR0.0.0.0:8080Listen address (expose port 8080)
DB_PATH/data/webhook-buffer.dbSQLite database path
RETENTION_DAYS7How long delivered webhooks are kept (undelivered ones are never pruned)
MAX_BODY_BYTES10485760Maximum accepted body size
  • Health check path: /healthz. It returns 200 ok when the database responds.
  • Webhook URLs look like https:///h/{slug}. Sub-paths and query strings are forwarded to each destination.
  • Run a single replica. The SQLite database lives on one volume and is not designed to be shared between instances.

Why Deploy Webhook Buffer 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 scale it vertically as your traffic grows.

By deploying Webhook Buffer 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

By deploying Webhook Buffer 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

More templates in this category

View Template
Celery | Web, Worker and Scheduler as Three Services
Web, worker and scheduler wired up: Celery on Redis, outcomes in Postgres.

Templates Guru
0
View Template
Redpanda
Redpanda 26.2: Kafka-compatible streaming, single node, with Kafbat UI.

Agaz Self-Host
2
View Template
smoothmq
A drop-in replacement for AWS SQS

poundifdef
7