
Deploy Pushpin
Pushpin 1.42: reverse proxy for real-time HTTP streaming and WebSockets.
pushpin
Just deployed
Deploy and Host Pushpin on Railway
Pushpin is a reverse proxy for real-time APIs. It sits in front of your backend and holds long-lived HTTP streams, long-polls and WebSocket connections open, while your backend stays stateless. To send data, the backend publishes to a channel over HTTP. Pushpin is maintained by Fastly, which acquired its creator, Fanout.
About Hosting Pushpin
This template runs the official fanout/pushpin:1.42.0 image as one service. Clients connect to the public domain, and Pushpin forwards each request to the backend named in PUSHPIN_TARGET, for example your app's private address. Your backend answers with GRIP instructions such as Grip-Hold: stream and later publishes messages to Pushpin's control API on the private network. Until you set a target, Pushpin's built-in test handler answers, so /stream works as a demo channel called test. Requests to your backend are signed with PUSHPIN_SIG_KEY. Pushpin needs no storage and fits the Hobby plan.
Common Use Cases
- Adding server-sent events or WebSockets to an existing REST backend
- Scaling real-time endpoints without keeping connections in your app servers
- Live feeds, notifications and progress updates driven by simple HTTP publishes
Dependencies for Pushpin Hosting
fanout/pushpin:1.42.0(official image)- Your own backend service, reachable over the private network
Deployment Dependencies
Implementation Details
| Service | Source | Networking | Storage |
|---|---|---|---|
| pushpin | fanout/pushpin:1.42.0 | public HTTPS on 7999, control API on private port 5561 | none |
| Variable | Purpose |
|---|---|
PUSHPIN_TARGET | Backend host:port, e.g. ${{app.RAILWAY_PRIVATE_DOMAIN}}:3000; empty uses the test handler |
PUSHPIN_SIG_KEY | Generated key for the Grip-Sig JWT that Pushpin adds to backend requests |
PUSHPIN_PUBLISH_URL | http://pushpin.railway.internal:5561/publish/ for your backend |
Publish from your backend:
curl -d '{"items":[{"channel":"news","formats":{"http-stream":{"content":"hello\n"}}}]}' "$PUSHPIN_PUBLISH_URL"
Your backend must listen on IPv6 (::) to be reachable over Railway's private network. The control API has no authentication, so it stays on the private network.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by Fastly or Fanout.
Why Deploy Pushpin 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 Pushpin 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
pushpin
fanout/pushpin:1.42.0PUSHPIN_TARGET

