DSH (DeepSeek Harness) follows the philosophy of “everything is a plugin.” When you need to share a local file system or workspace with other devices, @weibaohui/dsh-webdav-server is a practical solution. This plugin turns a shared directory into a WebDAV server, allowing it to be mounted as a local disk by Windows, macOS, Linux, and the iOS Files app.

Core Features

  • Multi-platform mounting: Provides a standard WebDAV interface, supporting direct mounting from native file apps on Windows, macOS, Linux, and iOS/iPadOS.
  • Standalone service: Has an independent listening port (default 19087) and authentication mechanism, fully isolated from the DSH web interface and other plugins.
  • Dual authentication modes: Supports both “standalone token” and “reusing user-management account” authentication methods.
  • Read-only and symbolic links: Supports enabling read-only mode and following symbolic links.
  • Hot updates: After configuration changes (such as port, token, or root directory), the plugin compares fingerprints every 3 seconds and automatically rebuilds the listener, without requiring a DSH restart.
  • Visual configuration: The shared root directory, listening address, port, token, and other settings can be configured visually on the settings page, with built-in mounting guides for three platforms.

Installation and Activation

After installing this plugin, restart DSH to use it.

dsh plugin add github:weibaohui/dsh-webdav-server

After installation is complete, go to the Settings → WebDAV Server page.

Basic Usage

  1. On the settings page, confirm that the service is running (enabled by default).
  2. Copy the LAN address (default http://<your IP>:19087/) and access token from the settings page.
  3. On another computer or device, connect following the “mounting guide” provided on the settings page:
    • Username: Enter anything (for example, dsh).
    • Password: Enter the access token copied above.

Authentication Modes

This plugin provides two authentication modes, switchable with one click on the settings page:

  • Standalone token (default): Any username is accepted; the password is fixed as the access token. It has zero dependencies and works out of the box. It is generated automatically on first launch and can be regenerated at any time from the settings page.
  • user-management account: Reuses the login username and password from the user-management plugin.
    • Note: Accounts with two-factor authentication (TOTP) enabled cannot be mounted (Basic authentication does not support dynamic codes); disabled accounts are refused for mounting; after a password change, previously verified old credentials remain valid for up to 5 minutes.

Platform Mounting Guides

The settings page includes built-in mounting steps for mainstream systems, with the address and credentials automatically filled in.

macOS

In Finder, press ⌘K (Go → Connect to Server), enter http://<ip>:19087/. After connecting, use any username and enter the token as the password. Alternatively, run open http://<ip>:19087/ in Terminal to directly open the connection window.

Windows

  1. Open File Explorer, click “Map network drive”, enter http://<ip>:19087/ in the folder field, check “Use different credentials”, enter any username, and enter the token as the password.
  2. If mapping has no response on Win11 23H2+, run the following commands as an administrator to enable the WebClient service:
    sc config WebClient start= auto && net start WebClient
  1. If using a plaintext HTTP connection, modify the registry value HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel to 2 (DWORD) and restart the service; if copying large files fails, modify FileSizeLimitInBytes to 4294967295.

Linux

Mount using davfs2:

sudo apt install davfs2
sudo mkdir -p /mnt/dsh
sudo mount -t davfs http://<ip>:19087/ /mnt/dsh
# 用户名任意,密码 = 令牌

Non-interactive configuration: Write http://<ip>:19087/ dsh <token> to /etc/davfs2/secrets, and set permissions with chmod 600.

iOS / iPadOS

Open the “Files” app, tap “Connect to Server” in the top-right corner, and enter the address and token.

Configuration and Persistence

Configuration data is stored under the dsh-webdav-server section in the host service’s ~/.dsh/settings.yaml. The plugin’s default shared root directory is ~/.dsh/dsh-webdav-server/share, and it will be created automatically if it does not exist.

Considerations

  1. Security risk: Whoever mounts the service can read and write to wherever the root directory points. It is recommended not to expose the entire HOME directory; enable read-only mode for public directories.
  2. Dependency check: When using user-management mode, it automatically falls back to token authentication if the plugin is not installed or the user database is corrupted.
  3. Compatibility: Large file transfers may be limited by system or client configuration.

Ecosystem Position

This plugin is part of the DSH plugin ecosystem and is maintained by the community. For more details, see the GitHub repository.