Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

从 CPA Manager 迁移

seakee edited this page Jun 5, 2026 · 1 revision

从 CPA-Manager 迁移

本文面向从旧 seakee/cpa-manager 项目迁移到 seakee/cpa-manager-plus 的用户。

目标是在可行范围内保留历史请求统计、模型价格、API Key 别名和已保存的 CPA 连接配置。


关键变化

旧 CPA-Manager CPA Manager Plus
seakee/cpa-manager seakee/cpa-manager-plus
cpa-manager 二进制 cpa-manager-plus 二进制
Usage Service Manager Server
Full mode 用 CPA Management Key 登录 Full mode 用 CPAMP Admin Key 登录
CPA Management Key 保存在旧 setup 数据中 CPA Management Key 使用 data.key 加密保存
CPA 面板 + External Usage Service URL Plus 不支持;请使用 Manager Server 托管面板

/usage-service/info/usage-service/config 等兼容端点仍保留,但在 Plus 中它们属于 Manager Server 兼容接口。


迁移前检查

  1. 确认 CPA 版本。推荐 v7.1.39+;HTTP usage queue 最低 v6.10.8+
  2. 找到旧数据目录或 volume。
  3. 停止旧 CPA-Manager 服务,避免 SQLite WAL 文件仍在写入。
  4. 备份完整旧数据目录,至少包含:
usage.sqlite
usage.sqlite-wal
usage.sqlite-shm
  1. 决定 CPAMP Admin Key。建议显式设置 CPA_MANAGER_ADMIN_KEYCPA_MANAGER_ADMIN_KEY_FILE

Docker Volume 迁移

旧部署常见:

services:
 cpa-manager:
 image: seakee/cpa-manager:latest
 volumes:
 - cpa-manager-data:/data
volumes:
 cpa-manager-data:

让 Plus 使用同一个旧 volume:

services:
 cpa-manager-plus:
 image: seakee/cpa-manager-plus:latest
 restart: unless-stopped
 ports:
 - "18317:18317"
 environment:
 HTTP_ADDR: "0.0.0.0:18317"
 USAGE_DB_PATH: "/data/usage.sqlite"
 CPA_MANAGER_DATA_KEY_PATH: "/data/data.key"
 CPA_MANAGER_ADMIN_KEY: "replace-with-a-long-random-admin-key"
 USAGE_COLLECTOR_MODE: "auto"
 volumes:
 - cpa-manager-data:/data
volumes:
 cpa-manager-data:
 external: true

如果你期望看到旧数据,不要误用新的空 cpa-manager-plus-data volume。


宿主机目录迁移

旧示例:

docker run -d \
 --name cpa-manager \
 -p 18317:18317 \
 -v /srv/cpa-manager-data:/data \
 seakee/cpa-manager:latest

迁移:

docker stop cpa-manager
cp -a /srv/cpa-manager-data /srv/cpa-manager-data.backup
docker run -d \
 --name cpa-manager-plus \
 --restart unless-stopped \
 -p 18317:18317 \
 -v /srv/cpa-manager-data:/data \
 -e CPA_MANAGER_ADMIN_KEY='replace-with-a-long-random-admin-key' \
 seakee/cpa-manager-plus:latest

然后打开:

http://<host>:18317/management.html

用 CPAMP Admin Key 登录。


原生包迁移

  1. 停止旧 cpa-manager 进程。
  2. 备份旧程序目录,尤其是 data/usage.sqlite*
  3. 解压 cpa-manager-plus_<version>_<os>_<arch>
  4. 将旧 data 目录复制到新包目录,或设置 USAGE_DATA_DIR / USAGE_DB_PATH 指向旧路径。
  5. 用显式 Admin Key 启动:
CPA_MANAGER_ADMIN_KEY='replace-with-a-long-random-admin-key' ./cpa-manager-plus

首次启动验证

检查启动日志:

  • 如果没有设置 CPA_MANAGER_ADMIN_KEY,保存生成的 cmp_admin_...
  • 确认没有 SQLite、decrypt 或 bootstrap 错误

再检查:

curl -H "Authorization: Bearer <CPAMP_ADMIN_KEY>" \
 http://<host>:18317/status

面板中检查:

  1. 打开「Configuration -> CPA Manager Plus Configuration」
  2. 确认绑定的 CPA URL
  3. 确认 request monitoring、collection mode、poll interval
  4. 打开 Dashboard 或 Monitoring,确认历史数据可见

迁移后的备份规则

Plus 会新增:

/data/data.key

此后备份必须包含:

usage.sqlite
usage.sqlite-wal
usage.sqlite-shm
data.key

如果 data.key 丢失,已加密的 CPA Management Key 无法恢复。


回滚

回滚前先停止 Plus。

旧 CPA-Manager 可以读取主要 usage tables 和旧 settings.setup,但无法识别 Plus admin credentials、bootstrap state 或 data.key。建议优先回滚到 Plus 首次启动前的备份。


常见问题

  • 看不到旧数据:Plus 可能使用了新的空 volume。
  • 登录 401:应使用 CPAMP Admin Key,不是 CPA Management Key。
  • 监控为空:检查 CPA usage publishing、collector mode、CPA 版本,以及是否只有一个 Manager Server 消费队列。
  • 解密失败:确认 data.key 没有丢失或被替换。

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /