概述
Gotify 由我们安装、更新和备份,运行在法国的机器上。一个极简的通知服务器,每个应用有自己的令牌,还带历史记录和优先级。您什么都不用装,也不用配置服务器:下单后几分钟,这个应用就会以您的名义上线。
与它相配的是 应用 发现版,每月 2.99 €(含税)—— 1 GB 内存。Gotify 是一个用 Go 写的程序,简洁到极致:接收小消息,存进一个轻量数据库,再通过一条常驻连接推送给已连接的客户端。这里面没什么真正耗资源的东西:这 1 GB 主要留给系统,也足够保存成千上万条消息。这正是那种完全没理由卖贵的应用。
整个模型只靠两个概念。一个应用代表一个消息来源——您的备份、您的监控系统、您的智能家居——各自拥有自己的令牌;一个客户端代表接收消息的设备。发一条通知,说到底就是带着这个令牌发一次 HTTP 请求,任何 shell 脚本、计划任务或监控工具都能做到,不需要额外安装任何库。
Gotify 能做什么
每个来源一个令牌
每个发送方都有自己的令牌和图标。哪天某个脚本进入死循环疯狂发消息,撤销它的令牌就行,不影响其他来源——而且历史记录会按来源分开,而不是混成一条读不下去的流水账。
一行就能发送
一个带标题、正文和优先级的 POST 请求就够了。不需要服务账号,不需要申请 API 密钥,不需要额外的库:只要会发 HTTP 请求,就会发通知。
优先级会改变提醒方式
低优先级的消息会悄悄躺进列表里;高优先级的消息会让手机响铃,并且一直显示着。备份失败和每周报告,不该用同一种方式把人吵醒。
历史记录留在服务器上
消息会被保存下来,随时可以从网页界面重新查看。凌晨三点收到、随手划掉的一条提醒,早上醒来还能原样找到,连时间戳都在。
实际能用来做什么
知道昨晚的备份是否成功
备份脚本在执行结束时发一条消息,失败时用高优先级。不用再去翻日志才发现,其实已经三周没动静了。
部署结束时收到提醒
开发者在集成流程的最后加一行。他不用再守着屏幕等:手机会告诉他上线什么时候完成,是不是失败了。
接收智能家居的提醒
一套自动化程序检测到漏水,或者车库门一直开着,就发一条消息。服务器是您自己的:没有第三方账号,也没有那种发到一百条就封顶的免费服务。
跟踪一家小店的订单
店主设置成每来一个新订单、每个商品库存跌破补货线时都发一条提醒,白天都不用打开后台系统。
不错过联系表单的消息
一个协会在收到入会申请时就发一条消息。值班的志愿者不用盯着共享邮箱,就知道有事要处理。
托管在法国
在我们自建自营的新阿基坦大区基础设施。您那些能说明很多基础设施情况的技术提醒,不会经过任何第三方通知服务。
常见问题
什么都不用。您选好应用,填上它要的几项信息——通常是一个邮箱地址和一个名字——它就上线了。访问信息会通过邮件发送,附带网址和登录凭据。
没有,这是下单前要先想清楚的一点。Gotify 提供官方的 Android 应用,F-Droid 和常规应用商店都能下载,还有一个能在任何浏览器里用的网页界面。没有官方的 iOS 客户端。如果您的团队用 iPhone,可以看看 ntfy:同样的用法,两个系统都有应用。
带着发送方应用的令牌发一个 HTTP 请求,附上标题、正文和优先级即可。从脚本里一行 curl 命令就够了。很多监控工具——Uptime Kuma、Gatus、Healthchecks——的目标列表里已经内置了 Gotify:只需要粘贴地址和令牌就行。
不是。连接由 HTTPS 保护,但服务器能看到消息的明文内容——这很正常,因为存储和显示消息的正是它自己。好的做法可以归结成一句话:通知只是告诉您发生了什么事,不应该携带密码或敏感数据。而这台服务器是您自己的,不是第三方的。
包含,这是服务的一部分。一个不更新的自托管应用是安全隐患,不是省钱。