轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
appleboy/gorush
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

gorush Docker 镜像下载 - 轩辕镜像

gorush 镜像详细信息和使用指南

gorush 镜像标签列表和版本信息

gorush 镜像拉取命令和加速下载

gorush 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

gorush
appleboy/gorush
自动构建

gorush 镜像详细信息

gorush 镜像标签列表

gorush 镜像使用说明

gorush 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用Go语言编写的推送通知服务器
12 收藏0 次下载activeappleboy镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

gorush 镜像详细说明

gorush 使用指南

gorush 配置说明

gorush 官方文档

gorush - 推送通知服务器

基于Go语言(Golang)的Gin框架开发的推送通知微服务器。

镜像概述和主要用途

gorush是一个轻量级的推送通知服务器,支持iOS(APNS)和Android(FCM/GCM)平台,提供高性能的推送服务。该服务器采用Go语言开发,使用Gin框架构建RESTful API,支持多平台推送、消息队列、统计监控等功能,适用于需要向移动设备发送推送通知的应用服务。

核心功能和特性

  • 支持Google Cloud Messaging(Firebase Cloud Messaging),适用于Android设备
  • 支持HTTP/2 Apple Push Notification Service,适用于iOS设备
  • 支持YAML配置文件管理
  • 提供命令行工具发送单条通知
  • 提供Web API接口发送批量推送通知
  • 支持优雅重启和零停机部署
  • 支持HTTP/2或HTTP/1.1协议
  • 内置通知队列和多工作线程处理
  • 提供通知统计功能,显示成功和失败计数
  • 支持多种统计数据存储引擎:内存、Redis、BoltDB、BuntDB或LevelDB
  • 支持iOS证书的p12或pem格式
  • 提供系统状态和性能监控API
  • 支持HTTP代理访问Google服务器(GCM)
  • 支持失败通知重试机制
  • 支持Prometheus指标暴露

支持平台

  • APNS (Apple Push Notification Service)
  • GCM (Google Cloud Messaging) / Firebase Cloud Messaging

使用场景和适用范围

  • 移动应用后端推送服务
  • 需要同时支持iOS和Android推送的服务
  • 需要高并发推送处理能力的应用
  • 需要推送统计和监控的服务
  • 需要可靠推送和失败重试机制的场景

详细使用方法和配置说明

基本用法

下载二进制文件

可从发布页面下载预编译二进制文件。

使用Go安装:

$ go get -u -v github.com/appleboy/gorush

Linux系统:

$ wget [***] -O gorush

OS X系统:

$ wget [***] -O gorush

Windows系统:

$ wget [***] -O gorush.exe

命令行使用

  ________                              .__
 /  _____/   ____ _______  __ __  ______|  |__
/   \  ___  /  _ \\_  __ \|  |  \/  ___/|  |  \
\    \_\  \(  <_> )|  | \/|  |  /\___ \ |   Y  \
 \______  / \____/ |__|   |____//____  >|___|  /
        \/                           \/      \/

Usage: gorush [options]

服务器选项:
    -p, --port <port>                客户端连接端口 (默认: 8088)
    -c, --config <file>              配置文件路径
    -m, --message <message>          通知消息内容
    -t, --token <token>              设备令牌
    --title <title>                  通知标题
    --proxy <proxy>                  代理URL (仅用于GCM)
    --pid <pid path>                 进程ID文件路径
iOS选项:
    -i, --key <file>                 证书密钥文件路径
    -P, --password <password>        证书密钥密码
    --topic <topic>                  iOS主题
    --ios                            启用iOS推送 (默认: false)
    --production                     iOS生产环境模式 (默认: false)
Android选项:
    -k, --apikey <api_key>           Android API密钥
    --android                        启用Android推送 (默认: false)
通用选项:
    -h, --help                       显示帮助信息
    -v, --version                    显示版本信息

发送Android通知

使用以下命令发送单条Android通知:

$ gorush -android -m="通知消息内容" -k="API密钥" -t="设备令牌"

参数说明:

  • -m: 通知消息内容
  • -k: Firebase Cloud Messaging API密钥
  • -t: 设备令牌
  • --title: 通知标题
  • --proxy: 设置HTTP代理URL(仅用于GCM)

发送iOS通知

使用以下命令发送单条iOS通知:

$ gorush -ios -m="通知消息内容" -i="证书文件路径" -t="设备令牌" -topic="APNs主题"

参数说明:

  • -m: 通知消息内容
  • -i: Apple推送通知证书路径(pem或p12文件)
  • -t: 设备令牌
  • --title: 通知标题
  • --topic: 远程通知主题
  • --password: 证书密码

默认使用APNs开发环境。如需使用生产环境,请添加-production标志:

$ gorush -ios -m="通知消息内容" -i="证书文件路径" -t="设备令牌" -production

运行gorush Web服务器

确保配置文件存在(默认config.yml),默认端口为8088:

$ gorush -c config.yml

使用httpie工具获取API服务器状态:

$ http -v --verify=no --json GET https://localhost:8088/api/stat/go

Web API

gorush提供以下API端点:

  • GET /api/stat/go - 获取Golang运行时信息(cpu, 内存, gc等)
  • GET /api/stat/app - 获取通知成功和失败统计
  • GET /api/config - 获取服务器配置信息
  • GET /sys/stats - 获取系统状态和性能统计
  • GET /metrics - 获取Prometheus指标
  • POST /api/push - 发送推送通知

GET /api/stat/go

返回Golang运行时信息,HTTP状态码200:

{
  "time": 1460686815848046600,
  "go_version": "go1.6.1",
  "go_os": "darwin",
  "go_arch": "amd64",
  "cpu_num": 4,
  "goroutine_num": 15,
  "gomaxprocs": 4,
  "cgo_call_num": 1,
  "memory_alloc": 7455192,
  "memory_total_alloc": 8935464,
  "memory_sys": ***,
  "memory_lookups": 17,
  "memory_mallocs": 31426,
  "memory_frees": ***,
  "memory_stack": 524288,
  "heap_alloc": 7455192,
  "heap_sys": 8912896,
  "heap_idle": 909312,
  "heap_inuse": 8003584,
  "heap_released": 0,
  "heap_objects": ***,
  "gc_next": 9754725,
  "gc_last": 1460686815762559700,
  "gc_num": 2,
  "gc_per_second": 0,
  "gc_pause_per_second": 0,
  "gc_pause": [
    0.326576,
    0.227096
  ]
}

GET /api/stat/app

返回通知成功和失败统计信息:

{
  "version": "v1.6.2",
  "queue_max": 8192,
  "queue_usage": 0,
  "total_count": 77,
  "ios": {
    "push_success": 19,
    "push_error": 38
  },
  "android": {
    "push_success": 10,
    "push_error": 10
  }
}

GET /sys/stats

返回系统状态和性能统计:

{
  "pid": 80332,
  "uptime": "1m42.428010614s",
  "uptime_sec": 102.428010614,
  "time": "2016-06-26 12:27:11.675973571 +0800 CST",
  "unixtime": ***,
  "status_code_count": { },
  "total_status_code_count": {
    "200": 5
  },
  "count": 0,
  "total_count": 5,
  "total_response_time": "10.422441ms",
  "total_response_time_sec": 0.010422441000000001,
  "average_response_time": "2.084488ms",
  "average_response_time_sec": 0.0020844880000000002
}

GET /metrics

返回Prometheus监控指标,可用于系统监控和告警。

POST /api/push

发送推送通知的主要API端点。请求体需包含notifications数组,每个元素代表一个推送任务。

请求体参数

每个通知对象支持以下参数:

参数名类型描述是否必需备注
tokens字符串数组设备令牌列表是
platform整数平台类型(iOS=1, Android=2)是1=iOS, 2=Android
message字符串通知消息内容否
title字符串通知标题否
priority字符串消息优先级否normal或high
content_available布尔值数据消息是否唤醒应用否
sound字符串通知提示音类型否
data对象自定义数据否
retry整数失败重试次数否需小于配置中的max_retry值
api_key字符串Android API密钥否仅Android
to字符串目标设备令牌、通知密钥或主题否仅Android
collapse_key字符串通知折叠键否仅Android
delay_while_idle布尔值设备空闲时延迟发送否仅Android
time_to_live整数消息在GCM存储的过期时间否仅Android
restricted_package_name字符串应用包名否仅Android
dry_run布尔值测试请求不实际发送否仅Android
notification对象GCM消息负载否仅Android
expiration整数通知过期时间否仅iOS
apns_id字符串通知唯一标识符否仅iOS
topic字符串远程通知主题否仅iOS
badge整数应用图标 badge 数量否仅iOS
category字符串通知分类否仅iOS
alert对象iOS通知内容否仅iOS
iOS alert payload

iOS通知alert对象支持以下参数:

参数名类型描述是否必需
title字符串标题否
body字符串消息内容否
subtitle字符串副标题否
action字符串操作按钮标签否
action-loc-key字符串操作按钮本地化键否
launch-image字符串启动图片文件名否
loc-args字符串数组本地化参数否
loc-key字符串本地化键否
title-loc-args字符串数组标题本地化参数否
title-loc-key字符串标题本地化键否
Android notification payload

Android通知对象支持以下参数:

参数名类型描述是否必需
icon字符串通知图标否
tag字符串通知标签否
color字符串图标颜色,格式#rrggbb否
click_action字符串点击通知的动作否
body_loc_key字符串内容本地化键否
body_loc_args字符串内容本地化参数否
title_loc_key字符串标题本地化键否
title_loc_args字符串标题本地化参数否
iOS示例

发送普通iOS通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 1,
      "message": "Hello World iOS!"
    }
  ]
}

带alert和badge的iOS通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 1,
      "badge": 5,
      "alert": {
        "title": "游戏邀请",
        "body": "Bob想和你玩扑克",
        "action-loc-key": "PLAY"
      }
    }
  ]
}

带自定义数据的iOS通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 1,
      "message": "Hello World iOS!",
      "data": {
        "key1": "welcome",
        "key2": 2
      }
    }
  ]
}
Android示例

发送普通Android通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 2,
      "message": "Hello World Android!",
      "title": "您有新消息"
    }
  ]
}

带notification payload的Android通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 2,
      "message": "Hello World Android!",
      "title": "您有新消息",
      "notification": {
        "icon": "myicon",
        "color": "#***"
      }
    }
  ]
}

带自定义数据的Android通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 2,
      "message": "Hello World Android!",
      "title": "您有新消息",
      "data": {
        "Nick": "Mario",
        "body": "精彩比赛!",
        "Room": "PortugalVSDenmark"
      }
    }
  ]
}

发送多条不同平台的通知:

{
  "notifications": [
    {
      "tokens": ["token_a", "token_b"],
      "platform": 1,
      "message": "Hello World iOS!"
    },
    {
      "tokens": ["token_c", "token_d"],
      "platform": 2,
      "message": "Hello World Android!"
    }
  ]
}
响应体

成功响应:

{
  "success": "ok"
}

错误响应状态码:

状态码消息说明
400Missing notifications field.请求缺少notifications字段
400Notifications field is empty.notifications字段为空
400Number of notifications(50) over limit(10)通知数量超过限制

配置说明

gorush使用YAML格式的配置文件,默认路径为

查看更多 gorush 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.