BPB面板部署方案
zoe.X Lv2

BPB面板部署方案

项目简介

BPB Worker Panel 是一个基于Cloudflare Workers的科学上网面板解决方案。

必需的环境变量

在开始部署之前,您需要准备以下环境变量:

变量名 说明 是否必需
PROXY_IP 代理IP地址
TR_PASS 传输密码
UUID 唯一标识符
SUB_PATH 订阅路径
FALLBACK 回退配置
kv KV存储空间

提示: 如果不知道如何填写这些变量,可以先运行 BPB Wizard 获取随机参考值。

官方推荐部署方式

官方推荐使用 BPB Wizard 进行部署,它支持Workers和Pages两种方法,可以简化设置过程并防止用户在创建过程中出错。

注意: 官方方式容易被Cloudflare检测到,可能出现 Error 1101 错误。以下介绍两种不会被检测的部署方式。

方案一:GitHub仓库 + Pages部署

这种方式通过GitHub Actions自动同步最新版本,避免被Cloudflare检测。

步骤详解

1. 创建GitHub仓库

  • 新建GitHub仓库
  • 重要: 仓库名不要包含"BPB"关键词,避免被检测

2. 配置自动更新工作流

在仓库中创建文件 .github/workflows/auto-update.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: Auto Update Worker

on:
push:
branches:
- main
schedule:
- cron: "0 1 * * *" # 每天凌晨1点自动检查更新
workflow_dispatch:
inputs:
force_update:
description: '是否强制更新(忽略版本检查)'
required: false
default: 'false'

permissions:
contents: write

jobs:
update:
runs-on: ubuntu-latest
steps:
- name: 检出仓库
uses: actions/checkout@v4

- name: 设置环境变量
run: |
echo "REPO_URL=https://api.github.com/repos/bia-pain-bache/BPB-Worker-Panel/releases" >> $GITHUB_ENV
echo "TARGET_FILE=worker.zip" >> $GITHUB_ENV

- name: 检查并更新Worker代码
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# 日志函数
log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1"; }

log "开始检查更新..."

# 获取本地版本
LOCAL_VERSION=$(cat version.txt 2>/dev/null || echo "")
log "本地版本: ${LOCAL_VERSION:-无}"

# 获取最新Release信息
log "获取最新Release信息..."
RESPONSE=$(curl -s --retry 3 -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3+json" "$REPO_URL")
if [ $? -ne 0 ]; then
log "ERROR: 无法访问GitHub API"
exit 1
fi

TAG_NAME=$(echo "$RESPONSE" | jq -r '.[0].tag_name')
DOWNLOAD_URL=$(echo "$RESPONSE" | jq -r '.[0].assets[] | select(.name == "'"$TARGET_FILE"'") | .browser_download_url')

if [ -z "$DOWNLOAD_URL" ] || [ "$DOWNLOAD_URL" == "null" ]; then
log "ERROR: 未找到 $TARGET_FILE"
exit 1
fi
log "最新版本: $TAG_NAME"

# 判断是否需要更新
FORCE_UPDATE=${{ github.event.inputs.force_update || 'false' }}
if [ "$LOCAL_VERSION" = "$TAG_NAME" ] && [ "$FORCE_UPDATE" != "true" ]; then
log "已是最新版本,无需更新"
exit 0
fi

# 下载并更新
log "下载 $TARGET_FILE..."
wget -q -O "$TARGET_FILE" "$DOWNLOAD_URL"
log "解压 $TARGET_FILE..."
unzip -o "$TARGET_FILE"
rm "$TARGET_FILE"
echo "$TAG_NAME" > version.txt
log "更新完成,新版本: $TAG_NAME"

- name: 提交更改
if: success()
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "🔄 自动同步Worker版本: ${{ steps.check_update.outputs.tag_name || '未知' }}"
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"

3. 验证工作流

  • 检查GitHub Actions页面,确认工作流运行成功
  • 确认仓库中已生成相关文件

4. 部署到Cloudflare Pages

  1. 前往Cloudflare Pages控制台
  2. 连接到刚创建的GitHub仓库
  3. 点击部署

5. 配置环境变量

在Cloudflare Pages中配置以下变量:

变量名 说明 Pages部署是否必需
PROXY_IP 代理IP地址
TR_PASS 传输密码
UUID 唯一标识符
SUB_PATH 订阅路径 否(可不填)
FALLBACK 回退配置 否(可不填)
kv KV存储空间

配置完成后重新部署即可。

方案二:混淆代码Workers部署

这种方式使用混淆后的代码直接部署到Cloudflare Workers,进一步降低被检测的风险。

步骤详解

1. 获取混淆代码

  • 下载混淆版本:worker.zip
  • 解压文件并重命名为 worker.js

2. 创建Cloudflare Worker

  1. 登录Cloudflare控制台
  2. 进入Workers & Pages
  3. 创建新的Worker(选择"Hello World"模板)
  4. 进入代码编辑页面

3. 上传混淆代码

  1. 删除默认的 worker.js 文件
  2. 右键上传下载的混淆版 worker.js 文件
  3. 保存并部署

4. 配置环境变量和KV存储

在Worker设置中配置以下变量:

变量名 说明 是否必需
PROXY_IP 代理IP地址
TR_PASS 传输密码
UUID 唯一标识符
SUB_PATH 订阅路径
FALLBACK 回退配置
kv KV存储空间

总结

两种部署方案各有优势:

  • GitHub Pages方案:自动更新,维护简单,适合长期使用,分配域名链接可直接访问
  • 混淆代码Workers方案:部署快速,隐蔽性更强,适合快速部署,分配域名链接不可直连,需绑定自定义域名

选择适合您需求的方案进行部署即可。无论选择哪种方案,都要确保正确配置环境变量和KV存储空间。

注意事项

  1. 仓库命名避免包含敏感关键词
  2. 定期检查服务状态
  3. 妥善保管配置信息
  4. 遵守相关法律法规
 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量