Sign inSign up

rophy/rustdesk-webclient

By rophy

Updated 27 days ago

Image
0

42

rophy/rustdesk-webclient repository overview

RustDesk Web Client

OSS-compatible web client for RustDesk remote desktop, built from the official Flutter web source with patches for hbbs/hbbr (non-Pro) servers.

Quick Start

Behind a reverse proxy with path-based routing (recommended):

docker run -d -p 8080:80 \
  -e RUSTDESK_KEY=your-public-key \
  rophy/rustdesk-webclient

The web client defaults to same-origin WebSocket paths /hbbs and /hbbr, with ws:// or wss:// selected automatically based on the page protocol. No host configuration needed.

For split-domain deployments (hbbs/hbbr on a different host):

# Plain WebSocket (development)
docker run -d -p 8080:80 \
  -e RUSTDESK_HOST=ws://hbbs.example.com:21118 \
  -e RUSTDESK_RELAY=ws://hbbr.example.com:21119 \
  -e RUSTDESK_KEY=your-public-key \
  rophy/rustdesk-webclient

# Secure WebSocket via TLS-terminating proxy
docker run -d -p 8080:80 \
  -e RUSTDESK_HOST=wss://hbbs.example.com/hbbs \
  -e RUSTDESK_RELAY=wss://hbbr.example.com/hbbr \
  -e RUSTDESK_KEY=your-public-key \
  rophy/rustdesk-webclient

Then open http://localhost:8080 in a browser.

Environment Variables

VariableRequiredDefaultDescription
RUSTDESK_KEYYesServer public key
RUSTDESK_HOSTNo/hbbsRendezvous server (hbbs). Path (e.g. /hbbs) or full URI (e.g. ws://host:21118)
RUSTDESK_RELAYNo/hbbrRelay server (hbbr). Path (e.g. /hbbr) or full URI (e.g. ws://host:21119)

When RUSTDESK_HOST or RUSTDESK_RELAY is a path (starts with /), the WebSocket scheme is derived from the page: wss:// on HTTPS, ws:// on HTTP. Full URIs are used as-is.

Reverse Proxy Setup

The proxy must route WebSocket connections to hbbs/hbbr:

PathBackendProtocol
/hbbshbbs:21118WebSocket
/hbbrhbbr:21119WebSocket
/webclient:80HTTP

The proxy should terminate TLS and support WebSocket upgrade. Example with nginx:

location /hbbs {
    proxy_pass http://hbbs:21118;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600s;
}

location /hbbr {
    proxy_pass http://hbbr:21119;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600s;
}

Source

Built from rophy/rustdesk using deploy/docker/webclient/Dockerfile.

Tag summary

Content type

Image

Digest

sha256:d87542e0c

Size

99.6 MB

Last updated

27 days ago

docker pull rophy/rustdesk-webclient:1.4.9-20260822-1