Linjiangxian0203/dsh-remote-tunnel
Remote host tunnel manager: runs dsh web on a remote Linux server (systemd supervision, no root needed) behind an auto-reconnecting SSH tunnel; allocates and registers remote ports on the server, multi-user safe, with an audit view.
Remote Host Tunnel Manager: automates the 'local browser → dsh web on a remote Linux server' link. Each user gets a dedicated remote port (double-checked via real occupancy + registry before allocation, safe under concurrency), allocations recorded in a server registry (/etc/dsh-ports.tsv with per-user fallback), auto-reconnecting SSH tunnel with backoff respawn, heartbeat-fresh registry, local port shifting when occupied, and CLI lifecycle: hosts / hosts add / check (readiness diagnostics) / up --open / down / logs / audit. Sessions and files live on the server; the local machine only keeps a tunnel.
Install
dsh plugin --profile remote add dsh-remote-tunnelnpm package dsh-remote-tunnel 0.1.1 (registry-verified 2026-08-26). dsh plugin --profile remote add dsh-remote-tunnel (dedicated CLI profile) and optionally dsh plugin --profile web add dsh-remote-tunnel to get Settings → Plugins + /remote slash commands (restart dsh web). Remote server needs Node ≥ 22.19, dsh, systemd, key-based ssh login — one command initializes it: ssh <host> 'sh -s' < scripts/bootstrap-remote.sh. All config in $DSH_HOME/remote-tunnel/config.yaml.
Compatibility
DeepSeek Harness remote profile (local: Windows/macOS/Linux with built-in OpenSSH; remote: Linux + Node ≥ 22.19 + dsh + systemd).
Details
- Repo: Linjiangxian0203/dsh-remote-tunnel
- Category: Development & Runtime
- Stars: 5
- Version: npm dsh-remote-tunnel 0.1.1 (registry-verified 2026-08-26)
- Last push: 2026-08-20
- First seen: 2026-08-15
Recent updates
v0.1.1: remote port allocation registry; systemd supervision; resilient SSH tunnel; local URL output; hosts/check/up/down/logs/audit CLI.
FAQ
- What runs on the remote server?
- A dsh web instance plus systemd units and a port registry; the one-line bootstrap (ssh <host> 'sh -s' < scripts/bootstrap-remote.sh) installs everything. No root needed — user-level systemd is enough.
- How are ports allocated safely?
- Each user gets a dedicated port from the 3080–3119 range, double-checked on the server (real occupancy + registry) before allocation; audit compares the registry against real occupancy at any time.
- What happens when the network drops?
- The tunnel auto-reconnects with backoff respawn, and heartbeats keep the registry fresh; occupied local ports shift automatically with the occupying process reported.
Alternatives
Blank-not-black/dsh-Remote · flymysql/dsh-remote · juanwang-buaa/dsh-full-remote