返回目录
部署运维 插件

dsh-web-restart

bigfurma-bot/dsh-web-restart

One-click restart for DeepSeek Harness Web UI — arm-to-confirm button pinned to the Settings › General corner, live status dot, detached Linux restarter. Linux port of 1123762794/dsh-web-restart

Stars
0
Forks
0
Issues
0
更新
27 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:bigfurma-bot/dsh-web-restart

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-web-restart

One-click restart for the DeepSeek Harness Web UI — a small Restart DSH control pinned to the bottom-right corner of Settings ▸ General, with an arm-to-confirm guard and a live liveness dot.

Linux port of 1123762794/dsh-web-restart, reworked for the web-profile plugin layer.

Features

  • Pinned corner placement — lives inside the Settings panel (last item of General), absolutely positioned to the panel's bottom-right corner; stays put even when the settings list scrolls. Nothing in the sidebar, no misclicks.
  • Arm-to-confirm — first click only arms the button (red, "Click again to confirm · 5s"); a deliberate second click fires. Auto-disarms after 5 seconds, so it can never go off by accident or stay armed forever.
  • Liveness dot — polls GET /dsh-health every 5 s: green = harness online, red = offline/restarting.
  • Survives its own restart — installed as a bundle-layer profile plugin, so it comes back with the harness it just restarted.

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

How it works

Piece File What it does
Host host.js Registers GET /dsh-health and POST /restart-dsh on the webServer; responds before restarting so the UI can render state
Restarter restart-dsh-web.sh Two phases in one file: outer re-execs itself into a fresh setsid session and exits (nothing for executor teardown to kill); inner traps TERM/INT/HUP, kills the source-checkout instance, waits for port 3080 to close, relaunches pnpm dsh web detached
Client client.js Factory-form bundle registering the Settings ▸ General item

Safety notes

  • Origin guard: cross-site no-cors POSTs at /restart-dsh are rejected with 403 (drive-by restart-DoS protection; upstream had none).
  • No black boxes: the actual restart logic is fully readable in-repo (upstream delegated to an external PowerShell script outside the repository).
  • No dependencies, no telemetry, no network egress — everything talks to localhost only.
  • Single-click-no-confirm was upstream's default; this fork deliberately requires two clicks within 5 s.

Install (DSH web profile)

git clone https://github.com/bigfurma-bot/dsh-web-restart.git /path/to/dsh-web-restart

Add the dependency (link: so future edits need no reinstall):

// ~/.dsh/profiles/web/package.json
{
  "dependencies": {
    "@deepseek-ai/dsh-web-restart": "link:/path/to/dsh-web-restart"
  }
}

Add the loader row:

# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
    - id: web-restart
      name: '@deepseek-ai/dsh-web-restart'

Then:

cd ~/.dsh/profiles/web && pnpm install

And restart dsh web once manually — after that, the button in Settings ▸ General handles every restart itself (~15–20 s downtime; sessions persist on disk).

Configuration

Paths are constants at the top of each file — adjust to your machine:

  • host.js: SCRIPT (restarter path), LOG (log file)
  • restart-dsh-web.sh: LOG, kill patterns, and the checkout dir + launch command at the bottom (default: cd /home/prime/deepseek-harness && pnpm dsh web)

Requirements: Linux, DSH web profile (bundle-layer plugins), pnpm on PATH.

License

MIT — see LICENSE.

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类部署运维
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: restart。