How rustdesk/rustdesk-server works
RustDesk Server is a self-hosted remote-access backend, with separate rendezvous/ID and relay executables plus an optional Windows desktop manager. The main workflow registers peers with hbbs, retains peer identity/state, and supports rendezvous coordination; clients may use the separately operated relay service. The manager provides service controls and log/config viewing. Source excerpts establish hbbs dispatch, peer persistence, and parts of the UI; relay internals and several UI event links are not fully shown, so those connections are omitted.
Main entry points: rendezvous_server.rs Rendezvous service · common.rs Config and keys · main.rs hbbs entry · relay_server.rs Relay service
Components 16
Server runtime
- hbbs entry
src/main.rs - Rendezvous service
src/rendezvous_server.rs - hbbr entry
src/hbbr.rs - Relay service
src/relay_server.rs - Config and keys
src/common.rs - Server utilities
src/utils.rs
Peer state
- Peer map
src/peer.rs - SQLite database
src/database.rs
Desktop manager
- Manager app
ui/src/main.rs - Service presenter
ui/src/usecase/presenter.rs - Service factory
ui/src/usecase/service.rs - Windows service adapter
ui/src/adapter/service/windows.rs - File watcher
ui/src/usecase/watcher.rs
Manager interface
- Desktop tray view
ui/src/adapter/view/desktop.rs - Log/config editor
ui/html/main.js
Other components
- RustDesk client
Connections 11
- RustDesk client → Rendezvous service: registers with
README.md - RustDesk client → Relay service: relays through
README.md - hbbs entry → Config and keys: reads configuration
src/main.rs - hbbs entry → Rendezvous service: starts
src/main.rs - Rendezvous service → Config and keys: uses helpers
src/rendezvous_server.rs - Rendezvous service → Peer map: dispatches peer operations
src/rendezvous_server.rs - Peer map → SQLite database: reads and writes
src/peer.rs - Relay service → Config and keys: uses helpers
src/relay_server.rs - Service presenter → Service factory: creates service
ui/src/usecase/presenter.rs - Service factory → Windows service adapter: selects on Windows
ui/src/usecase/service.rs - Log/config editor → Desktop tray view: emits actions
ui/src/adapter/view/desktop.rs