This repository and guide help you build a custom version of RustDesk with your own name, icon, and logo, and connect it to your own server.
- Prerequisites
- Cloning and Preparing Source
- Customizing Branding (Logo, Icon, Name)
- Setting Server (hbbs/hbbr)
- Customizing the RustDesk UI
- Build for Windows
- Troubleshooting & Tips
- License & Legal Notes
- Credits
To build the latest RustDesk (Sciter GUI version) you need:
- Visual Studio Installer - MSVC (select .NET desktop development and Desktop development with C++)
- Git (during installation, select all Environment Variables (PATH) options)
- Rust (install latest stable using
rustup-init.exe) + Cargo - vcpkg (a package manager for C++ to handle libraries and dependencies)
- Clang/LLVM (a compiler for C/C++ — LLVM 15.0.2 (x64))
- Sciter SDK (download
sciter.dllfrom sciter-sdk/bin.win/x64) - Python (required to compile UI resources into the executable)
- Visual Studio Code (recommended for editing source files)
Note:
Flutter is not required for the Sciter build.
Knowledge of HTML, JavaScript, CSS, and JSX is helpful for customizing the Sciter-based UI.
Note:
These commands must be run in Git Bash, not Command Prompt.
# 1) Clone vcpkg and install
git clone https://github.com/microsoft/vcpkg
vcpkg/bootstrap-vcpkg.bat
export VCPKG_ROOT=$PWD/vcpkg
vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
# Add System environment variable
VCPKG_ROOT=C:\vcpkg- Download LLVM 15.0.2 (x64): LLVM-15.0.2-win64.exe
- Install to
C:\LLVMand set environment variable:LIBCLANG_PATH=C:\LLVM\bin
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll
mv sciter.dll target/debugReplace .ico, .png, and .svg files in the res/ directory with your own branded icons.
Edit rustdesk/Cargo.toml:
[package]
name = "MyCompany" # your exe name
version = "1.2.0"
authors = ["mycompany <info@mycompany.com>"]
edition = "2021"
build = "build.rs"
description = "A remote control software."
default-run = "mycompany" # must match 'name'
[package.metadata.bundle]
name = "My Company" # Display name
identifier = "com.mycompany.remote"
icon = ["res/32x32.png", "res/128x128.png", "res/128x128@2x.png"]In /rustdesk/libs/hbb_common/src/config.rs (around line 50):
pub static ref APP_NAME: Arc<RwLock<String>> = Arc::new(RwLock::new("My Company".to_owned()));Edit Cargo.toml:
default = ["use_dasp"] change to default = ["use_dasp", "inline"]
Run:
python res\inline-sciter.pyNote: This command must be run in CMD.
To lock RustDesk to your own server:
- Start
hbbsandhbbrservices (via Docker or systemd). - Open required ports:
- TCP:
21115-21117 - UDP:
21116
- TCP:
- Follow official docs: RustDesk Self-Hosting
- Set up the server according to the official RustDesk instructions, and obtain your
IPandencryption key.
You will also need to specify the public key you generated on your server
Edit /rustdesk/libs/hbb_common/src/config.rs:
pub const RENDEZVOUS_SERVERS: &'static [&'static str] = &["myserver.com"]; // or IP addressAlso update /rustdesk/src/common.rs (around line 517):
let rendezvous_server = socket_client::get_target_addr(&format!("myserver.com:{}", config::RENDEZVOUS_PORT))?;Assign your server's id_ed25519.pub key to RS_PUB_KEY:
pub const RS_PUB_KEY: &'static str = "your_public_key_here";-
Main UI files:
rustdesk/src/ui/index.tis rustdesk/src/ui/index.css -
Modify
index.tis(JSX-like structure) andindex.cssfor styles. -
At line 566
index.tis, you'll find thefunction render()related to the UI. You can make changes here according to your custom design, but keep in mind that programming knowledge (as mentioned at the beginning of this document) is required.- The file
index.cssis used for styling and design. You can apply your personal customizations along with the main project files.
- The file
-
Run
python res/inline-sciter.pyafter each change.
Embedding UI / Enable Inline Builds
python res\inline-sciter.pyNote: This command must be run in CMD.
Build and run application
cargo build --release- Output:
rustdesk\target\release - Copy
sciter.dllinto same folder as.exebefore running on other systems.
- Clear cache after replacing icons:
cargo clean - Restart system to refresh icon cache.
- Ensure Sciter runtime matches build version.
- RustDesk is under AGPL-3.0.
- If distributing binaries, publish your changes and credit RustDesk authors.
- For commercial use, consult RustDesk Pro license.
Thanks to the RustDesk team for their outstanding open-source project. If this guide helped you, give the original repository a star!