部署了 CLIProxy API 运行了一年了,好不容易收集了各大大模型API平台的配置,要更换服务器,发现没有备份,导致配置丢失,经过这一次教训,我决定将API配置同步到GIT仓库,方便随时拉取和备份。

官方提供了多种方案,包括存储到git,PostgreSQL,对象存储,我为了方便,选择了git仓库同步。

配置很简单,按照官方教程配置好GIT TOKEN,教程在这里:https://help.router-for.me/cn/hands-on/tutorial-10

由于我是自己服务器部署,所以无需看第二步,直接把对应的环境变亮配置到 .env 文件中。

GITSTORE_GIT_URL=https://github.com/xxx/cli-config.git
GITSTORE_GIT_USERNAME=xxx
GITSTORE_GIT_TOKEN=github_pat_xxx
GITSTORE_LOCAL_PATH=/data/cliproxy/gitstore

然后重新输入下面命令重启容器

docker compose up -d

重启后发现配置并没有同步到git仓库,找了很久才发现,官方教程中有一个坑,默认docker启动的环境变量是关闭的,我们需要在 docker-compose.yml 文件中把 env_file 配置项打开,然后重新启动容器即可。

services:
cli-proxy-api:
image: ${CLI_PROXY_IMAGE:-eceasy/cli-proxy-api:latest}
pull_policy: always
build:
context: .
dockerfile: Dockerfile
args:
VERSION: ${VERSION:-dev}
COMMIT: ${COMMIT:-none}
BUILD_DATE: ${BUILD_DATE:-unknown}
container_name: cli-proxy-api
env_file:
- .env
environment:
DEPLOY: ${DEPLOY:-}
ports:
- "8317:8317"
- "8085:8085"
- "1455:1455"
- "54545:54545"
- "51121:51121"
- "11451:11451"
volumes:
- ${CLI_PROXY_CONFIG_PATH:-./config.yaml}:/CLIProxyAPI/config.yaml
- ${CLI_PROXY_AUTH_PATH:-./auths}:/root/.cli-proxy-api
- ${CLI_PROXY_LOG_PATH:-./logs}:/CLIProxyAPI/logs
- ${CLI_PROXY_PLUGIN_PATH:-./plugins}:/CLIProxyAPI/plugins
restart: unless-stopped

最后重启后就可以看到同步到git仓库了,其他对象存储方案也是一样的问题。

CPA同步成功
CPA同步成功

CPA虽然强大,但是文档说明还不够友好,对于新手来说不知如何下手,最后还是得看代码(其实是AI)才能找到问题。