Introduction¶
When using DeepSeek Harness (DSH), if you access it directly via a public IP address, the browser may report the error crypto.randomUUID is not a function due to security context restrictions. This can cause model loading to fail, prevent selection of Agent presets, and prevent selection of workspace directories. The dsh-ip-https plugin solves these problems by injecting scripts and applying configuration patches, and it provides an IP-based HTTPS access solution.
What It Is¶
This is a DeepSeek Harness plugin used to modify settings remotely and provide HTTPS access. It is maintained by qiufengcrl and licensed under the MIT License. The plugin detects the public IP address and automatically requests a short-lived Let’s Encrypt IP certificate (with a validity period of about 6 days), so it can be used without a domain, ICP filing, or login.
Core Features¶
- Script Injection and Remote Settings: Injects scripts into the page, fills in
crypto.randomUUID, and makes the settings page write tosettings.yamlin local mode, fixing errors that occur during public access. - Fixing Privileged RPC 403 Errors: Modifies the
HostandOriginrequest headers to127.0.0.1:<port>, preventing privileged RPC and Pocket tunnel from returning 403 errors. - Automatic HTTPS: Detects the public IP address, requests a Let’s Encrypt IP certificate, and automatically renews it about 48 hours before expiration.
- Login-Free Redirect: Automatically redirects to the current process’s token URL when no login cookie is present, making it easier for mobile devices and computers to directly access the root path
/.
Installation and Enabling¶
Before using it, ensure the following requirements are met:
* DeepSeek Harness is installed, and the Node version is 22.5 or later.
* The openssl tool is installed locally.
* Ports 80 and 443 are open to the public internet.
Install the plugin:
dsh plugin --profile web add dsh-ip-https
Update the plugin:
dsh plugin --profile web update dsh-ip-https@latest
Start the web interface:
dsh web
Configuration Details¶
The plugin provides configuration options in cordis.patch.yml under the profile directory. Common options are as follows:
| Option | Default | Description |
|---|---|---|
autoLogin |
true |
When no login cookie exists, automatically redirect to the current process’s ?token= URL |
acmeStaging |
false |
Use the Let’s Encrypt staging environment when set to true |
fallbackPort |
3443 |
Fallback port when port 443 is occupied |
httpsPort |
443 |
HTTPS port |
httpPort |
80 |
Port for ACME communication and redirects |
Use Cases and Precautions¶
This plugin is suitable for scenarios where you do not have a domain or do not want to perform ICP filing, but need to modify DSH settings remotely via a public IP address.
Notes:
* The plugin does not modify the DSH source code, nor does it modify files in the installation directory.
* Ports 80/443 must be open to the public internet.
* If ports 80/443 are already occupied by nginx, the plugin cannot request an IP certificate, but the installed plugin can still provide HTTP access and inject scripts.
* Public access grants settings and workspace permissions. Restrict source IP addresses yourself using security groups / a VPN.
For more details, visit GitHub.