Deploy Smee | Open Source Webhook Forwarding to localhost
Forward webhooks to your laptop — self-hosted smee.io server
smee
Just deployed
Deploy and Host Smee on Railway
Smee forwards webhooks to a machine that has no public address. Point GitHub, Stripe or any other provider at a channel URL on your deployment, run the client on your laptop, and the payloads arrive on localhost — no tunnel, no port forwarding, no firewall exception.
About Hosting Smee
A single stateless service, the same one that runs smee.io. Channels are created by visiting a URL; deliveries are streamed to connected clients over server-sent events and never stored.
Running your own is not about scale. It is that webhook payloads carry signing secrets, customer records and internal identifiers, and on the public instance they pass through infrastructure you do not control.
Common Use Cases
- Developing a GitHub App or bot: Real events from a real repository against code running locally, with a debugger attached.
- Testing payment and provider webhooks: Stripe, Shopify or Twilio deliveries reproduced on your machine instead of guessed from documentation.
- Sharing one event stream with a team: Several developers subscribing to the same channel and each getting every delivery.
Dependencies for Smee Hosting
Deployment Dependencies
- The official smee.io image
- The smee-client CLI, or
npx smee-client, on the receiving machine
Implementation Details
There is no database and no volume, because there is nothing to persist: a channel exists as long as someone is connected, and payloads are relayed, not stored. Redeploying drops open connections, and clients reconnect on their own.
Create a channel by opening https:///new, then run npx smee-client --url https:/// --target http://localhost:3000/webhook. The provider gets the channel URL; the client does the rest.
Channel URLs are unguessable but public. Anyone who has one receives every delivery on it, so treat the URL like a secret and make a new channel rather than sharing an old one.
Providers expect a fast response. Smee acknowledges immediately and forwards asynchronously, so a slow local handler will not cause the provider to record a failed delivery.
Why Deploy Smee 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 Smee 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.
Resources: one of the cheapest things you can run — a small Node process holding open connections, well under 100 MB, a few dollars a month.
Template Content
