
Gotify: 化繁为简,self-host场景下最好的通知服务之一
服务宕了,谁能知晓
在部署一些工具服务,尤其是部署私家网络服务时,服务是否在可靠地工作是一个不确定因素。有时候,一些突发事件可能会影响服务的工作状态,例如停电,IP切换,网络拥塞等。这种情况下,在第一时间接收到通知就显得格为重要。
如何选择通知通道
我们部署的一些探针进程例如UptimeFlare、Uptime Kuma等等能够在第一时间接收到这些信息,并且它们支持非常多的通知通道,例如QQ机器人,飞书机器人,Webhook,SMTP等等。不过综合考虑,依赖第三方平台也并不完全可靠,例如有些平台并不支持协议机器人,可能存在被封号的风险;又或者一些平台需要配置大量的东西,得折腾半天,不好应对变化的场景。这时候Gotify的好处就出来了,在自托管的场景下再部署一个Gotify应用对各位来说应该也不是大问题,直接docker compose命令一把梭就启动了。
化繁为简
不需要繁琐的配置,Gotify部署好开箱就能用,在你的手机上安装Gotify客户端,使用账号登录即可。
添加第一个APP
进入网页控制台,在APP处创建第一个APP,仅需复制token即可,它使用http POST发送通知,易于和现有的项目集成(大部分支持通知的项目都支持Gotify,如果不支持,几行请求代码就能搞定)
import aiohttp
import asyncio
async def gotify_send(token: str, title: str, message: str, priority: int = 1):
url = f'https://your-gotify-server.com/message?token={token}'
payload = {
'title': title,
'message': message,
'priority': priority
}
async with aiohttp.ClientSession() as session:
async with session.post(url, headers=headers, json=payload) as response:
if response.status == 200:
print('Notification sent successfully')
else:
print(f'Failed to send notification: {response.status}')
# 示例用法
token = 'your-gotify-app-token'
title = '震惊 Python程序设计签到失败'
message = '签到失败的原因:500 Internal Server Error'
if __name__ == "__main__":
asyncio.run(gotify_send(token, title, message))
此刻打开手机APP就能收到通知了
其他配置
Gotify可以给APP配置头像,名称,描述等,以及通知优先级,没有非常复杂的功能,对我来说算是非常好的一个通知系统。你可以在5分钟内完成整套系统的部署和通知推送配置
参考
Gotify官方网站:Gotify a simple server for sending and receiving messages
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Snowykami
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果