sorsama/deepseek-harness-relay0

dsh-relay

Authenticated remote access for a DeepSeek Harness web profile: TLS, QR/passcode device pairing, password sign-in, and per-device revocation in front of an untouched loopback harness.

包名
dsh-relay
版本
0.1.0
许可证
MIT
最近更新
2026年8月21日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:sorsama/deepseek-harness-relay

Configuration

Every value lives in your profile's cordis.patch.yml under the relay row. Your layer applies after the bundle's, so it wins. A patch replaces the row's whole config, so restate every key you want — including stateDir, which has no default.

- id: relay
  name: 'dsh-relay'
  config:
    bind: '0.0.0.0'
    port: 3443
    stateDir: !!js dshHomePath('relay')
    tls: 'files'
    tlsCertPath: '/path/to/fullchain.pem'
    tlsKeyPath: '/path/to/privkey.pem'
    publicHostnames: ['relay.example.com']
    privilegedMethods: 'allow-authenticated'
    compat:
      addressGrants: true
      addressGrantTtlMs: 86400000
      plainPort: 3444
FieldDefaultWhat it decides
bind / port0.0.0.0 / 3443The primary listener.
tlsself-signedfiles for a certificate a browser trusts, self-signed for pinning clients, off for plaintext.
publicHostnames[]Extra names this relay is reached by — certificate SANs, and accepted Host values.
trustedHosts[]Additional authorities the fence accepts, as bare host or host:port.
authbothWhich credential classes are accepted.
sessionTtlMs12 hBrowser cookie lifetime.
deviceTokenTtlMs30 dDevice token lifetime.
pairingWindowMs5 minHow long a pairing code stays claimable.
maxFailedAttempts / lockoutMs5 / 15 minSign-in lockout.
rateLimitPerMinute600Per-address request ceiling.
privilegedMethodsallow-authenticatedWhether an authenticated remote client reaches settings, credentials, model discovery, and host pickers. Address-granted clients never do, regardless.
extraProxyPaths[]Additional path prefixes a write may address.
compat.addressGrantstrueThe DSH Mobile 0.5.0 bridge described above.
compat.plainPort0Plain-HTTP listener for clients that cannot use TLS.
uiLinktrueAdd the Relay link to the harness web UI.
mdnstrueAdvertise _dsh._tcp.

Per-invocation overrides

There are no --relay-* flags, and there cannot be. The harness's web app owns the invocation's parser and rejects any option it does not declare, so a flag added by a bundle fails dsh web before any plugin loads. The shipped patch reads the environment instead:

VariableEffect
DSH_RELAY_PORTprimary listener port
DSH_RELAY_BINDlisten address
DSH_RELAY_TLSself-signed, files, or off
DSH_RELAY_PLAIN_PORTplain-HTTP listener port; 0 disables it
DSH_RELAY_DISABLE=1skip the relay entirely this run
DSH_RELAY_PLAIN_PORT=3444 dsh web