自建消息推送工具 Gotify 实现消息私有化通知
前言
之前分享了如何通过 Webhook 将 VPS 与 NAS 上部署的应用消息推送到钉钉、飞书、企业微信,但是对于部分用户来说,可能因为以下种种原因,不方便使用常见的办公 IM 软件来进行消息推送:
- 消息涉及隐私敏感信息,不希望推送到公开的服务上
- 日常用不到钉钉、飞书、企业微信
- 钉钉、飞书、企业微信提示音 PTSD
- ...
对于这些用户而言,Gotify 或许是更好的选择,作为私有化消息推送工具,它有以下特点:
- Docker 一键部署,自己掌控数据
- 对于 NAS 用户来说,可以直接将 Gotify 部署在局域网内,通过局域网就可以完成消息的推送
- Gotify 同时拥有网页端与安卓端
TIP
Gotify 安卓 APP 可以直接在 Play Store 下载,网络不顺畅的用户可以选择下载我转存的 夸克网盘 / UC 网盘
Gotify 官方无 iOS 端,苹果用户可以使用网页端或选择其他推送工具,例如 Bark、ntfy
安装
通过以下 Docker 命令直接启动
sh
docker run -p 8080:80 -v /var/gotify/data:/app/data gotify/server
也可以通过 Docker Compose 启动
yaml
version: "3"
services:
gotify:
image: gotify/server
ports:
- 8080:80
volumes:
- "./gotify_data:/app/data"
其中环境变量可以参照官方文档
TIP
由于一些众所周知的原因最近 Docker Hub 的访问可能不是那么顺畅,可以尝试一下 ghcr.io/gotify/server
对于 armv7 和 arm64 设备,则需要拉取 gotify/server-arm7 与 gotify/server-arm64
初始化
- 通过 http://ip:8080 进入 Gotify 的网页端,默认用户名与密码均为 admin
- 登录成功后,首先要点击上方的 ADMIN 按钮,修改登录密码
- 点击 APPS,创建一个应用用于区分不同应用发送的消息,其中 Default Priority 为通知优先级,在网页端表现为不同颜色标记;安卓 APP 通知中表现为静音消息与默认消息。创建完毕后,复制 Token 备用
消息推送
适配应用
对于适配了 Gotify 的应用,使用非常简单,只需填入刚才复制的 Token 以及服务器的地址即可完成推送
未适配应用
对于未适配 Gotify 的应用,则需要通过 POST 请求来发送通知,请求格式参考 Swagger UI 中 /message
的 POST 请求
请求 URL 为 http://ip:8080/message?token=<token>
安卓端
从 Play Store 或 夸克网盘 / UC 网盘 下载安装后打开 APP,输入 Gotify URL 以及刚才修过的用户名密码进行登录,也同样可以看到之前收到的消息
预览: