Skip to content
dsh.fish
Bundle

dsh-ops-console

DSH WebUI 控制台:一键检查更新、一键执行更新(核心 npm + 插件 pnpm)、一键重启。

Source
DonnieTangzhili
stars
3 stars
License
MIT
Updated
Updated 9 days ago

Readme

# DSH 更新与重启控制台

[![GitHub release](https://img.shields.io/github/v/release/DonnieTangzhili/dsh-ops-console)](https://github.com/DonnieTangzhili/dsh-ops-console/releases)
[![License](https://img.shields.io/github/license/DonnieTangzhili/dsh-ops-console)](LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/DonnieTangzhili/dsh-ops-console)](https://github.com/DonnieTangzhili/dsh-ops-console/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/DonnieTangzhili/dsh-ops-console)](https://github.com/DonnieTangzhili/dsh-ops-console/commits/main)

> A DSH WebUI plugin: one-click **update check**, **apply updates during restart**, and a **reliable restart** button — all from the Settings page.
>
> DSH WebUI 插件:在「设置」页一键**检查更新**、**更新并自动重启**、**重启 DSH**。

给不想麻烦去使用带重启的桌面版的开发者使用,在纯dsh web上也可以点击重启
无外部依赖、无需构建,与 DSH 版本无关(rc.6 / rc.7 / rc.8 均可)。

---

## ✨ 功能

| 按钮 | 说明 |
| --- | --- |
| **检查更新** | 对比核心包(`@deepseek-ai/dsh`、`dsh-web-app`、`dsh-base`)与已装插件的已安装/最新版本,自动识别预发布标签(如 `(next)`) |
| **一键更新** | 生成更新计划并**自动重启**;更新命令(`npm install -g` + `pnpm`)在旧进程退出后执行——**不会在服务运行时替换文件,页面不会被弄挂** |
| **重启 DSH** | 按原始启动命令(含 `--port` 等参数)精确重放并重新拉起,页面自动重连 |
| **停止 DSH** | 终止进程**且不自动重启**;如需恢复,手动运行 `dsh web` |

> 可配置项(在 profile 的 `cordis.patch.yml` 中通过 `config` 覆盖):`profile`(目标 profile 名,默认从启动命令自动推导)、`registries`(检查更新使用的 npm registry 列表)。

## 📋 要求

- 已安装 DSH WebUI(`dsh web` 能启动)
- `dsh`、`pnpm` 在 PATH 中(通过 npm 全局安装 dsh 时默认满足)

## 🚀 安装

### 方式一:GitHub 安装(推荐)

```bash
dsh plugin --profile web add github:DonnieTangzhili/dsh-ops-console
```

然后完全退出 DSH 并重新运行 `dsh web`,打开 WebUI → 左下角 **设置** → 侧边出现 **「更新与重启」**。

### 方式二:下载 ZIP 双击安装

1. 从 [Releases](https://github.com/DonnieTangzhili/dsh-ops-console/releases) 下载 zip 并解压
2. **先退出 DSH**
3. 双击 `install.cmd`
4. 重新运行 `dsh web`

### 方式三:手动安装

```bash
# 1. 把 dsh-ops-console 文件夹放到 ~/.dsh/plugins/ 下
# 2. 注册到 profile
dsh plugin --profile web add "link:%USERPROFILE%\.dsh\plugins\dsh-ops-console"
# 3. 重启 DSH
```

## 🔧 使用

打开 WebUI → 左下角 **设置** → **「更新与重启」** 页面:

1. 点 **检查更新** 查看所有相关包的版本对比
2. 有更新时点 **一键更新**——页面提示已安排,随后自动重启,更新在重启过程中完成,页面自动重连
3. 任何时候点 **重启 DSH** 快速重启

## 🗑️ 卸载

```bash
dsh plugin --profile web remove dsh-ops-console
```

## 🔍 故障排查

| 现象 | 处理 |
| --- | --- |
| 安装后设置里没有「更新与重启」 | 确认已重启 DSH;或到 设置 → 插件 检查 `dsh-ops-console` 是否加载 |
| 一键更新 / 重启后页面没回来 | 查看 `%TEMP%\dsh-ops-restart-*.log` |
| 按钮失效的兜底 | 终端运行 `node tools\dsh-restart-now.js`(杀掉 8899 端口的 DSH 并用 `dsh web` 重新拉起) |

## 🔄 更新插件本身

```bash
dsh plugin --profile web update dsh-ops-console
```
(GitHub 安装会拉到仓库最新提交,重启 DSH 生效。)

## 🛠️ 开发

- 无构建步骤:`lib/index.js`(Host)+ `client/client.js`(Client bundle)都是纯 JS
- 修改后 `git push`,使用者 `dsh plugin --profile web update dsh-ops-console` 即可
- 详情见 [CHANGELOG.md](CHANGELOG.md)

## 📄 License

[MIT](LICENSE)

Install

dsh plugin --profile web add github:DonnieTangzhili/dsh-ops-console

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source