DSH’s Web profile runs locally by default. To control the Web UI from another device or access it over the public internet, complex port-forwarding configurations are usually required. This plugin adds a “Remote Access” settings section to the DSH Web profile, allowing you to start LAN access or an frpc tunnel on demand and generate authenticated links for control from other devices.

The plugin name is xiaosenho/dsh-plugin-remote-access, created by xiaosenho and released under the MIT License.

Installation

Run the following command in the terminal to install the plugin into the DSH Web profile:

dsh plugin --profile web add @xiaosenho/dsh-plugin-remote-access

When installing from local code or a Git repository, you may first need to allow builds in the Web profile’s pnpm-workspace.yaml; otherwise, pnpm may refuse to execute them.

Core Features

This plugin primarily provides the following capabilities:

  • Add Remote Access settings: Adds a remote access configuration entry to the Web profile settings.
  • Start connections on demand: Supports starting LAN access or an frpc tunnel, allowing you to select the connection method as needed.
  • Authenticated links: Generates links with tokens for accessing the Web UI from another device.
  • Browser compatibility: Injects a crypto.randomUUID() compatibility method on the browser side, ensuring RPC calls work correctly in plain HTTP environments.

LAN Access Configuration

The steps for accessing the Web UI from a local area network are as follows:

  1. Start DSH using the dsh --profile web command.
  2. Open the settings menu and find the “Remote Access” option.
  3. Select “LAN” mode, specify the local listening port, save the settings, and enable the connection.
  4. Copy the generated link and open it on another device connected to the same local network.

frpc Tunnel Configuration

To access the interface over the public internet, configure an frpc tunnel. Before use, ensure the host has an frpc executable compatible with the server’s frps version.

  1. In the “Remote Access” settings, enter the absolute path to frpc or locate the program using a file picker.
  2. Select “Tunnel” mode.
  3. Provide the following configuration details:
    • frpc client path: The path to the local frpc executable.
    • Server address: The control address or IP of frps.
    • Server port: The bindPort for frps (usually 7000).
    • server.token: Must match the server’s [auth].token.
    • Public endpoint: Select a domain name or an IP + port.
  4. Open the Web UI on another device using the generated link.

Security and Notes

  • Access control: The plugin generates a token as the access credential. Changing the configuration revokes old access links. Treat generated links as bearer credentials and do not expose them in chats, tickets, or logs.
  • Server security: The main web server remains bound to the loopback address. Unauthorized requests receive a 401 error.
  • frpc version: Ensure the provided frpc executable is compatible with the server’s frps version.
  • Permission requirements: When installing Git repository dependencies, pnpm-workspace.yaml permissions may need to be adjusted. It is recommended to install plugins only from trusted sources and to pin specific commit versions.

Summary

This plugin provides remote access capabilities to the DSH Web profile through simple configuration. Whether for quick debugging within a local network or public internet tunnels established via frpc, it gives developers a flexible means of control. For more details, refer to its GitHub repository.