dsh-as-service
Running DSH as a service on the background
- Stars
- 0
- Language
- Shell
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-web systemd user service
Run the DeepSeek Harness Web UI (dsh web) as a systemd user service, so it
starts on login, restarts on failure, and logs to the journal.
Requirements
dshon yourPATH(e.g.npm install -g @deepseek-ai/dsh)systemdwith user services (standard on most Linux distros)
Install
./install.sh
The script:
- Resolves your real
dshpath withcommand -v dsh(with fallbacks to common install locations such as~/.npm-global/bin/dshwhen it is not on the current PATH, e.g. in non-login shells). - Renders
dsh-web.servicewith that path and writes it to~/.config/systemd/user/dsh-web.service. - Runs
systemctl --user daemon-reloadandsystemctl --user enable --now dsh-web.
You can then manage it like any user service:
systemctl --user status dsh-web
systemctl --user restart dsh-web
journalctl --user -u dsh-web -f
Keeping it running after logout
User services normally stop when you log out. To keep dsh-web running in the
background:
loginctl enable-linger "$USER"
Manual install (no script)
Copy dsh-web.service to ~/.config/systemd/user/, then replace the
ExecStart=/path/to/dsh web line with the output of command -v dsh, e.g.:
ExecStart=/home/you/.npm-global/bin/dsh web
Then:
systemctl --user daemon-reload
systemctl --user enable --now dsh-web
Environment variables
If the web profile needs env vars (API keys, etc.), create a file and uncomment
the EnvironmentFile= line in the unit:
mkdir -p ~/.config/dsh
cat > ~/.config/dsh/env <<'EOF'
SOME_API_KEY=...
EOF
systemctl --user daemon-reload
systemctl --user restart dsh-web
Uninstall
./install.sh --uninstall