Commit Graph

19 Commits

Author SHA1 Message Date
UNITRONIX 8cf8350629 fix(security): harden WSS proxy trust and exact-key initiator delivery (Refs #276)
Require TRUSTED_PROXIES before honoring X-Forwarded headers, and deliver async PunchHole/RelayResponse via ip:port wsPunchConns so shared-NAT peers do not get the wrong signed PK.
2026-07-22 06:46:57 +02:00
UNITRONIX 04160cc4b2 fix(relay): reject mixed WSS and native TCP relay sessions (#290)
Prevent framing desync crashes by refusing WebSocket↔native pairs at relay
pairing and returning a clear Protocol mismatch RefuseReason from signal.
2026-07-21 17:45:04 +02:00
UNITRONIX 0b82160592 fix(console): persist Public Client Endpoints across Docker recreate (#291)
Store PUBLIC_* on the console-data volume so panel settings survive compose recreate; keep Compose env override and .env mirror for IaC and bare-metal.
2026-07-21 17:32:43 +02:00
UNITRONIX a6bc3d6efb fix(signal): stop empty WSS keepalive from breaking RequestRelay (Refs #276)
Ephemeral WebSocket RequestRelay sessions were getting an immediate empty binary frame after HTTP 101, which desktop clients parse as RendezvousMessage{union:None} and disconnect before RelayResponse.
2026-07-20 23:06:22 +02:00
UNITRONIX cde6e8261e fix(signal): fix WSS session keys and async delivery behind reverse proxy (Refs #276)
Parse X-Forwarded-For/X-Real-IP without synthesizing :0, gate on TRUST_PROXY, and forward PunchHole/RelayResponse to WebSocket initiators.
2026-07-18 11:54:09 +02:00
UNITRONIX bdefaade18 fix(installer): support remote reverse proxy host bind (#267)
Ask whether Caddy/Nginx runs on the same server; set HOST=0.0.0.0 and LAN
upstream in snippets when the proxy is on another host.
2026-07-14 21:42:44 +02:00
UNITRONIX cb559f8594 fix: honour CAP_NET_BIND_SERVICE for native HTTPS on :443 (#219)
Node no longer pre-emptively falls back to :5443 when systemd grants bind capability. Repair HTTPS/TLS syncs PORT=80 with HTTPS_PORT=443; installer health checks and post-toggle tests surface fallback-port mismatches.
2026-07-14 18:00:25 +02:00
UNITRONIX 66268947e1 Add external reverse proxy guidance and installer wizard.
Document Caddy/Nginx TLS termination, TRUST_PROXY, and WSS routing (#267).
Extend betterdesk.sh with External reverse proxy mode and snippet generation.
2026-07-14 17:52:55 +02:00
UNITRONIX 14311d4dd6 Improve Linux native HTTPS port 443 UX (#219 follow-up).
Help operators reach the panel at https://domain without :5443 via installer prompts, docs, and cleaner HTTP redirects, and align fresh-install self-signed cert permissions with the #219 deploy flow.
2026-07-11 20:50:08 +02:00
UNITRONIX ad2d4a02cd Enhance WebSocket handling and diagnostics
- Implemented immediate empty keepalive frame after HTTP 101 upgrade to address client connection issues.
- Updated `ws-register-test` tool to support delayed registration modes and improved usage instructions.
- Refactored WebSocket connection handling to log effective remote addresses and frame counts for better diagnostics.
- Added tests for effective remote address handling and immediate keepalive functionality.
- Updated documentation to reflect changes in WebSocket behavior and troubleshooting steps.
2026-07-01 17:48:12 +02:00
UNITRONIX d05d881df8 Complete Linux HTTP/HTTPS toggle repair for unreadable LE certs.
Auto-redeploy TLS material on update/repair, unify SSL menu C with protocol toggle T, and retry post-toggle health checks so the console user can always read keys under $RUSTDESK_PATH/ssl/.

Refs #219

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:52:25 +02:00
UNITRONIX 1118fc2ba6 Anonymize operator infrastructure fingerprints from public repo.
Remove internal LAN IP, SSH user, and developer paths from docs and examples; move deploy runbook to gitignored docs/private with a public template; drop Cursor debug logging leftovers; add CI checks to prevent regression.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 19:07:42 +02:00
UNITRONIX d6f308f5ec Fix Let's Encrypt HTTPS toggle when console runs as betterdesk user.
Certbot certs were symlinked into /etc/letsencrypt paths the non-root console could not read, so Node fell back to HTTP on :5000 while config still said HTTPS. Copy material into $RUSTDESK_PATH/ssl/, refresh on renew, and auto-repair legacy symlink installs.

Fixes #219

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 18:52:29 +02:00
UNITRONIX 8579e88be4 Fix split-domain RustDesk client config for dashboard and QR (Fixes #222).
Add PUBLIC_SERVER_ID, PUBLIC_RELAY_SERVER, and PUBLIC_API_URL with Settings UI,
unified endpoint resolution across Dashboard/Keys, and fallbacks via PANEL_PUBLIC_HOST.
2026-06-27 20:45:00 +02:00
UNITRONIX 03e0e99675 feat(dashboard): enhance RustDesk mass-deployment documentation and UI
Updated the documentation for RustDesk mass-deployment, including the correct `--config` deploy string format and the addition of editable client server address fields. Enhanced the dashboard with features like **Copy deploy string** and **Intune script** snippets. Introduced a new environment variable `PANEL_PUBLIC_HOST` for better configuration management. Added UI elements for improved user experience in client configuration.
2026-06-20 23:01:55 +02:00
UNITRONIX 8f46d9afab docs: enhance Docker and HTTPS setup documentation for RustDesk WSS
Added detailed instructions for configuring Nginx Proxy Manager and other reverse proxies with Docker for RustDesk WSS endpoints. Included troubleshooting tips and diagnostic commands to assist users in resolving common issues related to WebSocket connections and TLS configurations.
2026-06-11 18:21:47 +02:00
UNITRONIX a1e054cdd3 fix: keep RustDesk WSS rendezvous sessions alive
Send empty binary keepalive frames on signal WebSockets and ignore empty RustDesk heartbeat replies across the WS protobuf adapter. This prevents reverse-proxied WSS clients from timing out after the advertised keep_alive interval.

Document the Nginx /ws/id and /ws/relay upstream mapping for BetterDesk Docker deployments.

Fixes #144

Reported-by: @odixz
2026-05-17 23:12:30 +02:00
UNITRONIX 43756c2ba1 Add Enterprise TLS & SSL configuration
Introduce comprehensive SSL/TLS management across installers and services. Adds interactive SSL menu and `do_configure_ssl` handlers (self-signed with SANs, custom certs, Let's Encrypt guidance, disable, and an Enterprise TLS mode that enables HTTPS on panel, signal, relay and API). Implements platform-specific support: docker compose helper (configure_docker_ssl), systemd and service ExecStart updates for Linux, NSSM support for Windows, .env updates (NODE_EXTRA_CA_CERTS, ALLOW_SELF_SIGNED_CERTS, ENTERPRISE_TLS) and automatic SAN detection (public/LAN IPs, optional domain). Uses long-lived self-signed certs (10 years) with RSA 2048/4096 and fallbacks for older OpenSSL; prompts users on fresh installs to configure HTTPS. Also updates menus and documentation to expose SSL configuration option.
2026-04-16 01:44:45 +02:00
UNITRONIX 1e2047c033 BetterDesk 3.0.0 Alpha 2026-03-24 00:26:25 +01:00