跨系统的通知同步方案
原来的备机也是用了一台换下来的iPhone,电话、短信等都可以同步到主力设备上,去年买了一台安卓手机作为备机后,这条同步的路就被堵了,经过研究后发现了Bark这个服务,依赖iOS的APNs来推送信息,及时性和可靠性都比较高,用了一年,一直比较稳定,稳定到让我都快忘了在服务器上部署了这么一个服务,今天在部署其他服务时才想起来,便写下来,有此类需求的话可以参考。

部署

这个方案依赖服务端和客户端,如果不想自己部署服务端的话,可以用免费的,但毕竟涉及到短信、电话的通知,自然是要自己部署的,部署方法也比较简单,直接docker就行。

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

or

mkdir bark && cd bark
curl -sL https://git.io/JvSRl > docker-compose.yaml
docker-compose up -d

部署后验证

curl http://0.0.0.0:8080/ping

建议绑定自己的域名,并加上SSL证书。可以使用Nginx做代理到服务器的8080端口(如有更改,更换即可)。

使用

我目前的用法是:

  • iOS终端下载Bark客户端,在服务器栏增加自己的地址信息,生成自己的调用地址
  • 在Android设备中安装“SmsForwarder”短信转发软件,新建一个Bark的发送通道,设置好规则,地址调用上一步Bark中的地址
  • 开启SmsForwarder的短信通知,赋予读取短信、通讯录权限
  • 接下来,当收到短信或有未接电话后即可收到推送,并且可以在Bark App中查看历史短信记录,当然还有其他玩法,比如监控报警等,绝大部分需要通知的场景。

    我的服务已经稳定运行快一年了,基本上收到消息后实现秒通知。

    服务官方地址:https://bark.day.app/