1. 为什么你需要 Bark?
如果你在服务器上运行着各种脚本(例如:签到成功、硬盘容量预警、Memos 提醒等),如何第一时间收到通知?
微信/钉钉:限制较多,且数据需要经过第三方平台,存在隐私顾虑。
Bark:专门为 iOS 设计,完全私有化部署,响应极快,支持自定义推送图标、声音和点击跳转 URL。
核心逻辑:你的服务器(Bark Server) → 苹果 APNs 推送服务器 → 你的 iPhone。
2. 准备工作
设备要求:一台 iOS 设备(iPhone/iPad),并在 App Store 下载 Bark 客户端。
网络环境:Bark 服务器需要通过 HTTP/HTTPS 与你的 iOS 设备通信。建议准备好域名并配置 HTTPS(如果没有域名,可先用服务器 IP 进行内网测试)。
3. 部署步骤
第一步:创建项目目录
mkdir -p ~/docker/bark && cd ~/docker/bark第二步:编写 docker-compose.yaml
Bark 部署非常简单,无需外部数据库,数据直接保存在本地。
services:
bark-server:
image: finab/bark-server:latest
container_name: bark-server
restart: always
volumes:
- ./data:/data # 存放推送记录和配置文件
ports:
- "8080:8080" # 宿主机8080映射到容器8080(可根据需要修改左侧端口)
command: -addr 0.0.0.0:8080 -data /data # 指定监听地址和数据目录说明:如果宿主机的 8080 端口已被占用,可以修改左侧端口,例如 "8081:8080",后续访问时使用对应端口即可。
第三步:启动容器
docker compose up -d第四步:验证容器状态
docker compose ps确保容器状态为 Up,且没有错误日志。
4. 客户端连接与测试
获取服务器地址
假设你的服务器 IP 是 192.168.1.100,映射的端口为 8080。
App 配置
打开手机上的 Bark App。
点击右上角 + 号,输入 http://192.168.1.100:8080。
如果连接成功,App 会生成一串专属的 Key(例如 https://api.day.app/your-key-here),请复制保存。
发送第一条推送
你可以通过浏览器或终端 curl 发送推送请求。Bark 的推送 URL 格式为:
http://192.168.1.100:8080/your-key-here/推送内容
例如,发送一条内容为“Hello from Bark!”的推送:
curl "http://192.168.1.100:8080/your-key-here/Hello%20from%20Bark%21"或者直接在浏览器地址栏输入该链接。
叮咚! 你的手机瞬间就会弹出这条消息。
提示:URL 中的空格需要编码为 %20,或使用 --data-urlencode 等工具。
5. 进阶玩法:联动 Memos
你可以利用 Bark 实现“记录即提醒”。例如,在 Memos 中通过 Webhook 或编写简单脚本:当你在 Memos 中创建一条带有特定标签(如 #提醒)的笔记时,自动调用 Bark 接口推送该内容,实现双重记录 + 实时提醒。
6. 安全提醒(博主敲黑板)
公网访问必须 HTTPS:如果打算将 Bark 映射到公网使用,务必配合反向代理(如 Nginx、Nginx Proxy Manager、 Caddy)加上 HTTPS 加密。否则你的推送 Key 会明文传输,极易被窃取。
数据目录权限:Bark 容器内运行用户可能非 root,若遇到无法写入日志的情况,可调整 ./data 目录权限:
sudo chown -R 1000:1000 ~/docker/bark/data # 假设容器内用户 UID 为 1000防火墙放行:确保服务器防火墙允许外部访问你映射的端口(如 8080):
sudo ufw allow 8080若使用 iptables,请根据规则放行。
7. 结语
Bark 是连接“服务器后端”与“人类直觉”的桥梁。有了它,你的 Docker 实验室就有了“说话”的能力。
博主结语:如果你是安卓用户,可以关注我后续关于 Gotify 的教程,原理大同小异。
评论区