Bark 推送服务的部署和使用小技巧

发布时间: 2023-01-21 热度: 5676

前言

Bark 是一款 iOS 端的推送服务,通过部署一个 Server 服务端,可以通过浏览器,脚本,以及各种程序里来给 iOS 设备发送推送通知。

这个项目其实已经出来有好几年了,只是最近在优化一些运维管理项目时才接触和使用,在使用了几个月后还是打算分享下部分小技巧。

 


 

推送流程简单说明

首先需要一个服务端,本文会介绍如何部署。然后 iOS 设备在 App Store 安装Bark,获取到该设备的唯一key,通过浏览器、curl 命令或者在各种 shell python 脚本里来配置推送内容。触发后,服务端接受到推送,会请求苹果的APNs向你的 iOS 设备发送推送通知。

免费的推送服务器

https://bark.ioiox.com

需要注意的是:所有key内容都会记录到服务器日志中,请不要使用免费服务器来推送机密或私有信息也请不要滥用。你可以继续参照下文部署自己的服务端。

Bark Server

使用 docker 来部署非常简单,官方镜像支持 X86 和 ARM 架构。

docker

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

根据情况自行修改端口映射和数据目录的挂载。

docker compose

version: '3.8'services: bark-server: image: finab/bark-server container_name: bark-server restart: always volumes: - ./data:/data ports: - "8080:8080"
 

配置域名 (可选)

部署完毕后http://IP:8080就是 bark 的后端服务地址,可以直接使用,也可以参考以下 nginx conf 来配置域名和 HTTPS。

注意修改域名,证书路径和端口。
展开查看 nginx conf 配置

常规使用

客户端

iOS 设备直接在 App Store 下载bark,打开后添加 bark 后端服务器地址。(实际上不添加也不影响使用,只是添加服务器端可以方便的在 app 里查看到各种推送地址方便复制使用。)同时也会看到本设备的一串key,请不要随意泄露此key,以免被别人滥用推送垃圾通知,如果泄露也可以通过删除 app 重新安装来更新。

bark 的常规命令

其实 app 内和官方文档已经很好的介绍了如何使用,最简单的例子如下:
浏览器中打开

https://bark.ioiox.com/your_key/标题/内容

curl命令(可以用于 shell python 脚本中)

curl https://bark.ioiox.com/your_key/标题/内容


还可以配置分组,分组的意思是在 iOS 端里的历史记录中可以根据分组来查看各种通知。

https://bark.ioiox.com/your_key/标题/内容?group=IOIOX


更多关于自定义 icon、铃声、自动复制、自动保存、时效性、角标等等功能可以直接查看 iOS 端说明。
 

高级用法

常规在浏览器或者命令行推送对文字的空格,换行都是需要进行 url-encoder 才能识别,以下是一些我在使用中用到过的示例,大家可以直接拿去使用。

 

换行

换行符为%0a注意标题是不支持换行的

https://bark.ioiox.com/your_key/标题/内容%0a换行

https://bark.ioiox.com/your_key/网站服务通知/网站:www.ioiox.com%0a状态:运行正常

 

空格

空格符为%20,标题也是可以使用空格符
如果是在浏览器里发送推送,可以直接在内容里使用空格,浏览器会自动转换。

https://bark.ioiox.com/your_key/标题/内容 空格

如果在命令行里则需要使用空格符

https://bark.ioiox.com/your_key/标题/内容%20空格

 

其他需要转译的字符

例如/符号也是需要进行 url-encoder 获得%2F

https://bark.ioiox.com/your_key/GitHub/stilleshan%2Fdockerfiles


配合换行和空格

https://bark.ioiox.com/your_key/GitHub%20Action/仓库:%20stilleshan%2Fdockerfiles%0a状态:%20Workflow%20工作流成功

 

icon 和 group 等多个叠加

正常情况下 icon 配置,icon 图标会缓存到 iOS 设备中。

https://bark.ioiox.com/your_key/标题/内容?icon=https://www.ioiox.com/avatar.jpg

如果同时还需要配置 group 等,则需要使用&来拼接。

https://bark.ioiox.com/your_key/标题/内容?icon=https://www.ioiox.com/avatar.jpg&group=IOIOX

基本上以上一些小技巧应该能完全满足大部分的需求了。当然 bark 还支持 Jason 格式的请求,相信会 Jason 的程序员们应该不需要我来教了,直接查看文档即可。

请在下方留下您的评论. 加入TG吹水群