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 * * *" 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:-无}"
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
- 前往Cloudflare Pages控制台
- 连接到刚创建的GitHub仓库
- 点击部署
5. 配置环境变量
在Cloudflare Pages中配置以下变量:
| 变量名 |
说明 |
Pages部署是否必需 |
PROXY_IP |
代理IP地址 |
是 |
TR_PASS |
传输密码 |
是 |
UUID |
唯一标识符 |
是 |
SUB_PATH |
订阅路径 |
否(可不填) |
FALLBACK |
回退配置 |
否(可不填) |
kv |
KV存储空间 |
是 |
配置完成后重新部署即可。
方案二:混淆代码Workers部署
这种方式使用混淆后的代码直接部署到Cloudflare Workers,进一步降低被检测的风险。
步骤详解
1. 获取混淆代码
2. 创建Cloudflare Worker
- 登录Cloudflare控制台
- 进入Workers & Pages
- 创建新的Worker(选择"Hello World"模板)
- 进入代码编辑页面
3. 上传混淆代码
- 删除默认的
worker.js 文件
- 右键上传下载的混淆版
worker.js 文件
- 保存并部署
4. 配置环境变量和KV存储
在Worker设置中配置以下变量:
| 变量名 |
说明 |
是否必需 |
PROXY_IP |
代理IP地址 |
是 |
TR_PASS |
传输密码 |
是 |
UUID |
唯一标识符 |
是 |
SUB_PATH |
订阅路径 |
是 |
FALLBACK |
回退配置 |
是 |
kv |
KV存储空间 |
是 |
总结
两种部署方案各有优势:
- GitHub Pages方案:自动更新,维护简单,适合长期使用,分配域名链接可直接访问
- 混淆代码Workers方案:部署快速,隐蔽性更强,适合快速部署,分配域名链接不可直连,需绑定自定义域名
选择适合您需求的方案进行部署即可。无论选择哪种方案,都要确保正确配置环境变量和KV存储空间。
注意事项
- 仓库命名避免包含敏感关键词
- 定期检查服务状态
- 妥善保管配置信息
- 遵守相关法律法规