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 id qr-connect above the sidebar Settings button.
  • 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 0 disables auto-refresh.
  • Clicking the QR code copies the link; the public QR has an info tooltip.
  • Provides a QR connect card under Settings → Plugins for 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.

  1. Adjust via the QR connect card in Settings → Plugins:
port
sessionDays
refreshSeconds
  1. You can also modify cordis.patch.yml and 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, and webServer services.
  • The Settings → Plugins card needs the settings service; 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.

The community directory page is an independent site with no official affiliation to DeepSeek / Huanfang. Do not treat it as an official app store.