Introduction¶
The philosophy of DSH is “everything is a plugin”, and web capabilities can also be accessed via plugins. dsh-plugin-qr-connect is a DSH Web plugin: it adds a QR-code button above the Settings button in the sidebar. Upon clicking, it displays two QR codes: one for the local network and one for the public internet. It uses an authentication reverse proxy to allow the scanning device to open the DSH Web UI.
It solves a specific problem: when a mobile device or other device needs to access the locally running DSH Web UI, it can enter via scanning instead of directly exposing an unauthenticated port on the network. Below is an introduction to its features, installation method, and notes.
What is it¶
dsh-plugin-qr-connect is a DSH Web plugin maintained by mervyn-teo under the MIT license.
It includes a host half and a browser half as a persistent bundle plugin, loading it on every startup. After running, it starts an authentication reverse proxy subprocess that verifies the auth secret, issues a session cookie, and forwards to the loopback Web UI; WebSocket upgrades are also supported, allowing mobile devices to see live updates.
Core Features¶
The following lists the capabilities provided by the plugin:
- Adds a full-width QR-code button with
idqr-connectabove the sidebarSettingsbutton. - Opens a panel containing two QR codes: one for the local network and one for the public internet, with the links containing the auth secret.
- Runs an authentication reverse proxy subprocess that verifies the secret, issues session cookies, and forwards to the loopback Web UI.
- Supports secret auto-rotation and QR refresh (default 30 seconds); setting it to
0disables auto-refresh. - Clicking the QR code copies the link; the public QR has an info tooltip.
- Provides a QR connect card under
Settings → Pluginsfor configuring the proxy port, session length, and refresh interval. - Provides English and Chinese UI via the DSH locale service.
Installation and Enablement¶
First, install the plugin:
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect
After installation, restart dsh web because host bundles are loaded at startup.
dsh web
Typical Usage¶
After installing and restarting, behavior can be adjusted from the interface or configuration file.
- Adjust via the QR connect card in
Settings → Plugins:
port
sessionDays
refreshSeconds
- You can also modify
cordis.patch.ymland restart:
cordis.patch.yml
Configurable items include:
port
sessionDays
refreshSeconds
publicHost
publicHost can be host, host:port, or a full https:// origin; leave it blank to auto-detect.
You need to confirm network reachability before use:
- The scanning device must be able to access the proxy port.
- When using the public QR, internet reachability is also required, possibly needing port forwarding.
- Public IP lookup requires the DSH host to be able to access
https://api.ipify.org.
Use Cases and Considerations¶
This plugin is suitable as a convenience tool within a trusted network and is not suitable as a hardened remote access layer.
Pay special attention: the reverse proxy exposes the full agent shell to anyone who can reach that port, protected only by a 30-second secret and session cookie. Therefore, it is recommended to use a shorter session length and only use it on networks you trust.
Runtime Requirements¶
- DSH needs to mount the
subprocess,fs, andwebServerservices. - The
Settings → Pluginscard needs thesettingsservice; if this service is absent, the card will be hidden, and editing will only take effect at runtime. - The host half supports Windows, macOS, and Linux.
Before installation, it is recommended to check the source code and license; this plugin runs with the current dsh process permissions. The license is MIT.
Related Links¶
- Community directory page: https://www.skillhub.cn/plugins/mervyn-teo/dsh-plugin-qr-connect
- GitHub: https://github.com/mervyn-teo/dsh-plugin-qr-connect
The community directory page is an independent site with no official affiliation to DeepSeek / Huanfang. Do not treat it as an official app store.