大家好,我是小明同学。

做安卓机友,有时候真的挺心累的。

尤其是想给自己的服务器、NAS 或者跑的脚本搞个“消息推送”的时候。

隔壁 iOS 用户有个神器叫 Bark,链接一填,消息秒到。

而我们呢?

❌ 接入微信/钉钉机器人? 门槛越来越高,还得实名认证,时不时还给你限个流。
❌ 用邮件? 实时性太差,等看到邮件,服务器可能都挂了半小时了。
❌ 依赖 FCM (谷歌推送)? 在国内的网络环境下,这就意味着得常年挂着梯子,耗电不说,连接还时不时抽风。

我就想要一个简单、干净、实时的推送服务,怎么就这么难?

直到我遇见了它 —— Gotify。
image.png
用了一周,我只想说四个字:相见恨晚。

如果你也是喜欢折腾的“自托管(Self-hosted)”玩家,这款工具绝对能让你神清气爽。

今天就带大家看看,这个只有几 MB 的小工具,是怎么解决安卓推送老大难问题的。

01 🚀 为什么是 Gotify?(不仅仅是“安卓版 Bark”)

简单说,Gotify 就是一个完全属于你自己的消息推送服务器。

很多开源软件功能强大,但吃资源也厉害。Gotify 不一样,它是用 Go 语言写的,极其轻量。

它最大的优势就三个词:私有、实时、极简。

✅ 私有 没有广告,没有第三方窥探。你的数据,只在你的服务器和你的手机之间流动。
✅ 实时 基于 WebSocket 连接,服务器端一发,手机端毫秒级响应。
✅ 极简 没有复杂的依赖,不用配臃肿的数据库,默认 SQLite 就够了。

对于我们这种有“数据洁癖”的极客来说,这种完全掌控的感觉,真的太棒了。

02 🛠️ 一分钟部署 (甚至不需要写配置文件)

server端地址:https://github.com/gotify/server
image.png

既然主打轻量,部署自然不能复杂。

如果你会用 Docker,那简直是手到擒来。

在你的 NAS 或服务器上,创建一个 docker-compose.yml 文件,填入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
services:
gotify:
image: gotify/server
container_name: gotify
restart: unless-stopped
ports:
- 8080:80
environment:
- GOTIFY_DEFAULTUSER_PASS=custom_password # 记得改密码
- TZ=Asia/Shanghai
volumes:
- './gotify_data:/app/data'

然后执行 docker compose up -d或者docker-compose up -d。

也可以使用我之前推荐的Dockge部署
打开Dockge面板 -> 创建堆栈 -> 设置堆栈名称 -> 粘贴compose代码 -> 30秒启动成功!
image.png
image.png

搞定!

打开浏览器访问 http://你的IP:8080,登录后台,你就拥有了一个私有的推送中心。如果无法打开前台,请检查防火墙相关配置。
image.png
用户名:admin
密码:compose里面设置的GOTIFY_DEFAULTUSER_PASS对应的值

在首页,点击 app,然后新建一个 APP,记好 token,这个是我们后续重要的凭证。
image.png
到这一步,gotify-server 的基础配置就已经完成了。

💡 温馨提示

NAS部署,如果你想在外网也能收到推送,根据我之前的内网穿透教程进行设置,这里不再赘述。服务器部署,推荐使用OpenResty Manager进行配置(推荐配置 SSL 证书,更安全)。

03 📱 手机端体验:省电到令人发指

服务端搭好了,手机端怎么收?

直接去Google play商店或者 GitHub 下载 Gotify 的安卓 APP。

GitHub地址:https://github.com/gotify/android/releases
image.png

我们将这个 apk 下载好,在要接收消息的 android 手机上安装即可。安装包仅仅 6.75MB

如果不能下载,可以通过网盘分享的文件:Gotify.apk
链接: https://pan.baidu.com/s/16Z3tLCDyu5Ys-kJJ5MsSlQ?pwd=hkve 提取码: hkve

安装好后启动 app,我们输入对应的 server 地址,以及用户名和密码,然后登录就行
d852abe816b783ec39c139941607c774.jpg
到这一步,我们要接收消息的客户端也安装好了。

很多同学担心自建推送会耗电。

实测下来,Gotify 的 APP 非常克制。因为它保持的是一个单一的长连接(WebSocket),不需要频繁唤醒系统。

在电池优化里把它设为“无限制”,它就能安安静静地在后台待机,耗电量几乎可以忽略不计。

04 🔔 万物皆可推 (解锁三个硬核场景)

服务跑起来了,怎么用呢?

Gotify 的逻辑简单到令人发指。它不需要你会写复杂的代码,只要能发 HTTP 请求的地方,就能用它。

这里分享三个我最常用的场景:

场景一:NAS 下载任务通知 🎬 我是极空间用户,以前下载任务完成了不知道。现在写个简单的脚本,下载完自动发一条 Gotify 消息:

“老板,电影下好了,回家就能看。”

场景二:服务器状态报警 🚨 利用简单的 curl 命令,配合监控脚本。 CPU 占用超过 90%?磁盘空间不足?SSH 有人尝试暴力破解? 手机直接弹窗震动,优先级设为 High(高),半夜都能把你叫醒处理故障。

场景三:库存与价格监控 📉 如果你有写爬虫监控显卡库存、机票价格的习惯,Gotify 是最好的通知渠道。因为它延迟极低,抢购的时候快人一步。

这是发消息的命令,简单吧?👇
1. Curl (命令行党)

1
2
3
4
5
# 替换你的 URL 和 Token
curl "https://push.example.com/message?token=<你的Token>" \
-F "title=报警" \
-F "message=服务器挂啦!" \
-F "priority=5"

 Python (脚本党) 如果你在写监控脚本,用 requests 库最方便:

 

1
2
import requests #pip install requests
resp = requests.post('http://push.example.com/message?token=<apptoken>', json={ "message": "Well hello there.", "priority": 2, "title": "This is my title" })

 将对应的域名,token,以及想发送的标题,内容都替换成自己的即可。这里要注意的是 token 是 app 的 token,而不是 client 的 token 发送成功之后,app 内就会收到最新的消息,而且也会收到对应的消息 push。
 120d44582011631a0271c8c8dbba70e5.jpg
服务端也会收到发送的消息
 image.png

05 ✨ 进阶玩法:Markdown 与图片

虽然是后端工具,但 Gotify 的体验一点都不含糊。

最让我惊喜的是,它支持 Markdown 语法。

推过来的消息不仅可以是纯文本,还可以带粗体、斜体,甚至可以直接在通知里显示图片。
只需在发送请求时指定 extras 参数,告诉客户端“这是一段 Markdown”,就能搞定:
1. Curl (命令行党)

1
2
3
4
5
6
7
8
9
10
11
12
# 发送一张带 Markdown 格式图片的通知
curl -X POST "https://push.example.com/message?token=<你的Token>" \
-H "Content-Type: application/json" \
-d '{
"message": "![门铃抓拍](https://example.com/snapshot.jpg)\n\n**⚠️ 有人按门铃**\n*请及时查看监控*",
"priority": 8,
"extras": {
"client::display": {
"contentType": "text/markdown"
}
}
}'

Python (脚本党) 如果你在写监控脚本,用 requests 库最方便:

1
2
3
4
5
6
7
8
9
10
11
12
13
import requests

url = "https://push.example.com/message?token=<你的Token>"
payload = {
"message": "![每日报表](https://example.com/chart.png)\n\n**📊 今日数据汇总**\nCPU负载: `35%`",
"priority": 5,
"extras": {
"client::display": {
"contentType": "text/markdown"
}
}
}
requests.post(url, json=payload)

想象一下,你家的安防摄像头检测到有人移动,直接截个图,通过 Gotify 推送到你手机通知栏上,不用点开 App 就能看到是谁在门口。
b9490cac7e99b94c7c11de8962b9b36a.jpg
image.png

这就是顶级极客的体验。

写在最后

在这个大厂把持流量、APP 越来越臃肿的时代,Gotify 是一股清流。

它不通过微信,不通过谷歌,就在你自己的设备之间,搭起了一座桥。

即使断了外网,只要在同一个局域网下,它依然能工作。

如果你也受够了各种第三方推送的限制和不确定性,不妨花个十分钟,搭建一个属于自己的 Gotify。

那种“我的消息我做主”的自由,试过就回不去了。

你平时都在用什么方式接收服务器或脚本的通知?Server酱?Telegram?还是直接硬抗?评论区来交流一下避坑指南!

总结

好了,以上就是今天给大家分享的内容,我是爱分享的小明同学,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~