Deploy Gorush
Gorush 1.22: push notification server for FCM and APNs, private network.
gorush
Just deployed
Deploy and Host Gorush on Railway
Gorush is a push notification server written in Go. Your backend sends one HTTP request, and Gorush delivers the message to Android devices through Firebase Cloud Messaging and to Apple devices through APNs. It handles batching, retries and per-token errors, so applications do not need to embed each vendor SDK.
About Hosting Gorush
This template runs the official appleboy/gorush:1.22.0 image as a private service. Gorush has no authentication of its own, so it gets no public domain; your backend calls it at http://gorush.railway.internal:8088/api/push. Before the first deploy, add a Firebase service account JSON to GORUSH_ANDROID_CREDENTIAL, an APNs key to GORUSH_IOS_KEY_BASE64, or both. The start command enables whichever platform has credentials. Without any, it stops with a clear message. Sync mode is on, so each push response lists failed tokens and their errors. Gorush keeps no state, so it needs no volume, and it fits the Hobby plan.
Common Use Cases
- Sending mobile push notifications from any backend language over plain HTTP
- One push gateway shared by several apps and services in a project
- Replacing a paid push provider with FCM and APNs directly
Dependencies for Gorush Hosting
appleboy/gorush:1.22.0(official image)- A Firebase service account (FCM) and/or an APNs auth key from Apple
Deployment Dependencies
Implementation Details
| Service | Source | Networking | Storage |
|---|---|---|---|
| gorush | appleboy/gorush:1.22.0 | private only, port 8088 | none |
| Variable | Purpose |
|---|---|
GORUSH_ANDROID_CREDENTIAL | Firebase service account JSON; enables Android |
GORUSH_IOS_KEY_BASE64 | APNs .p8 key, base64-encoded; enables iOS |
GORUSH_IOS_KEY_ID, GORUSH_IOS_TEAM_ID | From your Apple developer account |
GORUSH_IOS_PRODUCTION | false for the APNs sandbox, true for production |
GORUSH_URL | http://:8088 for other services |
Example request from a service in the project:
curl -XPOST "$GORUSH_URL/api/push" -H 'Content-Type: application/json' -d '{
"notifications": [{ "tokens": [""], "platform": 2, "title": "Hi", "message": "Hello" }]
}'
platform is 1 for iOS (add "topic": "") and 2 for Android. Don't add a public domain: anyone who can reach Gorush can send pushes with your credentials.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by the Gorush project.
Why Deploy Gorush 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 Gorush 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
gorush
appleboy/gorush:1.22.0GORUSH_IOS_KEY_ID
GORUSH_IOS_TEAM_ID
GORUSH_IOS_KEY_BASE64
GORUSH_ANDROID_CREDENTIAL

