dsh-webdav-sync
Manifest validWebDAV sync for DSH config and plugin manifest, with ignore rules and inspection panel
WebDAV 同步 · dsh-webdav-sync
用 WebDAV 在多台设备之间同步 DSH 的配置与插件清单,并在「设置 → WebDAV 同步」里提供检查面板:同步计划、逐文件原因、忽略规则和路径检查器。
安装
从 GitHub 安装(纯 JavaScript,无需构建):
plugin_manager install_bundle
target: github:2315137135/dsh-webdav-sync
也可以使用 git+https://github.com/2315137135/dsh-webdav-sync.git,或克隆到本地后用绝对目录安装。安装后刷新 Harness 页面。
仓库:https://github.com/2315137135/dsh-webdav-sync
同步什么
默认只同步“配置与清单”,不碰设备本地数据:
| 范围 | 路径 |
|---|---|
| 主设置 | settings.yaml |
| 指令 | AGENTS.md |
| Profile | profiles/*/cordis.patch.yml、cordis.yml、package.json、pnpm-lock.yaml、pnpm-workspace.yaml |
| Agent 预设 | .agent-presets/** |
| 额外范围 | 面板「设置 → 额外同步范围」,每行一个 glob |
依赖目录、会话、附件和凭证默认不同步。插件自身建议从 GitHub 安装;Profile 的 package.json 与锁文件会把 git 依赖带到其他设备,目标设备执行一次插件安装或 pnpm install 即可。link: / file: 安装的本地插件不会随同步迁移,面板会单独告警。
默认忽略
sessions/、storages/、attachments/、dsh-runtimes/、webdav-sync/**/node_modules/、**/.git/、**/.cache/profiles/*/.dsh-market/、profiles/*/.plugin-manager/logs/.credentials.yaml(可在面板开启)、.env、.anonymous-user-id、settings.yaml.imported***/*.log、**/*.tmp、系统文件
规则按顺序匹配,后出现的优先;! 前缀可重新包含。所有规则和每条命中原因都能在面板里看到,路径检查器会回答“这个路径为什么同步/为什么忽略”。
使用
- 打开「设置 → WebDAV 同步 → 设置」,填写服务器地址、用户名、密码和远程目录,点「保存并测试」。
- 「概览 → 检查差异」查看上传/下载/冲突数量。3. 「立即同步」按当前方向与策略执行;冲突策略可选较新优先、本地优先、远程优先或跳过。
- 「文件」页按状态筛选,查看每个文件的原因;对误同步的文件可一键追加忽略规则。
- 「忽略规则」页调整范围与规则,路径检查器可实时验证。
同步方向:
two-way:双向,默认push:只上传pull:只下载
删除默认“保留另一侧文件”,不会因为某台设备删了文件就把其他设备上的删掉;需要在面板中显式切换为“同步删除”。即使切换为同步删除,一次计划中超过 3 个本地删除也会被拦截并保留,避免远程异常导致本地被批量清空。
冲突判定基于每个设备上次成功同步的基线(本地状态文件);首次在新设备上同步时,如果远程存在基线清单,会用它初始化比较,避免把所有文件误判为冲突。
凭证与安全
- 密码保存在
$DSH_HOME/webdav-sync/config.json,文件权限0600;留空表示沿用已保存的密码。 - 也可以用环境变量
DSH_WEBDAV_PASSWORD提供密码,配置文件中不落盘。 - 传输使用系统 TLS 校验;自签证书需要在面板中显式开启“忽略 TLS 证书校验”。
- 只支持 Basic Auth 和标准 WebDAV 方法(PROPFIND/GET/PUT/DELETE/MKCOL)。坚果云、Nextcloud、ownCloud、群晖等标准实现均可。
自动同步与工具
- 自动同步间隔设为大于 0 的分钟数即可;修改后立即生效,
0关闭。 - Agent 工具:
webdav_sync_status、webdav_sync_plan、webdav_sync_run。
开发与测试
node --check index.js
node --check client.js
node test/ignore.test.js
node test/plan.test.js
node test/sync.test.js
node test/client-render.test.js
node test/client-i18n.test.js
node test/live-sync.mjs # 需要 DSH 正在运行,使用临时本地 WebDAV 服务
node --test test/ 在某些受限环境会因无法创建子进程而失败;直接运行单个测试文件即可。
已知边界
- 逐文件同步,没有跨文件事务;中断后再次同步会按基线补齐。
- 远程身份优先使用 ETag;服务器不返回 ETag 时退化为大小 + 修改时间。
- 单文件默认上限 2 MB,可在面板调整;超过上限的文件会被跳过并在「文件」页标出。
- 不处理文件名大小写冲突与符号链接。
Comments
Loading…
Similar plugins
by YerenChina
把 DSH 的记忆文件双向同步到任意 WebDAV 服务器(带设置界面)
★ 0
MIT
JavaScript
Sep 19, 2026
dsh plugin --profile web add dsh-memory-webdav-syncby FiretrUCK666
DSH Web GUI 的任务看板插件:侧边栏入口 + 五列看板,任务经 DSH 会话真实执行,host 端持久化并跨设备实时同步。Task board plugin for the DeepSeek Harness web GUI.
★ 3
↓ 1.5k/wk
MIT
TypeScript
Nov 10, 2026
dsh plugin --profile web add @firetruck666/dsh-task-boardby liujianqiao701
DSH(DeepSeek Harness)插件兼容性体检:预警下次启动会被拒绝加载的插件,并在页面上按键一键隔离/卸载修掉它(改前自动备份、失败自动回滚)。Plugin compatibility vet for DeepSeek Harness.
★ 0
MIT
JavaScript
Sep 30, 2026
dsh plugin --profile web add dsh-compat-vetby LX2000WASD
在 Web UI 中一键管理 DeepSeek Harness (DSH) 插件:查看、实时启停、安装/卸载、更新检测、健康检查(依赖/冲突/兼容性分析)、环境管理、插件市场。bundle 与非 bundle 插件全覆盖
★ 67
↓ 104/wk
MIT
TypeScript
Aug 20, 2026
dsh plugin --profile web add dsh-web-plugin-managerby MutaLucem
DeepSeek Harness (DSH) 插件整合中心:动态发现、打标分类、重叠/兼容检测、一键启停与失效检测
★ 11
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-plugin-integrationby Anyway-one
Multi-provider balance monitor with low-balance alerts and trend history for the dsh web GUI
★ 0
JavaScript
Aug 26, 2026
dsh plugin --profile web add dsh-balance