Back to home@a903067276-rgb

dsh-backup

Automated backups of DSH sessions, config and custom directories — scheduled or manual, packed as tgz with rotation

Stars
0
Language
JavaScript
Created
Aug 20, 2026
Updated
Aug 20, 2026
GitHub repo

Introduction

dsh-backup 📦

English | 简体中文

License: MIT

Unofficial project: independently developed and maintained by a community member, not an official DeepSeek product.

Automated backups of your DSH data — sessions, profile config and any custom directories — packed into .zip archives with scheduled or manual runs and automatic rotation.

Screenshot

dsh-backup settings

ActionEffect
Scheduled backupPacks DSH data on a timer (default every 6 h)
Manual backupOne-click "Back up now" from the Settings page
Custom directoriesAdd extra paths (e.g. your memory library) per line
RotationKeeps only the latest N archives (default 10), old ones are deleted
RestoreManual only — extract an archive back to its original location (steps in docs/install.md)

What is backed up by default: ~/.dsh/sessions (conversation history), ~/.dsh/profiles (config, excluding node_modules), ~/.dsh/AGENTS.md (global conventions). Everything else — like your memory library — goes into the custom directory list.

Install

dsh plugin --profile web add "github:a903067276-rgb/dsh-backup#main"

Then restart dsh web. Manual fallback: docs/install.md.

Usage

Open Settings → Backup:

  • Status row: last backup / next scheduled run / backup folder
  • Back up now button
  • Backup list: name, size, time, delete
  • Settings: backup folder, schedule toggle + interval (hours), retention count, custom directories (one absolute path per line)

Platform support

PlatformStatus
macOS✅ tested
Linux✅ expected (pure Node, no system zip required)
Windows✅ expected (pure Node, no system zip required)

Requirements

  • DSH web (any recent version)
  • Node.js ≥ 16.7 (bundled with DSH)

How it works

  • Host: a zero-dependency zip packer (lib/zip.js, pure Node streams — no system zip, no shell, immune to the session sandbox), a timer-driven schedule, and a /api/dsh-backup/* route for the Settings page.
  • Client: one Settings section (settings.section, "备份") that lists backups and edits configuration; saving writes the config back into the profile's cordis.patch.yml (takes effect after restart).

Notes

  • Restore is intentionally manual: stop DSH, extract the archive over the original paths, and keep the current data around until you are sure the restore is correct. The plugin never overwrites anything by itself.
  • The backup folder defaults to ~/Documents/DSH/backup and can be changed in Settings.
  • Only backups the plugin owns (dsh-backup-*.zip) are listed/deleted — other files in the folder are left alone.

License

MIT