WorkBuddy Manager 部署指南:CodeBuddy 账号池可视化面板

项目地址:
- 面板:https://github.com/ithtelab/workbuddy-manager
- 上游网关:https://github.com/Sliverkiss/workbuddy2api
把「多账号签到、OpenAI 兼容网关、密钥分发」从命令行脚本变成一个 Web 面板。本文覆盖两种部署形态与自启配置的常见坑。

这套东西是什么

workbuddy2api 是 Go 写的腾讯 CodeBuddy 账号池网关——多账号包装成 OpenAI 兼容接口,自带轮询、熔断、定时签到。能力强,但纯命令行:加号跑脚本、看状态用 curl、发密钥靠手改配置。

workbuddy-manager(MIT)是给上游配套的 Web 管理端:

以前现在
跑脚本扫码加号面板点一下,扫码即纳管
curl /status 看状态仪表盘实时展示健康度与有效期
手改 config.json可视化设置,开关 + 数字框
全局共用一个 Key多密钥分发,独立配额与 IP 白名单
面板不侵入上游、不改一行代码:调度与熔断仍由上游负责,面板补上运营环节。技术栈:Next.js 静态导出 + FastAPI + SQLite,单进程单端口。

架构

下游客户端(OpenAI SDK)
        │  Bearer wbk_xxx
        ▼
┌────────────────────────────────┐
│ workbuddy-manager       :7864 │
│ 面板 · 密钥 · 日志 · 反代       │
└──────────┬─────────────────────┘
           ▼
┌────────────────────────────────┐
│ workbuddy2api(Go)     :7863  │
│ 账号轮询 · 签到 · 熔断          │
└──────────┬─────────────────────┘
           ▼
    腾讯 CodeBuddy

上游 config.json 的四类定时任务重启后自动恢复:每日签到、猫猫旅行、活跃上报、Token 保活。

效果图

WorkBuddy Manager 仪表盘

部署方式怎么选

方式适合场景
服务器一键脚本云服务器公网运营,自动装齐上下游 + systemd
Docker Compose已在用 Docker 跑上游
Windows 原生常开的 Windows 机器,不想装 Docker

Windows 原生部署

1. 前置

上游 workbuddy2api 已运行(默认端口 7863),并备好启停脚本(新版上游自带 start/stop-workbuddy2api.cmd)。

2. 配置

git clone https://github.com/ithtelab/workbuddy-manager.git
cd workbuddy-manager
Copy-Item .env.example .env

.env 关键项(路径用 /):

WB_MANAGER_HOST=127.0.0.1
WB2API_MODE=native
WB_UPSTREAM_DIR=<上游目录>
WB_AUTH_DIR=<上游目录>/auths
WB_UPSTREAM_CONFIG=<上游目录>/config.json
WB2API_START_SCRIPT=<上游目录>/start-workbuddy2api.cmd
WB2API_STOP_SCRIPT=<上游目录>/stop-workbuddy2api.cmd
WB2API_LOG_FILE=<上游目录>/data/server.err.log

两个约定:启动脚本要立即返回(前台运行会让「重启」误报超时),日志要写到 WB2API_LOG_FILE(否则面板任务页读不到记录)。

3. 构建并启动

py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r server\requirements.txt
cd web; npm ci; npm run build:export; cd ..
powershell -ExecutionPolicy Bypass -File .\service-tools.ps1 start

打开 http://127.0.0.1:7864 登录(密码由 WB_ADMIN_PASSWORD 指定,未设则首启日志打印随机密码),登录后立刻改密。

4. 纳管与分发

  • 「账号」页扫码添加账号,成功后自动首签、写授权文件、重载上游
  • 「密钥」页新建密钥:可限定版本(国内/国际)、有效期、IP 白名单、模型白名单、Token 配额、积分配额(按上游真实扣费累计,任一超限即 429)
  • 密钥明文只在创建时展示一次

开机自启的三个坑

无黑窗自启的推荐方案:启动文件夹 VBS + PowerShell 两层——VBS 只负责隐藏调用 PowerShell,实际启动逻辑放 start.ps1。

坑一:VBS 里做输出重定向会静默失效。cmd /c xxx.exe >> log 2>&1 实测进程和日志都不会产生。改用 PowerShell Start-Process -RedirectStandardError 原生重定向(Go 与 uvicorn 的主日志都在 stderr)。

坑二:不设工作目录,exe 静默退出。Start-Process 必须带 -WorkingDirectory,否则读不到配置文件直接退,无任何报错。

坑三:错过整点不补跑。调度器只取下一个整点,服务晚启动就会跳过当天任务——这类服务必须常驻,正是要做自启的原因。

核心逻辑(幂等,重复运行安全):

if (Test-Listening 7863) {
    Add-Content $log "already listening - skip"
} else {
    Start-Process -FilePath <上游exe> `
        -WorkingDirectory <上游目录> `
        -RedirectStandardError "$logDir\up-$stamp.log" `
        -WindowStyle Hidden
}

核验自启看 launcher.log;核验签到执行看上游日志的 checkin done 汇总行(定时签到不写管理端的签到记录表)。

安全须知

  • 账号凭证为明文 token:勿提交 git、勿外泄;备份凭证目录与 manager.db 即可完整恢复
  • 默认密码务必修改
  • 公网访问务必套 HTTPS 反向代理
  • 管理端身份与网关密钥彻底分离:API 密钥不能登录后台
返回首页