whatisgithub

What is gorush?

appleboy/gorush — explained in plain English

Analysis updated 2026-06-24

8,724GoAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A self-hosted push notification server written in Go that sends messages to iOS, Android, and Huawei devices through a simple HTTP or gRPC API call, no third-party SaaS required.

Mindmap

mindmap
  root((gorush))
    What it does
      Sends push notifications
      iOS Android Huawei
    How it works
      HTTP and gRPC API
      Worker queue
      YAML configuration
    Deployment
      Docker
      Kubernetes
      AWS Lambda
    Features
      Metrics endpoint
      TLS auto-provision
      Statistics dashboard
    Audience
      Backend developers
      Mobile app teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Route all mobile push notifications from your backend through a single gorush HTTP endpoint instead of calling Apple and Firebase directly

USE CASE 2

Run a lightweight push notification server in Docker using under 30MB of memory to notify your app users

USE CASE 3

Send bulk push notifications to thousands of iOS and Android devices in a single API request with queue-based processing

What is it built with?

GoDockergRPCKubernetesYAML

How does it compare?

appleboy/gorushmvdan/shmark3labs/mcp-go
Stars8,7248,7468,695
LanguageGoGoGo
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Apple Push Notification Service certificates or Firebase Cloud Messaging credentials configured in a YAML file before the server can send notifications.

So what is it?

Gorush is a self-hosted push notification server written in Go. It acts as a central service you run on your own infrastructure that sends push notifications to iOS, Android, and Huawei devices on your behalf. Instead of each part of your backend talking directly to Apple or Google's notification systems, everything goes through gorush via a simple HTTP API call. To send a notification, you POST a JSON payload to gorush specifying the device token, the platform (iOS, Android, or Huawei), a title, and a message. The server takes care of forwarding that to Apple Push Notification Service, Firebase Cloud Messaging, or Huawei's equivalent, whichever applies. You can include multiple notifications in a single request. The server queues incoming requests and processes them with a configurable number of worker processes running in parallel, which helps maintain throughput under load. Setup involves downloading a binary (or running the provided Docker image), creating a YAML configuration file that specifies your Apple or Firebase credentials and which platforms to enable, and starting the server. The average memory footprint is around 28 megabytes. There is also a built-in statistics endpoint that shows how many notifications succeeded or failed. Beyond the basics, gorush supports running as a gRPC service in addition to HTTP, integrates with several queue backends for higher-volume deployments, can expose metrics for monitoring tools, and handles TLS certificate provisioning automatically. It can run inside containers and is documented for deployment on Kubernetes and AWS Lambda. A live demo instance is available, and the repository links to a sample Flutter application to test notifications end to end. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I'm building a mobile app backend and want to send push notifications through gorush. Show me the Docker setup and a sample JSON payload for sending a notification to an iOS device.
Prompt 2
I'm configuring gorush to send Android notifications via Firebase Cloud Messaging. How do I set up the YAML config with my Firebase credentials and test it with a sample device token?
Prompt 3
My gorush server needs to handle high volume. How do I tune the worker pool size and which queue backend should I choose for reliability?
Prompt 4
I want to use gorush as a gRPC service instead of HTTP in my Go microservice. Show me the configuration and a Go client code example.

Frequently asked questions

What is gorush?

A self-hosted push notification server written in Go that sends messages to iOS, Android, and Huawei devices through a simple HTTP or gRPC API call, no third-party SaaS required.

What language is gorush written in?

Mainly Go. The stack also includes Go, Docker, gRPC.

How hard is gorush to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is gorush for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.