DSH Auto Maintenance System 自动维护系统
🔧 为 DeepSeek Harness (DSH) 打造的一体化自动维护插件:启动自检、诊断、自动修复、配置备份、智能启动检测,让 DSH 升级无忧、开机即稳。
📌 目录
😣 解决的痛点
痛点 1:升级后 DSH 启动失败
每次升级或更新插件后,第二天回来 DSH 就启动失败,配置文件可能被新版本改动、目录结构变化、依赖不兼容…… 只能手动排查,甚至要找外部工具来修复。
本插件解决方案:插件随 DSH 启动时自动执行一次诊断,配置异常第一时间记录并提示;再配合 fix 命令自动补齐缺失目录,升级后也能快速恢复正常。
痛点 2:配置损坏无感知
配置文件(settings.yaml、.credentials.yaml 等)可能因意外写入、磁盘问题、半截更新而损坏,等你发现时已经晚了。
本插件解决方案:backup 命令一键备份全部关键配置与数据,保留最近 N 份并自动轮转;任何损坏都能从备份恢复。
痛点 3:启动冲突与端口占用
多个自启动方式同时存在,或 DSH 已运行又重复启动,导致端口冲突(如 3080 被占用)、资源浪费。
本插件解决方案:智能启动检测 —— 启动前探测端口是否已被占用,已运行则直接复用,避免重复拉起进程。
痛点 4:没有备份意识
用户往往不记得手动备份,一旦配置丢失或误删,很难恢复原样。
本插件解决方案:提供 CLI 一键备份 + 插件内可配置周期自动备份,无需每次手动操作,保留多个历史版本。
✨ 核心功能
1️⃣ 启动自检 🔍
插件随 DSH 启动时自动执行一次环境诊断(Cordis 插件入口):
- DSH 关键目录完整性检查(plugins / skills / sessions / logs / backups)
- 配置文件存在性与内容校验(settings.yaml / .credentials.yaml)
- API 密钥键名核对(只检查键是否存在,不读取密钥内容)
- 插件目录非空检查
- 结果通过插件日志输出,健康 / 异常一目了然
2️⃣ 诊断命令 ⚙️
diagnosis 命令输出结构化 JSON 报告,适合脚本化处理与二次集成。
3️⃣ 自动修复 🛠️
fix 命令自动补齐缺失的关键目录,--dry-run 先预览再执行,避免误操作。
4️⃣ 一键备份 💾
backup 命令将关键数据(配置文件、技能、插件、cordis.patch.yml)打包到 ~/.dsh/backups/,自动轮转保留最近 N 份(默认 10)。
5️⃣ 智能启动检测 🚀
isPortOpen 能力探测 DSH Web 端口(默认 3080)是否已监听,供智能启动 / 冲突检测使用。
6️⃣ 状态汇总 📊
status 命令一键输出:DSH 版本、Web 是否运行、诊断结果、备份数量与最新备份,运维体检只需一条命令。
🚀 安装
方法 1:通过 DSH 插件系统(推荐)
dsh plugin add github:dong3434/dsh-auto-maintenance
方法 2:手动克隆
cd ~/.dsh/plugins
git clone https://github.com/dong3434/dsh-auto-maintenance.git
cd dsh-auto-maintenance
方法 3:本地开发安装
dsh plugin add local:~/.dsh/plugins/dsh-auto-maintenance
系统要求
- Windows / macOS / Linux
- Node.js ≥ 18
- DSH ≥ 0.1.0
📖 使用方法
命令一览
| 命令 | 说明 |
|---|---|
dsh-auto-maintenance diagnosis |
运行完整诊断 |
dsh-auto-maintenance fix [--dry-run] |
自动修复常见问题 |
dsh-auto-maintenance backup [--keep N] |
备份关键数据 |
dsh-auto-maintenance list-backups |
列出可用备份 |
dsh-auto-maintenance status |
汇总状态 |
dsh-auto-maintenance help |
显示帮助 |
1. 运行完整诊断
dsh-auto-maintenance diagnosis
2. 自动修复(先预览)
dsh-auto-maintenance fix --dry-run
# 确认无误后执行
dsh-auto-maintenance fix
3. 备份配置
dsh-auto-maintenance backup
# 自定义保留份数
dsh-auto-maintenance backup --keep 20
4. 查看可用备份
dsh-auto-maintenance list-backups
5. 一键状态体检
dsh-auto-maintenance status
⚙️ 配置说明
插件通过 DSH 的 cordis.patch.yml 挂载,配置项写在插件条目下(安装后可在 DSH 配置中调整):
- id: auto-maintenance
name: 'dsh-auto-maintenance'
config:
home: ~/.dsh # 可选:DSH 目录覆盖
backupIntervalHours: 6 # 可选:周期自动备份间隔(小时),>0 才启用
| 配置项 | 默认 | 说明 |
|---|---|---|
home |
$DSH_HOME 或 ~/.dsh |
DSH 主目录 |
backupIntervalHours |
关闭 | 周期自动备份间隔(小时),配置后插件自动定时备份 |
📁 文件结构
dsh-auto-maintenance/
├── package.json # 插件配置(含 dsh.bundle manifest)
├── cordis.patch.yml # DSH Cordis 挂载声明
├── README.md # 说明文档(本文件)
├── LICENSE # MIT 许可证
├── bin/
│ └── dsh-auto-maintenance.js # CLI 入口
└── lib/
├── index.js # Cordis 插件入口(启动自检 + 服务注册)
└── core.js # 核心引擎(诊断/修复/备份/智能启动检测)
📊 日志与报告
| 位置 | 说明 |
|---|---|
| DSH 插件日志 | 启动自检与周期备份结果(ctx.logger) |
~/.dsh/backups/dsh-backup-<时间戳>/ |
备份文件 + manifest.json 清单 |
🔧 故障排查
Q1: 诊断发现问题怎么办
运行 dsh-auto-maintenance fix 自动补齐缺失目录;配置文件异常请从备份恢复。
Q2: 如何从备份恢复
dsh-auto-maintenance list-backups # 查看可用备份
# 手动将对应备份目录内容复制回 ~/.dsh 对应位置
Q3: 想开启周期自动备份
在插件配置中加入 backupIntervalHours: 6 后重启 DSH。
Q4: 如何反馈问题
在 GitHub 仓库提交 Issue。
🤝 贡献指南
欢迎任何形式的贡献!包括但不限于:
- 🐛 提交 Bug 报告
- 💡 提出新功能建议
- 📝 完善文档
- 🔧 提交代码(PR)
贡献步骤:
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/xxx - 提交修改:
git commit -m "feat: xxx" - 推送分支:
git push origin feature/xxx - 提交 Pull Request
📄 许可证
MIT License © 2026 dong3434
让 DSH 始终保持最佳状态,升级无忧! 🚀
💡 觉得好用就点个 ⭐ Star 吧!
No comments yet. Be the first to write one.