BPB Worker Panel 完整部署指南:自动同步与Cloudflare配置
2025/10/27约 1467 字大约 5 分钟
项目概述
- 仓库名称: Worker-AutoSync
- 核心功能: 自动同步上游 BPB Worker Panel 代码 + Cloudflare Pages 部署
- 自动化组件: GitHub Actions 工作流
- 部署平台: Cloudflare Pages
第一部分:GitHub Actions 自动同步配置
工作流配置
# 文件位置: .github/workflows/sync_worker_code.yml
name: 同步上游 Worker 代码 (Zip 解压优化版)
on:
schedule:
- cron: '0 2 * * 1' # 每周一02:00 UTC运行一次
workflow_dispatch: # 允许手动触发
jobs:
update:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout 仓库
uses: actions/checkout@v4
# 步骤 1: 获取版本信息并判断是否需要更新
- name: 检查版本并获取最新版本
id: check_versions
run: |
# 1. 获取最新正式版标签
LATEST_TAG=$(curl -s https://api.github.com/repos/bia-pain-bache/BPB-Worker-Panel/releases/latest | jq -r '.tag_name')
if [ -z "$LATEST_TAG" ]; then
echo "::error::未找到最新正式发布版本,退出。"
exit 1
fi
# 2. 获取本地版本
if [ -f "version.txt" ]; then
CURRENT_VERSION=$(cat version.txt | tr -d '\n' | tr -d '\r')
else
CURRENT_VERSION=""
fi
echo "最新版本: $LATEST_TAG"
echo "当前本地版本: ${CURRENT_VERSION:-未找到}"
# 3. 比较版本,设置是否需要更新
if [ "$CURRENT_VERSION" = "$LATEST_TAG" ]; then
echo "No update needed."
echo "need_update=false" >> $GITHUB_ENV
else
echo "Update needed. New tag: $LATEST_TAG"
echo "latest_tag=$LATEST_TAG" >> $GITHUB_ENV
echo "need_update=true" >> $GITHUB_ENV
echo "download_url=https://github.com/bia-pain-bache/BPB-Worker-Panel/releases/download/$LATEST_TAG/worker.zip" >> $GITHUB_ENV
fi
# 步骤 2: 下载、解压文件并更新版本号 (仅在需要更新时执行)
# 优化:不再手动安装 unzip,ubuntu-latest 默认包含了大多数常用工具
- name: 下载并解压 worker.zip
if: env.need_update == 'true'
run: |
TEMP_ZIP="worker_temp.zip"
echo "正在下载文件: ${{ env.download_url }}"
# 使用 curl 下载 zip 文件
curl -L -o "$TEMP_ZIP" "${{ env.download_url }}"
echo "正在解压文件..."
# 解压 zip 文件到当前目录,这将覆盖 _worker.js
unzip -o "$TEMP_ZIP"
# 删除临时下载的 zip 文件
rm "$TEMP_ZIP"
# 将最新标签名写入 version.txt
echo "${{ env.latest_tag }}" > version.txt
# 步骤 3: 提交更改 (使用专用的 Git Auto Commit Action 替代原生 git 命令)
# 优化:使用 Action 替代 4 行原生 shell 命令
- name: 提交更新到 GitHub
if: env.need_update == 'true'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "🔄 Auto Sync Worker: Update to version ${{ env.latest_tag }}"
# 不使用 --force,因为我们只是在添加或修改 _worker.js 和 version.txtWrangler 配置
# 文件: wrangler.toml
name = "wk-auto-updater-zip"
main = "_worker.js"
compatibility_date = "2024-10-23"验证步骤
- 确保 GitHub Actions 工作流文件正确配置
- 访问 Actions → 同步上游 Worker 代码 (Zip 解压版) → Run workflow
- 刷新页面确认工作流执行成功
第二部分:Cloudflare Pages 初始部署
创建 Cloudflare 账户
- 注册/登录 Cloudflare 账户
创建 Pages 项目
- 控制台 → 技术和AI → Workers 和 Pages → 创建应用程序
- 选择 Pages 选项卡 → 导入现有 Git 存储库 → 开始使用
- 连接 GitHub 账户 → 选择
Worker-AutoSync仓库 - 保存并部署 → 继续处理项目
处理预期错误
部署完成后,访问页面会出现错误:
❌ Something went wrong!
Please set UUID and Trojan password first. Please visit here to generate them.这是正常现象,按照以下步骤解决:
- 点击错误信息中的 "here" 链接
- 在新页面中生成 UUID 和密码
- 重要: 不要关闭此页面,后续步骤需要使用
第三部分:Cloudflare 环境配置
创建 Workers KV 存储
- 控制台 → 存储与数据库 → Workers KV
- 点击 "Create Instance"
- 输入命名空间名称 → 创建
绑定 KV 到 Pages 项目
- 返回 Pages 项目 → 设置 → 绑定
- 点击 "添加绑定"
- 选择 "KV 命名空间"
- 变量名称:
kv - KV 命名空间: 选择刚创建的命名空间
- 保存
配置环境变量
- Pages 项目 → 设置 → 变量与机密
- 点击 "添加变量"
- 返回之前生成的密钥页面,点击 "Copy all"
- 在变量名称处右键粘贴,系统会自动识别并添加三个参数
- 保存
第四部分:完成部署
重新部署项目
- Pages 项目 → 部署 → 所有部署
- 选择最新部署 → 点击横向三点菜单 → 重试部署
- 等待部署完成
访问和管理面板
- 部署完成后,访问 "域" 链接 +
/panel- 例如:
https://your-project.pages.dev/panel
- 例如:
- 设置管理员密码
- 要求: 至少8位,包含大写字母和数字
- 使用新密码登录
第五部分:高级优化配置(可选)
代理 IP 优化
- Pages 项目 → 设置 → 变量和机密 → 添加
- 变量名称:
PROXY_IP - 值:
bpb.yousef.isegaro.com或 IP 列表151.213.181.145, 5.163.51.41, bpb.yousef.isegaro.com - 保存
NAT64 预设修复
- 同上位置添加变量
- 变量名称:
NAT64_PREFIX - 值: 从 NAT64 前缀列表 获取
- 保存
设置回退域
- 同上位置添加变量
- 变量名称:
FALLBACK - 值: 例如
npmjs.org - 保存
更改订阅路径
- 同上位置添加变量
- 变量名称:
SUB_PATH - 值: 使用 UUID 生成器 生成或自定义路径
- 保存并重新部署
自定义域名
- Pages 项目 → 自定义域 → 设置自定义域
- 输入域名 (如 shop.example.com)
- 继续 → 激活域名
第六部分:订阅使用
清洁 IP 扫描(可选)
- 登录面板 → VLESS - Trojan → Clean IPs / Domains
- 工具: Cloudflare Clean IP Scanner、CloudflareSpeedTest
- 使用方法: 下载运行,结果保存在 result.csv
- 建议: Windows 环境运行,测试时断开 VPN
- 其他保存默认。点 Apply 。
获取订阅链接
- 登录面板 → Subscriptions → Normal
- 根据使用的代理软件,点击对应的 "Copy subscription URL"
- 复制生成的订阅链接
参考资源
https://www.kekehub.com/2025/09/bpbnat.html
https://bia-pain-bache.github.io/BPB-Worker-Panel/installation/pages-manual