<!-- title: 8个开源推送神器，手机随叫随到 -->

# 一行 curl，手机就响：8 个开源推送神器深度拆解

## 本期思路

前几期挖过终端工具、诊断面板、地图栈、API 调试，本期换个所有开发者都天天被折磨、却很少有人认真自建的领域：**消息推送**。痛点非常具体——OneSignal、极光推送按设备数收年费；家庭服务器上的下载、备份、告警散落在 Telegram、邮件、短信里各自为政；而 iPhone 因为系统限制，自建通知几乎是「不可能任务」。本期围绕「自建推送中枢」这条主线，从一行命令就能跑的轻量方案，到可承载产品级通知的基建框架，共拆 8 个仓库，覆盖 Go、Python、TypeScript 三种技术栈和从个人到商业的不同层级。注：本文为离线盘点，Star 数为量级口径，精确数据以各仓库页面实时显示为准。

---

## 1. ntfy | binwiederhier/ntfy

**仓库**：[github.com/binwiederhier/ntfy](https://github.com/binwiederhier/ntfy) | 万星级头部项目 | 长期高频更新，是自托管圈最活跃的项目之一

**一句话定位**：把「发通知」变成一次 HTTP 请求——`curl -d "备份完成" ntfy.sh/我的频道`，手机立刻震动。

**核心功能拆解**：ntfy 的设计哲学是「主题即 URL」，不需要注册账号、不需要 SDK，向任意主题 POST 一段文本就算发送完成，安卓/iOS 官方 App 订阅同名主题即可接收。它是纯 Go 实现的单二进制服务，支持 Docker 自建，自带访问控制（ACL）、消息缓存与 TTL、附件存储、消息优先级和标签 emoji。最硬核的细节有两个：一是它是 **UnifiedPush 生态的参考实现**，Tusky 等 App 借它让安卓用户摆脱 Google 服务框架也能收到推送；二是 iOS 的处理——iOS 不允许应用常驻后台，自建服务器配合官方上游通道（upstream-base-url）即可让 iPhone 也实现秒级推送，这是绝大多数自建方案做不到的。另一个实用提醒：公共实例上主题名就是密码，务必用随机长字符串或自建开启鉴权。

**上手难度**：⭐（官方托管版免安装即用，自建一条 docker 命令）

**适用人群**：家庭实验室玩家、运维脚本作者、IoT 开发者。变现上官方已示范了「免费自托管 + 付费托管云」的经典路径，二次开发可做园区物业通知、IoT 设备告警托管等垂直托管服务。

---

## 2. Bark | Finb/bark-server

**仓库**：[github.com/finb/bark-server](https://github.com/finb/bark-server)（配套 iOS 客户端 Finb/Bark）| 数千星，中文圈知名度极高 | 客户端持续维护，服务端更新节奏放缓但稳定可用

**一句话定位**：iPhone 用户自建推送的事实标准——装个 App，一条 URL 就能把消息推到自己手机。

**核心功能拆解**：Bark 的聪明之处在于绕开了 iOS 的死结：它用一个上架 App Store 的客户端常驻接收苹果 APNs 通道，自部署的 Go 版 bark-server 负责接收你的 HTTP 请求并中转到 APNs，所以「自建服务器 + 官方 App」是合法组合，不需要自己买苹果开发者账号。推送接口极简，所有能力都编码进 URL 参数：自定义铃声、分组折叠、图标、点击跳转链接、定时推送，还支持推送内容的端侧加密（密钥留在自己手里，服务器只见密文，详见项目文档）。对中文用户还有个隐性优势：默认配置对国内网络环境友好，不像 Telegram Bot 那样需要代理。局限也很清楚：只覆盖 iOS 一端，安卓用户请直接看 ntfy 或 Gotify。

**上手难度**：⭐（Docker 起服务 + App 里填服务器地址，两分钟）

**适用人群**：iPhone 用户、iOS 效率工具作者。变现思路：帮企业部署「私有推送网关」——很多公司想把业务提醒推到员工 iPhone 又不敢走第三方 SDK，这是个真实付费场景。

---

## 3. Gotify | gotify/server

**仓库**：[github.com/gotify/server](https://github.com/gotify/server) | 数千星老牌项目 | 长期维护，社区稳定

**一句话定位**：家庭/内网通知台——带 Web 界面的自托管消息中心，一个界面收所有服务的提醒。

**核心功能拆解**：和 ntfy 的「无状态 URL」路线不同，Gotify 是传统架构：单 Go 二进制 + SQLite（也支持 MySQL/Postgres），自带管理后台，可以建多个「应用」，每个应用发一个 Token，不同来源的消息在界面上分区展示。传输层走 REST API + WebSocket 流式接口，安卓官方客户端可用，接入 Truenas、Jellyfin、Gitea 这类自带 webhook 的工具基本是填个 URL 的事。实现上它把「消息队列 + 存储 + 展示」都收进一个进程，资源占用极低，树莓派都能跑，是「给家里所有设备装一个收件箱」的最佳答案。和 ntfy 怎么选：要的是**界面化管理、历史消息留档、多人多应用隔离**，选 Gotify；要的是**极简、脚本一行调用、跨端生态**，选 ntfy。两者也常被搭配使用。

**上手难度**：⭐

**适用人群**：NAS 玩家、小团队内网工具链维护者。二开方向：打包成 NAS 应用商店的一键套件，或给中小团队做「内网告警交付」按部署收费。

---

## 4. Chanify | chanify/chanify

**仓库**：[github.com/chanify/chanify](https://github.com/chanify/chanify) | 千星级小众精品（低于 2000★）| 更新频率低，功能已稳定

**一句话定位**：Bark 的极简同类——Go 单文件服务端 + iOS 客户端，专注「发得快、收得稳」。

**核心功能拆解**：Chanify 的思路和 Bark 高度相似但更克制：Go 编译出单二进制，一条命令起服务，按设备发放 Token，HTTP 请求即推送。除了文本，它原生支持图片、音频、链接卡片和文件推送，还提供命令行工具和 Python SDK，写自动化脚本时比拼 URL 参数更顺手。服务端无数据库依赖，状态几乎为零，非常适合塞进 router、软路由或 smallest VPS 里常驻。它没有 Bark 那么多花哨参数，也没有 ntfy 的生态位，但作为「我只想给自己的脚本找个 iPhone 出口」的答案，它把复杂度压到了极限。适合当作自建推送体系里的轻量备胎：主力用 ntfy，给重要告警单独配一条 Chanify 通道做冗余，也是很多自托管玩家的真实玩法。

**上手难度**：⭐⭐

**适用人群**：脚本作者、极简主义者。小而美的典型：拿来练手 Go 网络编程、fork 后接入企业内部 IM 网关都是低成本改造。

---

## 5. message-pusher | songquanpeng/message-pusher

**仓库**：[github.com/songquanpeng/message-pusher](https://github.com/songquanpeng/message-pusher) | 数千星 | 持续迭代中

**一句话定位**：消息聚合分发网关——一个 API 入口，按规则把消息路由到邮件、企业微信、钉钉、Telegram、Bark 等十余种渠道。

**核心功能拆解**：前面几个项目解决「推到手机」，这个项目解决「推到对的地方」。作者 songquanpeng 是国内知名开源作者（one-api 出自其手），message-pusher 延续了同样的风格：单二进制 + Web 管理界面 + Docker 一键部署。核心抽象是「消息渠道」：你创建若干渠道（SMTP 邮件、企业微信应用、企业微信群机器人、钉钉、飞书、Telegram、Bark 等），再创建「分发组」把消息按权重或全部广播到多个渠道，调用方只管往统一 API 塞消息，不用关心最终走哪条路。还支持 Markdown 消息渲染、用户与 API Key 管理、消息发送统计。这个「一处调用、多端到达」的设计，恰好是很多团队内部告警平台最缺的那一层——从消息路由表到渠道适配器，代码结构很适合阅读学习。

**上手难度**：⭐⭐

**适用人群**：需要统一告警出口的国内团队、SRE。变现路径清晰：包一层多租户和计费就是「企业通知网关 SaaS」，替代各厂自建的消息中心。

---

## 6. Apprise | caronc/apprise

**仓库**：[github.com/caronc/apprise](https://github.com/caronc/apprise) | 数千星 | 长期活跃维护

**一句话定位**：通知界的「万能适配器」——一个 Python 库/CLI 统一接入上百种通知服务。

**核心功能拆解**：Apprise 不自己当服务器，而是解决集成层的脏活：Telegram、Slack、Discord、SMTP 邮件、企业微信、ntfy、Gotify、Bark 等上百种服务（据官方 README 口径），全部抽象成统一 URL 语法——`telegram://token/chatid`、`mailto://user:pass@host`，一条命令 `apprise -b "服务器挂了" 所有URL` 就能群发。它是纯库形态，被大量自托管工具内置调用，相当于通知领域的 requests。对你的价值有两层：工程上，自己的项目接 Apprise 就免费获得全部渠道适配，省掉几十个 API 的对接维护；产品上，它是把「通知能力」嵌入你卖的服务时的最优底层选型——客户想用什么渠道，装上就能响应。CLI 还支持配置文件、标签分组和批量发送，运维拿来写告警脚本同样顺手。

**上手难度**：⭐⭐（pip 装即用，但吃透上百种 URL 语法需要查表）

**适用人群**：Python 开发者、工具链作者、做集成交付的乙方。变现：以「任意渠道告警集成」为卖点的交付服务，底层成本几乎为零。

---

## 7. Novu | novuhq/novu

**仓库**：[github.com/novuhq/novu](https://github.com/novuhq/novu) | 万星级，本期体量最大的项目 | 商业公司持续高频迭代

**一句话定位**：开源的通知基础设施——给产品而非个人建推送系统，对标 OneSignal、Courier 的开源平替。

**核心功能拆解**：前面项目是「给自己发消息」，Novu 是「给你的用户发消息」。它是 TypeScript 单仓多包架构，核心能力：可视化工作流编排（多步骤通知流，支持延迟、摘要去重 digest、按用户偏好降级渠道）、应用内收件箱组件（前端几行代码嵌入消息中心）、几十种渠道 Provider 适配（FCM/APNs 推送、Twilio 短信、SendGrid 等邮件、Slack/Teams IM），多租户与用户偏好管理开箱即用。Docker Compose 可自托管社区版，官方同时运营按量付费的云服务，是「开源核心 + 商业云」模式的教科书样本。对你的意义：如果你的 SaaS 正在被 OneSignal 的账单困扰，Novu 自托管是公认的出路；如果想做通知赛道的生意，它的架构（工作流引擎 + Provider 抽象 + 收件箱组件）就是最好的学习模板。

**上手难度**：⭐⭐⭐⭐（组件多、自托管栈重，建议先跑云版再决定）

**适用人群**：SaaS/移动应用团队、想做开发者基建产品的创业者。这是本期商业价值锚点：通知基础设施是被验证过的付费赛道。

---

## 8. PushBits | pushbits/server

**仓库**：[github.com/pushbits/server](https://github.com/pushbits/server) | 数百星，本期最低调（低于 1000★）| 小而稳的活跃维护

**一句话定位**：把 Matrix 当推送骨干——最极客的自建告警通道，天然带加密和自控。

**核心功能拆解**：PushBits 的设计非常取巧：自己不维护长连接、不碰 APNs/FCM，而是把成熟去中心化 IM **Matrix** 当作传输层——管理员在后台为每个用户开 Matrix 账号，告警消息直接送进对应的 Matrix 房间，任何 Matrix 客户端（手机上的 Element 等）都能收。这一层借力让它代码量极小、部署极简，却白得了 Matrix 生态的全部能力：端到端加密、多端同步、消息历史、联邦互通。对运维场景它还有针对性设计：用户与告警源的管理 API、对 Prometheus Alertmanager 告警的对接方式（详见项目文档），监控告警可以直达值班人的手机。数百星的体量意味着它小众到几乎没有中文资料，但「用 Matrix 背书传输层」这个思路本身就是本期最有启发性的架构决策——选型难题不一定自己解，可以站在另一个去中心化网络的肩膀上。

**上手难度**：⭐⭐⭐（需要先有一个 Matrix 服务器，概念链稍长）

**适用人群**：注重隐私与数据主权的运维团队、MSP 托管服务商。变现：打包进「加密告警交付」的运维订阅服务，卖给合规要求高的客户。

---

## 横向对比

| 仓库 | 定位 | 语言 | Star 量级 | 上手难度 | 最佳场景 |
|---|---|---|---|---|---|
| ntfy | HTTP 极简推送 | Go | 万星级头部 | ⭐ | 脚本/家庭实验室一键推送 |
| Bark | iPhone 推送 | Go + Swift | 数千星 | ⭐ | iOS 自建通知首选 |
| Gotify | 带界面通知台 | Go | 数千星 | ⭐ | 内网多应用消息中心 |
| Chanify | 极简 iOS 推送 | Go | 千星级 | ⭐⭐ | 备用通道/轻量部署 |
| message-pusher | 多渠道聚合网关 | Go | 数千星 | ⭐⭐ | 团队统一告警出口 |
| Apprise | 通知适配库 | Python | 数千星 | ⭐⭐ | 产品/脚本的多渠道集成 |
| Novu | 产品通知基建 | TypeScript | 万星级 | ⭐⭐⭐⭐ | SaaS 用户触达系统 |
| PushBits | Matrix 告警通道 | Go | 数百星 | ⭐⭐⭐ | 加密运维告警 |

## 选型全景

```mermaid
flowchart LR
  subgraph L1["个人入门"]
    A["ntfy 一行命令推送"]
    B["Bark iPhone即装即用"]
  end
  subgraph L2["家庭与团队"]
    C["Gotify 内网通知台"]
    D["Chanify 轻量备用通道"]
    E["message-pusher 多渠道路由"]
  end
  subgraph L3["产品与商业"]
    F["Apprise 上百服务适配"]
    G["Novu 产品级通知基建"]
    H["PushBits Matrix加密告警"]
  end
  A -->|"消息多了要界面"| C
  B -->|"要多端聚合"| E
  C -->|"要进自家产品"| G
  E -->|"要进自家产品"| G
  A -->|"运维告警要加密"| H
  F -->|"嵌入自研SaaS"| G
```

## 本期之最

- **最值得立即尝试：ntfy**。没有任何安装成本——打开官方站注册频道名，手机装 App，五分钟后你所有脚本都会多一行 curl。
- **最有商业潜力：Novu**。通知基建是 OneSignal 验证过的付费市场，开源版自托管替代 + 垂直行业改造（如跨境电商触达）都是正在发生的生意。
- **最被低估：PushBits**。数百星里藏着本期最优雅的架构洞察——把传输层外包给 Matrix，用一个周末的代码换来了大厂级的送达能力。

## 参考来源

1. [binwiederhier/ntfy](https://github.com/binwiederhier/ntfy) — ntfy 仓库及官方文档（docs.ntfy.sh），HTTP 推送、iOS 上游通道与 UnifiedPush 机制说明
2. [gotify/server](https://github.com/gotify/server) — Gotify 仓库，REST + WebSocket 架构与部署说明
3. [finb/bark-server](https://github.com/finb/bark-server) — Bark 服务端仓库，APNs 中转与自建说明
4. [novuhq/novu](https://github.com/novuhq/novu) — Novu 仓库及 docs.novu.co，工作流编排与 Provider 体系文档
5. [caronc/apprise](https://github.com/caronc/apprise) — Apprise 仓库与官方 Wiki，通知服务 URL 语法清单

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
