在群晖上使用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

 

 

扩展资料

Recommended Posts

Jellyfin中使用QSV替代VAAPI转码

使用过Jellyfin的应该都会遇到转码的问题,默认情况下都是使用VAAPI进行转码,这种方式兼容性比较好,但是转码的性能比较一般。如果使用的是Intel平台J4125及更早的CPU的话,建议切换为QSV(Intel Quick Sync )进行转码,效率会比VAAPI快很多,并且CPU也会更低。

胡萝虎 

在群晖上使用Docker部署为知笔记服务

虽然市面上有很多各种类型的云笔记应用,像有道云笔记、印象、OneNote,包括Notion,博主都曾尝试使用过。但是随着资料越来越多,特别是一些涉及个人隐私的资料放在云端笔记上,比如密码、账号之类的,让博主越来越感到焦虑😂。博主此前也曾在群晖部署过蚂蚁笔记,但是使用感受实在不咋滴;一段时间以来,只能勉强用群晖自带的弱智Note Station来记录个人资料,真怕哪天自己也搞弱智了。

最近实在受不了Note Station的反人类操作了,不得不再次开启寻找解决方案的征途,幸运的是,Eureka…… 为知笔记的私有化方案终于让我解放啦

胡萝虎 

在群晖中搭建Cloudreve网盘系统

众所周知,某度网盘为了挣钱,各种极限限速,下载限速能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以Cloudreve为例,在群晖NAS上搭建一套属于自己的私人网盘服务,供读者们参考

胡萝虎 

在群晖上搭建Bitwarden密码管理服务器

管理密码是很多人头痛的事,密码设置简单好记又不太安全,设置复杂又容易忘。为了解决这个难题,市面上出现了不少密码管理工具,帮助人们管理在各种平台、系统、网站、APP上设置的密码,比如1Password、Lastpass、KeePass等,不过绝大多数需要付费才能使用。本着能白嫖就绝不花一个子儿的原则,今天我就来介绍一个不需要花钱的密码管理器——Bitwarden

胡萝虎 

使用Docker一键安装服务端神器Appwrite

Appwrite是一个基于Docker的开源的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

简单来说,如果你只会前端开发,不懂后端技术,那么这个神器就可以帮你轻松完成后端服务搭建,包括账户、用户、团队、数据库、存储、云函数等等,目前支持各类前端平台,包括Flutter、Vue、Angular、React、iOS和Android等

胡萝虎 

Leave A Comment