-
Notifications
You must be signed in to change notification settings - Fork 79
Docker 部署 CPA Manager Plus
seakee edited this page Jun 5, 2026
·
1 revision
本文介绍如何用 Docker 部署 CPA Manager Plus。镜像包含 CPAMP Manager Server 和内置 management.html 面板,但不包含 CPA / CLI Proxy API 本体。
新部署建议使用 Manager Server 托管面板:
http://<host>:18317/management.html
不要照搬旧 CPA-Manager 的「CPA 面板 + External Usage Service URL」模式。Plus 中的 CPA panel mode 是纯 CPA 面板,不使用 Manager Server 的监控和 SQLite 统计能力。
你需要:
- 已运行的 CPA / CLI Proxy API
- 已启用 CPA Management API
- CPA Management Key
- 挂载持久化
/data - 同一个 CPA usage queue 只由一个 CPAMP Manager Server 消费
推荐 CPA 版本:
v7.1.39+
HTTP usage queue 最低版本:
v6.10.8+
CPA 需要允许 Manager Server 访问 Management API:
remote-management: secret-key: "你的 CPA Management Key" allow-remote: true
docker run -d \ --name cpa-manager-plus \ --restart unless-stopped \ -p 18317:18317 \ -v cpa-manager-plus-data:/data \ seakee/cpa-manager-plus:latest
打开:
http://<host>:18317/management.html
首次 setup 填写:
Admin Key: 启动日志中的 cmp_admin_...
CPA URL: http://host.docker.internal:8317、http://cli-proxy-api:8317 或你的 CPA 地址
CPA Management Key: CPA remote-management.secret-key
如果没有设置 CPA_MANAGER_ADMIN_KEY,CPAMP 会生成管理员密钥并只在首次启动日志输出一次:
docker logs cpa-manager-plus
setup 完成后,新浏览器登录只需要 CPAMP Admin Key。CPA Management Key 会在服务端加密保存。
services: cpa-manager-plus: image: seakee/cpa-manager-plus:latest container_name: cpa-manager-plus 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" USAGE_BATCH_SIZE: "100" USAGE_POLL_INTERVAL_MS: "500" USAGE_QUERY_LIMIT: "50000" volumes: - cpa-manager-plus-data:/data healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:18317/health"] interval: 10s timeout: 3s retries: 3 volumes: cpa-manager-plus-data:
启动:
docker compose up -d
也可以使用 GHCR 镜像:
ghcr.io/seakee/cpa-manager-plus:latest
| 场景 | CPAMP setup 中填写的 CPA URL |
|---|---|
| CPA 和 CPAMP 在同一个 Compose network | http://cli-proxy-api:8317 |
| CPA 跑在 Docker Desktop 宿主机 | http://host.docker.internal:8317 |
| CPA 跑在 Linux 宿主机,CPAMP 跑在 Docker |
http://host.docker.internal:8317,并加 --add-host=host.docker.internal:host-gateway
|
| CPA 是远程服务且支持 HTTP queue | https://your-cpa.example.com |
Linux 宿主机 CPA 示例:
docker run -d \ --name cpa-manager-plus \ --restart unless-stopped \ --add-host=host.docker.internal:host-gateway \ -p 18317:18317 \ -v cpa-manager-plus-data:/data \ seakee/cpa-manager-plus:latest
然后填写:
http://host.docker.internal:8317
不要在容器里用 127.0.0.1 访问宿主机 CPA。
必须挂载 /data。
Docker 默认数据:
/data/usage.sqlite
/data/usage.sqlite-wal
/data/usage.sqlite-shm
/data/data.key
备份必须包含 SQLite 文件和 data.key:
docker run --rm \ -v cpa-manager-plus-data:/data \ -v "$PWD":/backup \ alpine \ tar czf /backup/cpa-manager-plus-data-backup.tar.gz -C /data .
data.key 很重要:
-
usage.sqlite保存用量数据和加密后的 CPAMP 配置 -
data.key用来解密已保存的 CPA Management Key - 如果
data.key丢失,已保存的 CPA Management Key 无法恢复,只能重新保存 CPA 连接
升级前先备份 /data。
docker pull seakee/cpa-manager-plus:latest docker stop cpa-manager-plus docker rm cpa-manager-plus docker run -d \ --name cpa-manager-plus \ --restart unless-stopped \ -p 18317:18317 \ -v cpa-manager-plus-data:/data \ seakee/cpa-manager-plus:latest
Compose:
docker compose pull docker compose up -d
curl http://127.0.0.1:18317/health curl http://127.0.0.1:18317/usage-service/info
setup 后:
curl -H "Authorization: Bearer <CPAMP_ADMIN_KEY>" \
http://127.0.0.1:18317/status重点检查:
configured
collector.lastError
lastConsumedAt
lastInsertedAt
eventCount
旧 CPA-Manager Docker 文档使用 seakee/cpa-manager,并描述了 CPA 面板外接 Usage Service。CPA Manager Plus 中:
- 镜像变为
seakee/cpa-manager-plus - 容器通常命名为
cpa-manager-plus - Full mode 登录使用 CPAMP Admin Key,不使用 CPA Management Key
- CPA Management Key 使用
/data/data.key加密保存 - CPA panel mode 是纯 CPA 面板,不配置外部 Manager Server 统计