Bark/docs/deploy.md
2025-05-12 15:05:49 +08:00

5.3 KiB
Raw Blame History

Docker

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

镜像也可使用 ghcr.io/finb/bark-server

Docker-Compose

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

手动部署

  1. 根据平台下载可执行文件:
    https://github.com/Finb/bark-server/releases
    或自己编译
    https://github.com/Finb/bark-server

  2. 运行

./bark-server_linux_amd64 -addr 0.0.0.0:8080 -data ./bark-data
  1. 你可能需要
chmod +x bark-server_linux_amd64

请注意 bark-server 默认使用 /data 目录保存数据,请确保 bark-server 有权限读写 /data 目录,或者你可以使用 -data 选项指定一个目录

Cloudflare Worker

https://github.com/cwxiaos/bark-worker

Serverless

默认提供 Heroku 免费 一键部署 (2022-11-28日后收费)
Deploy

其他支持WEB路由的 serverless 服务器可以使用 bark-server -serverless true 开启。

开启后, bark-server 会读取系统环境变量 BARK_KEY 和 BARK_DEVICE_TOKEN, 需提前设置好。

变量名 填写要求
BARK_KEY 除了不能填 "push" 外,可以随便填写你喜欢的。
BARK_DEVICE_TOKEN Bark App 设置中显示的 DeviceToken此 Token 是 APNS 真实设备 Token ,请不要泄露

请注意 Serverless 模式只允许一台设备使用

Render

Render 能非常简单的创建免费的 bark-server

  1. 注册一个 Render 账号
  2. 创建一个 New Web Service
  3. 在底部的 Public Git repository 输入框输入下面的URL
https://github.com/Finb/bark-server
  1. 点击 Continue 输入表单
    • Name - 名称,随便取个名字,例如 bark-server
    • Region - 服务器地区,选择离你近的
    • Start Command - 程序执行命令,填./app -serverless true。(注意不要漏了 ./app 前面的点)
    • Instance Type - 选 Free ,免费的足够用了。
    • 点击 Advanced 展开更多选项
    • 点击 Add Environment Variable 添加 Serverless 模式需要的 BARK_KEY 和 BARK_DEVICE_TOKEN 字段。 (填写要求参考 Serverless)
    • 其他的默认不动
  2. 点击底部的 Create Web Service 按钮,然后等待状态从 In progress 变成 Live可能需要几分钟到十几分钟。
  3. 页面顶部找到你的服务器URL这个就是bark-server服务器URL在 Bark App 中添加即可
https://[your-server-name].onrender.com
  1. 如果添加失败,可以等待一段时间再试,有可能服务还没准备好。
  2. 不添加到 Bark App 中也可以直接调用就能发推送。BARK_KEY 就是上面环境变量中你填写的。
https://[your-server-name].onrender.com/BARK_KEY/推送内容

宝塔面板

  1. 登录宝塔面板,在菜单栏中点击 Docker

  2. 首次会提示安装DockerDocker Compose服务,点击立即安装,若已安装请忽略。

  3. 安装完成后在左上角搜索框中搜索Bark,点击安装

  4. 设置域名等基本信息,点击确定

  • 名称:应用名称,默认bark_随机字符
  • 版本选择:默认latest
  • 域名:如需通过域名直接访问,请在此配置域名并将域名解析到服务器
  • 允许外部访问:如您需通过IP+Port直接访问,请勾选,如您已经设置了域名,请不要勾选此处
  • 端口:默认8080,可自行修改
  1. 提交后面板会自动进行应用初始化,大概需要1-3分钟,初始化完成后即可使用。

测试

curl http://0.0.0.0:8080/ping

返回 pong 就证明部署成功了

大批量推送普通用户忽略QPS超过 3000 再使用)

如果你需要短时间大批量推送,可以配置 bark-server 使用多个 APNS Clients 推送, 每一个 Client 代表一个新的连接可能连接到不同的APNs服务器请根据 CPU 核心数设置这个参数Client 数量不能超过CPU核心数超过会自动设置为当前 CPU 核心数)。

配置方法:

Docker

docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server bark-server --max-apns-client-count 4

Docker-Compose

version: '3.8'
services:
  bark-server:
    image: finab/bark-server
    container_name: bark-server
    restart: always
    volumes:
      - ./data:/data
    ports:
      - "8080:8080"
    command: bark-server --max-apns-client-count 4

手动部署

./bark-server --addr 0.0.0.0:8080 --data ./bark-data --max-apns-client-count 4

其他

  1. APP端负责将DeviceToken发送到服务端。
    服务端收到一个推送请求后将发送推送给Apple服务器。然后手机收到推送

  2. 服务端代码: https://github.com/Finb/bark-server

  3. App代码: https://github.com/Finb/Bark