dsh-vault: 私有 GitHub 倉庫中的加密配置備份

前言

在 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 命令的典型用法:

  1. 列出備份:
    查看當前 Vault 中的所有機器快照信息。
    /vault list
  1. 創建備份:
    對當前配置進行加密並推送到私有倉庫。
    /vault backup [passphrase]
*注意:首次備份會自動創建私有倉庫。*
  1. 恢復配置:
    從倉庫拉取並恢復指定機器的配置。
    /vault restore [machine] [--yes] [passphrase]
*如果不指定 `machine`,則僅列出可用快照。*
  1. 管理設置:
    修改倉庫地址、機器描述或開關密碼記憶功能。
    /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 官方的應用商店,而是通過插件系統直接管理本地環境。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜