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
- Language
- JavaScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
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-healthevery 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
![]() | ![]() | ![]() |
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-corsPOSTs at/restart-dshare 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.


