搭建 iOS 平台的个人通知推送服务
Bark 是一款可以给 iOS 系统推送自定义通知的开源应用,用户可以通过 HTTP 接口向自己的手机或者 iOS 设备推送消息。应用内置了公共服务器,软件作者也提供了开源的服务端用于搭建个人推送服务器。此外,还可以通过 Chrome 浏览器扩展来调用推送接口。
部署服务端
应用内置了公共服务器,如果你没有隐私方面的需求,可以直接使用公共服务器进行推送。但是为了稳定性和私密性,建议自己搭建服务器。
服务端使用 Go 语言编写,可以直接下载并运行编译好的二进制可执行文件,无需配置。此处以 CentOS 7 x86_64 系统为例讲解如何部署服务端。
下载
从 GitHub 上下载对应平台的二进制可执行文件:https://github.com/Finb/bark-server/releases 。此处应选择 bark-server_linux_amd64 版本。
shellwget https://github.com/Finb/bark-server/releases/download/v2.0.2/bark-server_linux_amd64
chmod +x bark-server_linux_amd64
mv ./bark-server_linux_amd64 /usr/local/bin/bark-server
注意:本文例子中的命令皆在 root 权限下运行。部署时请自行解决权限问题。
安装服务
新建用于保存 Bark 数据的目录:
shellmkdir /var/local/bark
chmod +w /var/local/bark
新建服务配置文件:
shellnano /etc/systemd/system/bark.service
写入如下内容:
ini[Unit]
Description=Bark Service
After=network.target
Wants=network.target
[Service]
Type=simple
PIDFile=/run/bark.pid
ExecStart=/usr/local/bin/bark-server -user admin -password 123456 -addr 127.0.0.1:8000 -data /var/local/bark
Restart=on-failure
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target
本例中 Bark 服务器运行在 8000 端口,你也可以改成其他端口。-user
和 -password
参数用于设置 HTTP 接口的访问用户名和密码。如果设置了该组参数,除了 /ping
、/register
、/healthz
三个接口之外,都需要提供 HTTP Basic Auth 认证。此处用户名设为 admin
,密码 123456
,请自行修改。
执行命令载入配置并启动服务:
shellsystemctl daemon-reload
systemctl start bark
查看服务是否正确运行:
shellnetstat -anp|grep 8000
如果显示:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 32459/bark-server
则表示服务成功运行。
配置 Nginx
如果没有安装 nginx,请先安装:
shellyum install -y nginx
新建配置文件:
shellnano /etc/nginx/sites-available/bark.my.site
写入如下内容:
nginxserver {
listen 80;
listen [::]:80;
server_name bark.my.site;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
其中 bark.my.site
是你的个人域名,你也可以直接使用 IP 地址。http://127.0.0.1:8000
是 Bark 运行服务的 URL。
使配置生效:
shellln -s /etc/nginx/sites-available/bark.my.site /etc/nginx/sites-enabled/bark.my.site
systemctl restart nginx
安装手机应用
作者已经将编译好的手机应用发布到了 App Store。可以在 App Store 上搜索“Bark”进行安装,也可以通过下面的链接进行安装:
https://apps.apple.com/cn/app/bark-customed-notifications/id1403753865
安装完毕后打开 APP,点击应用右上角 +
按钮,输入之前配置的服务端地址:http://bark.my.site
。
服务器配置完毕后,你可以在「服务器」页面看到形如 http://bark.my.site/XXxxXXxxXXxxXX/这里改成你自己的推送内容
的推送接口列表。其中 XXxxXXxxXXxxXX
就是你的设备代码。每次添加服务器,都会生成新的设备代码。
调用接口
shell curl --basic -u admin:123456 http://bark.my.site/{device_code}/测试消息
将命令中 admin:123456
改成之前设置的 {用户名}:{密码}
,{device_code}
改成你的设备代码。测试成功的话,你的手机就能收到一条内容为「测试消息」的推送。