Skip to content

Docker 与存储配置

SQLite(单实例)

SQLite 是单实例部署的推荐后端。下面的命令可以直接启动,不要求挂载 volume:

bash
docker run -d --name codebuddy2api --restart unless-stopped -p 8001:8001 \
  -e CODEBUDDY_STORAGE_BACKEND=sqlite \
  -e CODEBUDDY_STORAGE_ENCRYPTION_KEY='replace-with-a-long-random-secret' \
  -e CODEBUDDY_STORAGE_IMPORT_LEGACY_FILES=false \
  ghcr.io/orangeboychen/codebuddy2api:latest

SQLite 文件默认位于容器内的 /app/.codebuddy_data/storage.sqlite。如果要在容器删除或重建后保留数据,请增加 -v codebuddy2api-data:/app/.codebuddy_data

启动后打开 http://127.0.0.1:8001/dashboard

PostgreSQL(多实例)

多实例部署使用 PostgreSQL:

bash
-e CODEBUDDY_STORAGE_BACKEND=pg \
-e DATABASE_URL='postgres://user:password@db:5432/codebuddy2api' \
-e CODEBUDDY_STORAGE_ENCRYPTION_KEY='replace-with-a-long-random-secret'

旧文件迁移

如果已有 .codebuddy_creds 或旧 JSON 配置,首次启动数据库后端时不要设置 CODEBUDDY_STORAGE_IMPORT_LEGACY_FILES=false,并临时挂载旧目录:

bash
-v "$(pwd)/.codebuddy_creds:/app/.codebuddy_creds"

确认迁移完成后,设置 CODEBUDDY_STORAGE_IMPORT_LEGACY_FILES=false,并移除旧目录挂载。

环境变量

变量作用示例 / 默认值
CODEBUDDY_STORAGE_BACKEND存储后端filesqlitepg
CODEBUDDY_STORAGE_SQLITE_PATHSQLite 文件路径.codebuddy_data/storage.sqlite
CODEBUDDY_STORAGE_ENCRYPTION_KEY加密数据库中的敏感数据;数据库后端必填长随机字符串
CODEBUDDY_STORAGE_IMPORT_LEGACY_FILES是否从旧文件导入数据新部署设为 false
DATABASE_URLPostgreSQL 连接字符串postgres://user:password@db:5432/codebuddy2api
CODEBUDDY_API_ENDPOINT上游 CodeBuddy API 地址https://copilot.tencent.com
CODEBUDDY_AUTH_MODE上游认证模式auto / token
CODEBUDDY_INTERNET_ENVIRONMENT网络环境internal / ioa / public
CODEBUDDY_LOG_LEVEL日志级别INFO
CODEBUDDY_ADMIN_PASSKEY_RP_ID管理员 Passkey 使用的 hostnameexample.com