Deploy Pushpin

Pushpin 1.42: reverse proxy for real-time HTTP streaming and WebSockets.

Deploy 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

ServiceSourceNetworkingStorage
pushpinfanout/pushpin:1.42.0public HTTPS on 7999, control API on private port 5561none
VariablePurpose
PUSHPIN_TARGETBackend host:port, e.g. ${{app.RAILWAY_PRIVATE_DOMAIN}}:3000; empty uses the test handler
PUSHPIN_SIG_KEYGenerated key for the Grip-Sig JWT that Pushpin adds to backend requests
PUSHPIN_PUBLISH_URLhttp://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

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51