1. Gotify 介绍
Gotify 是基于 Go 语言开发的一款简易发送和接受消息的开源软件。包含自带 webUI 的服务器端,Android 端,命令行工具。
官网地址:https://gotify.net/
Gotify 可以通过 REST-API 简单地进行控制和推送消息。在 Gotify 里有应用 (APPlications) 和客户端 (Clients) 两种角色:
应用只可以推送消息,
而客户端,包括网页端和手机端可以更改设置,推送和阅读消息。
在 iOS 端有 bark 这样简单方便的推送应用,而在 Android 端由于国内推送混乱,如果需要自己搭建推送,Gotify 是一个不错的解决方案。
2. Gotify 安装
官方给出了两种安装方式:基于 Docker 安装和基于二进制源文件安装。由于官方推荐和源文件需要编译等麻烦的原因,在这里就以在 Ubuntu 服务器上基于 Docker 安装为例。
如果不想要自己搭建服务器端的朋友可以使用由 unifiedpush 提供的可以免费注册的 Gotify 发行版本:https://gotify1.unifiedpush.org。但是考虑到公告服务器负载和数据安全,还是推荐在自己的服务器上部署。
2.1 Docker 安装
Docker 的安装推荐使用 Docker 官网的安装脚本,非常方便。代码如下:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
2.2 Docker 安装 Gotify 镜像
我们需要安装的是 Gotify 的服务器端,通过 Docker 拉取镜像。
sudo docker pull gotify/server
2.3 配置 Gotify
Gotify 官网上给出了几种配置的方式,格式和方法可以参考:
https://gotify.net/docs/config。
我们在这里使用 Docker 环境变量来配置 Gotify。我们先需要在当前目录创建 env.list 文件。格式如下:
GOTIFY_SERVER_PORT=80 # 端口号
GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=0
GOTIFY_SERVER_LISTENADDR=
GOTIFY_SERVER_SSL_ENABLED=false # 不使用SSL
GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=true
GOTIFY_SERVER_SSL_LISTENADDR=
GOTIFY_SERVER_SSL_PORT=443 # HTTPS端口号
GOTIFY_SERVER_SSL_CERTFILE= # 公钥路径
GOTIFY_SERVER_SSL_CERTKEY= # 私钥路径
GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=false
GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=false
GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=certs
# lists are a little weird but do-able (:
# GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS=- mydomain.tld\n- myotherdomain.tld
GOTIFY_SERVER_RESPONSEHEADERS="X-Custom-Header: \"custom value\""
# GOTIFY_SERVER_CORS_ALLOWORIGINS="- \".+.example.com\"\n- \"otherdomain.com\""
# GOTIFY_SERVER_CORS_ALLOWMETHODS="- \"GET\"\n- \"POST\""
# GOTIFY_SERVER_CORS_ALLOWHEADERS="- \"Authorization\"\n- \"content-type\""
# GOTIFY_SERVER_STREAM_ALLOWEDORIGINS="- \".+.example.com\"\n- \"otherdomain.com\""
GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=45
GOTIFY_DATABASE_DIALECT=sqlite3
GOTIFY_DATABASE_CONNECTION=data/gotify.db
GOTIFY_DEFAULTUSER_NAME=admin # 初始默认账户
GOTIFY_DEFAULTUSER_PASS=admin # 初始默认密码
GOTIFY_PASSSTRENGTH=10
GOTIFY_UPLOADEDIMAGESDIR=data/images
GOTIFY_PLUGINSDIR=data/plugins
我们需要修改的地方不多,如果需要使用 SSL,注意 Gotify 的路径为 /var/gotify/,还有相应公钥和私钥路径在使用相对路径时的位置。
2.4 启动 Gotify 服务
使用 Docker 启动 Gotify 服务,使用 env.list 中的配置项方法如下:
nohup sudo docker run --env-file ./env.list -p 80:80 -v /var/gotify/data:/app/data gotify/server &
2.5 查看和停止 Gotify 服务
查看 Docker 服务:
sudo docker ps
根据显示出来的 Gotify 对应 CONTAINER ID,可以停止 Gotify。
sudo docker kill xxxxxxxx # 容器ID
3. 登录 Gotify
安装、配置、运行成功后,输入网址和端口,就会出现下面的登录页面。
登录页面
第一次登录时用户名和密码为上面的默认用户,如果没有在配置中修改的话,默认用户名为 admin,密码为 admin。注意登录后立即更改密码。
4. 使用 Gotify
4.1 新建应用 (APP)
右上角切换至应用界面
点击 CREATE APPLICATION 创建应用,成功后可以得到令牌 (Token)。在其他应用中使用 Gotify 传输消息时就要使用到这个 Token。
4.2 推送消息
在这里可以使用 Gotify 的 API 进行消息推送,参考:https://gotify.net/docs/pushmsg。
Gotify 支持 Text 文本和 Markdown 文本。
推送消息的网址为:
https://网址:端口/message?token=令牌 # 替换相应内容
推送的数据格式例子:
{
"message": "消息内容",
"priority": 8,
"title": "标题",
"extras": {
"client::display": {
"contentType": "text/plain"
}
}
}
注意这里的 priority 越大,消息提醒优先级越高。对应在 Android 端的提醒会越明显。如果消息推送成功,在网页端也会收到该消息。
5. 手机端应用
Gotify 提供免费的 Android 应用,可以在官网下载 APK 安装,https://gotify.net/。
手机端应用
输入用户名和密码,就可以看到推送消息了。手机端也可以发送消息。 作者:透明的雨音 https://www.bilibili.com/read/cv13016664 出处:bilibili
发表评论