在群晖上使用Bark搭建专属的消息推送服务

作者 胡萝虎 日期 2021-10-26
在群晖上使用Bark搭建专属的消息推送服务

一直以来我都是使用Server酱完成各类消息的推送,比如某东薅羊毛通知等。不过随着微信官方对微信消息的管控越来越严,Server酱免费版也开始限制推送消息的数量,所以我就想有没有其他类似的解决方案。结果我就找到了这个神器——Bark

image-20211026214303039
Bark是一款开源的消息推送服务,目前官方默认支持iOS系统,用于给iPhone发送自定义的内容,支持文字、链接和声音。通过部署Bark服务器,可以安全的推送信息。
开源地址:https://github.com/Finb/bark-server

安装Bark服务器

我手里有一台群晖DS918+,完美支持docker,所以下面的操作都是在这台群晖上进行的。当然如果你有其他设备支持Docker,并且你手头有一台iPhone,一样可以玩转这款软件。

1、下载Bark

image-20211026214736771

在docker注册表中搜索Bark,结果中的第一个就是,双击下载即可。

2、配置和启动Bark

1)下载完成后,在映像中找到Bark的镜像,然后双击打开,设置容器的名称

2)点击高级设置,设置挂在文件目录和端口映射,然后点击应用

将容器的/data目录挂载到本地目录

将容器的8080端口映射到本地的端口(选择一个没有被占用的端口,如18080)

3)点击下一步,勾选向导完成后运行此容器,然后点击完成,即可启动Bark服务器

3、使用Docker命令一键启动Bark

在群晖中可有安装上面的步骤一步步操作即可,当然也可以直接使用Docker命令一键启动:

docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server

4、配置反向代理和路由器端口映射

通过上面的操作,我们已经把Bark服务器搭建和运行起来了,这时候如果想在公网环境下使用,还需要对群晖进行一些设置

1)配置反向代理

打开控制面板->登录门户->高级,点开反向代理服务器,新增一条规则,配置如下:

来源配置:协议选https,主机名就是域名,端口为下面将映射到路由器上的端口

目的地配置:协议选http,主机名填localhost,端口为容器映射到本地的端口

2)配置路由器端口映射

方法一:

打开控制面板->外部访问->路由器设置,新增一个端口映射,配置如下:

选择内置应用程序,然后下一步,在页面中找到上面创建的反向代理服务器端口应用,选中后点击完成。然后在主页面点击应用,等待一会即可。

image-20211026224539258

方法二:

直接到路由器管理后台,设置NAT映射

安装和配置客户端

服务器配置完成后,需要配置手机端应用了。

1、下载Bark客户端

在App Store中搜索Bark,排在第一位就是,直接下载即可。

2、配置客户端

打开App,点击右上角的+,然后输入你的域名即可:

返回主界面后,你将得到一个带有专属于你URL链接。注意域名后面的那一串字母和数字是你的专属标签,不要泄露。

3、推送消息

你可以直接点击App上的箭头按钮,将自动触发一条消息推送,当然是测试用的。

在真正的使用场景中,一般是通过请求Bark的URL链接实现推送的。

1)Bark的URL链接规范

支持发 get 或者 post 请求 ,请求成功会立即收到推送。

除掉域名,URL 组成: 第一个部分是 key , 之后有三个匹配
/:key/:body
/:key/:title/:body
/:key/:category/:title/:body

title 推送标题 比 body 字号粗一点
body 推送内容 换行请使用换行符 '\n'
category 另外的功能占用的字段,还没开放 忽略就行
post 请求 参数名也是上面这些

比如:通过浏览器请求下面的链接

https://yourdomain/yourkey/我是胡萝虎

你的手机将收到这样一条通知:

2)高级操作

除了支持推送基本的文字外,还支持下面更多消息类型:

  • url

    // 点击推送将跳转到url的地址(发送时,URL参数需要编码)
    https://api.day.app/yourkey/百度网址?url=https://www.baidu.com
  • isArchive

    // 指定是否需要保存推送信息到历史记录,1 为保存,其他值为不保存。
    // 如果不指定这个参数,推送信息将按照APP内设置来决定是否保存。
    https://api.day.app/yourkey/需要保存的推送?isArchive=1
  • group

    // 指定推送消息分组,可在历史记录中按分组查看推送。
    https://api.day.app/yourkey/需要分组的推送?group=groupName
  • icon(仅iOS15及以上)

    // 指定推送消息图标
    https://api.day.app/yourkey/需要自定义图标的推送?icon=http://day.app/assets/images/avatar.jpg
  • 时效性通知

    // 设置时效性通知
    https://api.day.app/yourkey/时效性通知?level=timeSensitive

    // 可选参数值
    // active:不设置时的默认值,系统会立即亮屏显示通知。
    // timeSensitive:时效性通知,可在专注状态下显示通知。
    // passive:仅将通知添加到通知列表,不会亮屏提醒

3)实战

下面为某东自动领豆脚本的配置,会将告警或日报等消息使用Bark发送到手机上:

image-20211026224253853

扩展资料

“扫一扫接着看”