目 录CONTENT

文章目录

Docker 系列 (三):部署 Bark,构建你的私有消息推送中心

y总
2026-03-22 / 0 评论 / 0 点赞 / 2 阅读 / 4406 字

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 配置

  1. 打开手机上的 Bark App。

  2. 点击右上角 + 号,输入 http://192.168.1.100:8080。

  3. 如果连接成功,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 的教程,原理大同小异。

0

评论区