自建安卓消息推送与通知服务- Gotify
大家好,我是小明同学。
做安卓机友,有时候真的挺心累的。
尤其是想给自己的服务器、NAS 或者跑的脚本搞个“消息推送”的时候。
隔壁 iOS 用户有个神器叫 Bark,链接一填,消息秒到。
而我们呢?
❌ 接入微信/钉钉机器人? 门槛越来越高,还得实名认证,时不时还给你限个流。
❌ 用邮件? 实时性太差,等看到邮件,服务器可能都挂了半小时了。
❌ 依赖 FCM (谷歌推送)? 在国内的网络环境下,这就意味着得常年挂着梯子,耗电不说,连接还时不时抽风。
我就想要一个简单、干净、实时的推送服务,怎么就这么难?
直到我遇见了它 —— Gotify。
用了一周,我只想说四个字:相见恨晚。
如果你也是喜欢折腾的“自托管(Self-hosted)”玩家,这款工具绝对能让你神清气爽。
今天就带大家看看,这个只有几 MB 的小工具,是怎么解决安卓推送老大难问题的。
01 🚀 为什么是 Gotify?(不仅仅是“安卓版 Bark”)
简单说,Gotify 就是一个完全属于你自己的消息推送服务器。
很多开源软件功能强大,但吃资源也厉害。Gotify 不一样,它是用 Go 语言写的,极其轻量。
它最大的优势就三个词:私有、实时、极简。
✅ 私有 没有广告,没有第三方窥探。你的数据,只在你的服务器和你的手机之间流动。
✅ 实时 基于 WebSocket 连接,服务器端一发,手机端毫秒级响应。
✅ 极简 没有复杂的依赖,不用配臃肿的数据库,默认 SQLite 就够了。
对于我们这种有“数据洁癖”的极客来说,这种完全掌控的感觉,真的太棒了。
02 🛠️ 一分钟部署 (甚至不需要写配置文件)
server端地址:https://github.com/gotify/server
既然主打轻量,部署自然不能复杂。
如果你会用 Docker,那简直是手到擒来。
在你的 NAS 或服务器上,创建一个 docker-compose.yml 文件,填入以下内容:
1 | services: |
然后执行 docker compose up -d或者docker-compose up -d。
也可以使用我之前推荐的Dockge部署
打开Dockge面板 -> 创建堆栈 -> 设置堆栈名称 -> 粘贴compose代码 -> 30秒启动成功!

搞定!
打开浏览器访问 http://你的IP:8080,登录后台,你就拥有了一个私有的推送中心。如果无法打开前台,请检查防火墙相关配置。
用户名:admin
密码:compose里面设置的GOTIFY_DEFAULTUSER_PASS对应的值
在首页,点击 app,然后新建一个 APP,记好 token,这个是我们后续重要的凭证。
到这一步,gotify-server 的基础配置就已经完成了。
💡 温馨提示
NAS部署,如果你想在外网也能收到推送,根据我之前的内网穿透教程进行设置,这里不再赘述。服务器部署,推荐使用OpenResty Manager进行配置(推荐配置 SSL 证书,更安全)。
03 📱 手机端体验:省电到令人发指
服务端搭好了,手机端怎么收?
直接去Google play商店或者 GitHub 下载 Gotify 的安卓 APP。
GitHub地址:https://github.com/gotify/android/releases
我们将这个 apk 下载好,在要接收消息的 android 手机上安装即可。安装包仅仅 6.75MB
如果不能下载,可以通过网盘分享的文件:Gotify.apk
链接: https://pan.baidu.com/s/16Z3tLCDyu5Ys-kJJ5MsSlQ?pwd=hkve 提取码: hkve
安装好后启动 app,我们输入对应的 server 地址,以及用户名和密码,然后登录就行
到这一步,我们要接收消息的客户端也安装好了。
很多同学担心自建推送会耗电。
实测下来,Gotify 的 APP 非常克制。因为它保持的是一个单一的长连接(WebSocket),不需要频繁唤醒系统。
在电池优化里把它设为“无限制”,它就能安安静静地在后台待机,耗电量几乎可以忽略不计。
04 🔔 万物皆可推 (解锁三个硬核场景)
服务跑起来了,怎么用呢?
Gotify 的逻辑简单到令人发指。它不需要你会写复杂的代码,只要能发 HTTP 请求的地方,就能用它。
这里分享三个我最常用的场景:
场景一:NAS 下载任务通知 🎬 我是极空间用户,以前下载任务完成了不知道。现在写个简单的脚本,下载完自动发一条 Gotify 消息:
“老板,电影下好了,回家就能看。”
场景二:服务器状态报警 🚨 利用简单的 curl 命令,配合监控脚本。 CPU 占用超过 90%?磁盘空间不足?SSH 有人尝试暴力破解? 手机直接弹窗震动,优先级设为 High(高),半夜都能把你叫醒处理故障。
场景三:库存与价格监控 📉 如果你有写爬虫监控显卡库存、机票价格的习惯,Gotify 是最好的通知渠道。因为它延迟极低,抢购的时候快人一步。
这是发消息的命令,简单吧?👇
1. Curl (命令行党)
1 | # 替换你的 URL 和 Token |
Python (脚本党) 如果你在写监控脚本,用 requests 库最方便:
1 | import requests #pip install requests |
将对应的域名,token,以及想发送的标题,内容都替换成自己的即可。这里要注意的是 token 是 app 的 token,而不是 client 的 token 发送成功之后,app 内就会收到最新的消息,而且也会收到对应的消息 push。

服务端也会收到发送的消息

05 ✨ 进阶玩法:Markdown 与图片
虽然是后端工具,但 Gotify 的体验一点都不含糊。
最让我惊喜的是,它支持 Markdown 语法。
推过来的消息不仅可以是纯文本,还可以带粗体、斜体,甚至可以直接在通知里显示图片。
只需在发送请求时指定 extras 参数,告诉客户端“这是一段 Markdown”,就能搞定:
1. Curl (命令行党)
1 | # 发送一张带 Markdown 格式图片的通知 |
Python (脚本党) 如果你在写监控脚本,用 requests 库最方便:
1 | import requests |
想象一下,你家的安防摄像头检测到有人移动,直接截个图,通过 Gotify 推送到你手机通知栏上,不用点开 App 就能看到是谁在门口。

这就是顶级极客的体验。
写在最后
在这个大厂把持流量、APP 越来越臃肿的时代,Gotify 是一股清流。
它不通过微信,不通过谷歌,就在你自己的设备之间,搭起了一座桥。
即使断了外网,只要在同一个局域网下,它依然能工作。
如果你也受够了各种第三方推送的限制和不确定性,不妨花个十分钟,搭建一个属于自己的 Gotify。
那种“我的消息我做主”的自由,试过就回不去了。
你平时都在用什么方式接收服务器或脚本的通知?Server酱?Telegram?还是直接硬抗?评论区来交流一下避坑指南!
总结
好了,以上就是今天给大家分享的内容,我是爱分享的小明同学,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~
