CCR 配置备份怎么做:3 个步骤守住你的路由规则和 API 密钥
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
上周有个同事的笔记本硬盘坏了,装好的 Claude Code Router 跟着没了——路由规则、上游 Provider 的密钥、Agent 配置全丢,重新配了半天还差一个找不回来的密钥。CCR 配置备份这件事,平时没人想起来,真出事时它就是你唯一的活路。
先说结论:CCR 的全部核心配置都在一个目录里,备份就是把"停服务 + 打包目录"做成习惯。
你的数据到底存在哪
这一步解决"备份什么、备份到哪里找"的问题。CCR 把配置放在用户主目录下的.claude-code-router文件夹里,不同系统位置略有差异:
- macOS / Linux:
~/.claude-code-router/ - Windows:
%APPDATA%\claude-code-router\
目录里真正值钱的是这几样:
config.sqlite:当前全部应用配置(Provider、路由、Agent 配置),它是主数据库app-data/:API 密钥、用量统计、请求日志、证书等运行时数据profiles/:各 Agent 配置的隔离文件gateway.config.json:网关运行配置(可再生,但留着不亏)
⚠️ 风险:
config.sqlite运行时不要直接复制。SQLite 有-wal和-shm两个伴随文件,服务运行中拷贝出来大概率是一个坏库。文件级备份前,先停掉 CLI 和桌面端。
老版本用config.json存配置,现在只会在首次启动时作为迁移源读一次,之后改了它也不生效。别照着网上老教程去备份一个config.json。
场景一:配置丢了或坏了,怎么快速恢复
假设某天~/.claude-code-router被误删,或者数据库损坏导致 UI 打不开。处置顺序是:找快照 → 停服务 → 解包 → 起服务。
- 找到最近一份备份(假设放在
~/ccr-backups/下):
ls -lt ~/ccr-backups/这条命令按时间倒序列出所有备份包,第一行就是最新的。
- 停掉可能残留的 CCR 进程,避免恢复后两个状态打架:
ccr stop- 用备份包覆盖配置目录:
tar xzf ~/ccr-backups/ccr-20260901.tgz -C ~/.claude-code-router/这条命令把快照解包回原目录,-C参数指定解压目标,路径写错会解到别的文件夹。
- 启动并验证:
ccr start管理界面能打开、Provider 列表还在,就恢复成功了。
📌 提示:如果你习惯 Docker 部署,恢复方式类似——把备份复制到一个空的
/data目录,容器保持停止状态。千万别把旧备份直接盖在还有新数据的目录上,旧的 WAL/SHM 文件和新的运行时文件混在一起,数据库照样废。
场景二:换新设备,CCR 数据迁移
换电脑、换服务器时,CCR 数据迁移的本质就是"旧机器打包 → 传文件 → 新机器解包",中间不依赖网络同步。
- 旧设备上停服务并打包(这就是你平时该留着的快照):
ccr stop && tar czf ccr-backup.tgz -C ~ .claude-code-router这条命令停掉后台服务后,把整个配置目录压缩成一个ccr-backup.tgz。
通过 U 盘、网盘或
scp把文件传到新设备。新设备装好 CCR 后,先不要启动它,直接解包到主目录:
tar xzf ccr-backup.tgz -C ~解完后~/.claude-code-router就完整出现了,再执行ccr start,路由规则和密钥原地复活。
⚠️ 注意:备份包里包含上游 API 密钥和 CCR 客户端密钥,传输走加密通道,落到网盘后别设公开权限。这份目录按"机密文件"级别对待就行。
场景三:Provider 密钥过期或丢失
密钥找不回来时,先想清楚它存在哪。CCR 的上游 Provider 凭证不在config.sqlite里裸存,而是落在app-data/目录下的密钥数据库中,所以恢复密钥也靠同一份快照,而不是手工改某个 JSON 字段。
处置分三条路:
- 有快照:按场景一的步骤恢复整个目录,密钥随库一起回来(前提是该快照拍摄于密钥仍然有效的时段)。
- 快照里也没有:去 Provider 官网重置密钥,然后打开 CCR 管理界面的 Provider 页面,把新密钥粘贴进去保存即可。
- 怀疑密钥泄露:直接吊销并重置,恢复旧快照前先在 UI 里确认一下密钥是否还需要换。
顺带一提,CCR 的设置页提供"导出数据"入口,那是官方推荐的应用级备份方式,导出的快照就是给这个场景用的。
把备份变成定时任务,一次配置长期生效
前三节都假设"你有备份",这一节解决"怎么保证你总有备份"。用系统自带的定时任务加一条打包命令即可,不需要写脚本。
在 crontab 里加一行(每天凌晨 3 点打包一次):
0 3 * * * tar czf ~/ccr-backups/ccr-$(date +\%Y\%m\%d).tgz -C ~ .claude-code-router这条命令到点后自动把配置目录压缩进~/ccr-backups/,文件名带日期,方便按天回溯。
再补两条习惯:
- 保留最近 14 天就够,用
find ~/ccr-backups -mtime +14 -delete挂在同一行任务后面自动清理 - Docker 部署的用户,把
docker compose cp ccr:/data/. ./backups/停容器后执行一次,效果等同
最后
备份这件事没什么技术含量,难的是让它发生在灾难之前。CCR 的全部家当就集中在一个目录里,这让"CCR 数据恢复"退化成了一次 tar 操作——只要你接受"升级前、换机前、改完路由后"各打一次包,将来无论是误删、坏盘还是密钥过期,你花在恢复上的时间不会超过十分钟。
可参考的仓库内资料:配置库位置说明见 docs/src/content/docs/en/configuration/configuration-file.md,CLI 各命令与数据目录对照表见 docs/src/content/docs/en/guides/cli.md,Docker 部署下的备份恢复细节见 docs/src/content/docs/en/guides/docker.md。
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考