MovieMaker93/dsh-plugin-safe-upgrade ↗★ 0
dsh-plugin-safe-upgrade
提供配置历史记录、安全升级守护与自动回滚功能 适合需要保障 DSH 框架和插件升级稳定性、防止配置损坏的运维人员。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:MovieMaker93/dsh-plugin-safe-upgrade說明文件
閱讀完整 README ↗Configuration
Everything is auto-detected: the unit from the process cgroup, the install
directory from the running dsh binary, the health URL from --host/--port,
and the profiles from $DSH_HOME/profiles. To override, add a row to your
profile's cordis.patch.yml. A patch replaces the whole config, so list every
key you want to keep.
- id: safe-upgrade
config:
channel: latest # dist-tag that /upgrade offers first
failOnWarnings: false
telegram: # optional; credentials are read at send time
envFile: /etc/dsh/alerts.env
tokenVar: TELEGRAM_BOT_TOKEN
chatVar: TELEGRAM_CHAT_ID
| Key | Default | Meaning |
|---|---|---|
unit / scope | detected | systemd unit and system/user scope |
installDir | detected | folder whose node_modules holds @deepseek-ai/dsh |
profiles | all | profiles validated with --dump-config |
healthUrl | from --port | any HTTP answer except 5xx counts as up (401 is normal) |
healthTimeoutMs | 150000 | how long a new boot may take |
bootTimeoutMs | 120000 | how long plugins may stay loading before the boot counts as unhealthy |
idleWaitMs | 300000 | how long an upgrade or rollback waits for running turns before it gives up without stopping dsh |
channel | latest | dist-tag offered first; tags behind it are hidden |
checkIntervalHours | 6 | npm dist-tag check interval |
keepPrev | 2 | previous install copies kept for rollback |
keepGoodTags | 10 | good-* tags kept |
snapshots | true | auto-commit config edits |
failOnWarnings | false | treat warnings as failures (dry runs, upgrades, manual rollbacks) |
uiCheck | auto | auto: roll back on dsh's failure screen, warn if the check can't run; true: also roll back when it can't run; false: skip |
chromium | detected | path to a Chromium/Chrome binary for the UI check |
uiTimeoutMs | 45000 | how long the UI may take to show the composer |
telegram | off | {envFile?, tokenVar?, chatVar?} |