- Default console shell is now the classic icon rail + flyout, with UX 3.5 available via navbar switch. - Fixed visibility issues in UX 3.5, ensuring main content is displayed correctly under branding wallpaper. - Updated documentation to reflect changes in UI shell options and theme management. - Enhanced language support for new UI shell switch options across multiple languages. This update improves user experience by providing a choice between classic and modern UI shells.
4.9 KiB
BetterDesk Wiki
RustDesk-compatible remote desktop infrastructure — Go server, Node.js console, CDAP, and browser remote.
BetterDesk replaces hbbs + hbbr with a single Go binary, adds a full web management console, optional CDAP for IoT/SCADA devices, and a browser-based remote desktop client.
Warning
MGMT Client and Agent Client (Tauri desktop apps) are alpha — not for production. Use the Web Console and standard RustDesk client in production. See Alpha Software Notice.
Quick Start
Linux (bare metal)
git clone https://github.com/UNITRONIX/BetterDesk.git
cd BetterDesk
sudo ./betterdesk.sh
Choose 1 for a new installation, or run sudo ./betterdesk.sh --auto for non-interactive setup.
Docker (30 seconds)
curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/docker-compose.quick.yml -o docker-compose.yml
docker compose up -d
Open http://your-server:5000 for the web console. Default install paths: Go server /opt/betterdesk, console /opt/BetterDeskConsole (legacy /opt/rustdesk is still detected by the installer).
Documentation
| Topic | Page |
|---|---|
| Installation | Installation — Linux, Windows, Docker |
| Configuration | Configuration — CLI flags, .env, systemd/NSSM |
| Client setup | Client Setup — RustDesk desktop/mobile |
| Web console | Web Console — Dashboard, devices, settings (classic rail or optional UX 3.5) |
| Users & RBAC | User Management, Organizations and RBAC |
| OIDC / SSO | OIDC SSO |
| Client generator | Client Generator |
| Fleet & policies | Fleet and Policies |
| Panel updates | Panel Updates |
| Security | Security — E2E, TLS, audit |
| API | API Reference |
| CDAP | CDAP — IoT device protocol |
| SDK | SDK — Python & Node.js CDAP SDK |
| Desktop clients | Desktop Clients — MGMT, Agent, Native |
| Web remote | Web Remote Desktop |
| MeshAgent | MeshAgent — optional MeshCentral compat |
| Docker | Docker Deployment |
| TLS / SSL | TLS / SSL Certificates |
| Migration | Migration Guide |
| Licensing | Licensing — AGPL-3.0 & Commercial Grant |
| Help | Troubleshooting, FAQ |
Deep-dive developer docs live in the repository: docs/.
Architecture Overview
RustDesk Desktop/Mobile Clients
├── UDP/TCP (:21116) ──► Signal Server ──► Registration, PunchHole, Relay
├── TCP (:21117) ──► Relay Server ──► Bidirectional relay pipe
├── WS (:21118) ──► WS Signal ──► WebSocket signal
├── WS (:21119) ──► WS Relay ──► WebSocket relay
└── HTTP (:21121) ──► Client API ──► Login, AB sync, heartbeat
CDAP Agents / SDK Bridges
└── WS/HTTP (:21122) ──► CDAP Gateway ──► Metrics, commands, widgets
Admin / Web Console
├── HTTP (:21114) ──► REST API ──► JWT / API-key auth
├── WS (:21114) ──► Event Stream ──► Real-time status push
└── HTTP (:5000) ──► Web Console ──► Node.js + Express + EJS
Optional: MeshCentral compatibility (MeshAgent KVM, terminal, files)
Production vs Alpha
| Component | Status | Production use |
|---|---|---|
| Go Server | Stable | Recommended |
| Web Console | Stable | Recommended |
| Native CDAP Agent (Go) | Stable | OK for deployment |
| RustDesk client (standard) | Stable | Recommended |
| MGMT Client (Tauri) | Alpha | Do not use |
| Agent Client (Tauri) | Alpha | Do not use |
Links
- Repository: github.com/UNITRONIX/BetterDesk
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Releases: GitHub Releases
- License: AGPL-3.0 — see Licensing for the optional Commercial Grant