Self-hosted RustDesk-compatible server in Go (one binary instead of hbbs + hbbr) plus a Node.js web console.
Wiki · Privacy · Sponsors · Changelog
INSOLVE — see SPONSORS.md for everyone who backs the project.
Alpha desktop apps: Tauri MGMT / Agent clients are not for production. Use the web console and a normal RustDesk client. Details: Alpha notice.
Your data stays on your server. The project does not run vendor analytics — PRIVACY.md.
AI-assisted development: BetterDesk is created and maintained with the assistance of artificial intelligence tools.
git clone https://github.com/UNITRONIX/BetterDesk.git
cd BetterDesk
sudo ./betterdesk.shChoose 1 for a new install, or sudo ./betterdesk.sh --auto.
One container with everything inside (server + relay + web console) — the recommended setup:
curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/docker-compose.quick.single.yml -o docker-compose.yml
docker compose pull && docker compose up -d
docker compose exec betterdesk betterdesk-show-admin-credentialsOpen http://your-server:5000 (plain HTTP, not HTTPS).
Legacy two-container layout (split images)
curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/docker-compose.quick.yml -o docker-compose.yml
docker compose pull && docker compose up -d
docker compose exec console betterdesk-show-admin-credentialsThe split layout is kept for existing deployments (API port 21114, single container uses 21121). New installs should use the all-in-one image above.
Run betterdesk.ps1 as Administrator — see the Installation wiki.
| Topic | Where |
|---|---|
| Full guides | GitHub Wiki |
| Install / Docker / clients | Installation · Docker · Client setup |
| Config, TLS, updates | Configuration · TLS · Panel updates |
| Monitoring / WoL | Monitoring · Unattended & WoL |
| Help | Troubleshooting · FAQ |
| Privacy / license | PRIVACY.md · Licensing |
| Developers | docs/ · API · CDAP · Contributing |
Wiki source in-repo: docs/wiki/ (sync with scripts/sync-wiki.ps1 / .sh).
The BetterDesk web console uses the UX 3.5 interface. These preview images show the dark theme in English with fictional device data:
![]() |
![]() |
| Login | Dashboard |
![]() |
![]() |
| Devices | Device details |
![]() |
|
| Settings → Updates | |
See the Web Console wiki page for the full visual tour and panel capabilities.
| Port | Role |
|---|---|
| 21116 TCP+UDP | Signal |
| 21117 TCP | Relay |
| 21121 | RustDesk Client API (Go; optional Node proxy) |
| 21114 | Admin REST (usually localhost) |
| 5000 | Web console |
| 21122 | CDAP (optional) |
Diagnostics → issue → fork / PR. See docs/development/CONTRIBUTING.md.
AGPL-3.0. Optional Commercial Grant for eligible sponsors — docs/COMMERCIAL-GRANT.md.




