Avoid resetting the canvas during visual viewport scroll events and only resize when the rendered viewport dimensions actually change. This prevents transient black bars while interacting with the remote desktop on tablets. Thanks: INSOLVE (Honorary); Marco Jakobs (@jacotec); MyNameisStitch (@MyNameisStitch); Redspin (@playerumpknow)
BetterDesk
Self-hosted RustDesk-compatible server in Go (one binary instead of hbbs + hbbr) plus a Node.js web console.
Wiki · Privacy · Sponsors · Changelog
Honorary supporter
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.
Quick start
Linux
git clone https://github.com/UNITRONIX/BetterDesk.git
cd BetterDesk
sudo ./betterdesk.sh
Choose 1 for a new install, or sudo ./betterdesk.sh --auto.
Docker
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.
Windows
Run betterdesk.ps1 as Administrator — see the Installation wiki.
Documentation
| 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).
Web console preview
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.
Ports (short)
| 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) |
Contributing
Diagnostics → issue → fork / PR. See docs/development/CONTRIBUTING.md.
License
AGPL-3.0. Optional Commercial Grant for eligible sponsors — docs/COMMERCIAL-GRANT.md.




