前言¶
在 DeepSeek Harness(DSH)环境中,开发者的配置(如插件列表、设置文件以及 .credentials.yaml 中的 API 密钥)通常存储在本地。本地备份容易丢失或泄露敏感信息;直接上传到公有云则缺乏安全性。dsh-vault 旨在解决这一矛盾,它将 DSH 的 Home 配置进行加密后,推送到你自己的私有 GitHub 仓库,并在新机器上通过一个命令恢复,从而实现安全的跨机器迁移。
插件概览¶
dsh-vault 是一个 DSH 插件,主要功能是:
* 加密存储:利用 scrypt + AES-256-GCM 算法对配置文件进行加密。
* 私有仓库同步:通过 REST API 将加密快照推送到私有 GitHub 仓库。
* 零依赖:不依赖任何外部 npm 包,仅使用 Node.js 内置 crypto 模块。
* 交互配置:提供 dsh-vault-config 技能辅助初始化。
安装与启用¶
资料中未提供具体的安装命令。
* 前置要求:DSH 版本需 >= 0.2.0-rc.2。插件目前仅支持 latest 和 next 分支,不再支持 Alpha 线。
* 获取方式:通过 GitHub 仓库地址进行安装(具体命令取决于 DSH 插件系统的安装方式,可参考 GitHub 页面)。
配置¶
插件配置不直接写入 settings.yaml,而是写入 DSH 的 Profile Patch 中。配置文件路径为:
~/.dsh/profiles/<profile>/cordis.patch.yml
配置项包括:
* repo:私有仓库地址(格式为 owner/name)。若为空,默认为 dsh-backup-<login>。
* machineDescription:机器描述,用于在跨机器恢复时识别。
* rememberPassphrase:是否在 macOS Keychain 中记住密码。
也可以通过交互式技能 /vault config 或 dsh-vault-config 来引导完成配置。
常用命令¶
以下是 /vault 命令的典型用法:
- 列出备份:
查看当前 Vault 中的所有机器快照信息。
/vault list
- 创建备份:
对当前配置进行加密并推送到私有仓库。
/vault backup [passphrase]
*注意:首次备份会自动创建私有仓库。*
- 恢复配置:
从仓库拉取并恢复指定机器的配置。
/vault restore [machine] [--yes] [passphrase]
*如果不指定 `machine`,则仅列出可用快照。*
- 管理设置:
修改仓库地址、机器描述或开关密码记忆功能。
/vault set repo <owner/name>
/vault set machine-desc <desc>
/vault set remember-passphrase on|off
备份范围与限制¶
备份内容¶
插件会将以下内容打包进快照:
* settings.yaml 及其导入记录。
* 各 Profile 的 Manifest 四件套(package.json, pnpm-lock.yaml, pnpm-workspace.yaml, cordis.patch.yml)。
* .credentials.yaml(API 密钥)。
* models-store.json 等。
恢复要求¶
执行恢复操作前,确保目标机器上:
1. 已安装 DSH CLI。
2. 已安装 pnpm 并在 PATH 中。
已知限制¶
- 单快照策略:每个机器仅保留最新的一个快照(旧快照会被覆盖)。
- 绝对路径依赖:Profile manifest 中使用
file:绝对路径引用的依赖,在另一台机器上无效,恢复时会发出警告。 - 不迁移项:
.env文件、storages/目录(机器绝对路径)以及会话历史不进行迁移。 - 不可恢复性:如果丢失密码,加密的快照将无法恢复。
生态背景¶
DSH 的设计理念是“一切皆插件”。该插件由社区开发者 fan56 维护,许可证为 MIT。它不依赖 DeepSeek 官方的应用商店,而是通过插件系统直接管理本地环境。