RustDesk Fleet
Self-hosted remote support for MSPs & IT teams

Your own remote support server. One install script.

RustDesk Fleet runs the RustDesk relay and a full management dashboard on a single Ubuntu box you control. Brand the client per customer, sign the installers, and audit every session, without per-technician licences.

hbbs + hbbr · FastAPI dashboard · Let's Encrypt TLS · nightly backups

Devices Example data · all groups
IDComputerGroupStatus
418 220 907FRONTDESK-01Harbor DentalIn session
502 117 364ACCT-LAPTOP-3Lindqvist CPAOnline
377 940 015SHOP-POSCorner HardwareOnline
611 083 552RECEPTION-PCHarbor DentalOffline
294 561 830IT-BENCH-02InternalOnline
Windows 11 · macOS 15 · Ubuntu 24.04 — reported by each client
1 scriptRelay, dashboard, TLS and backup timer, idempotent on re-run
Signed .exeAuthenticode via Azure Trusted Signing, built on Linux
12 reportsCharts per group and date range, every table as CSV
Your keypairServer key and fleet DB never leave your box
The dashboard

Everything a helpdesk needs around the relay

Stock RustDesk server gives you a relay. Fleet adds the part your team works in all day.

/devices

Live device inventory

Computer name, OS and client version reported by each machine, with online, in-session and offline status. New registrations land in a panel until you assign them.

/groups

Client groups with their own branding

Give each customer an installer with its own app name and icon, managed client settings, and an unattended password.

/groups/…/links

Download links you can revoke

Email a customer a link to their branded installer. Revoke it when the rollout is done.

audit

Session and file-transfer audit

Who connected, from where, and how. A connection timeline per device, plus a fleet-wide view by device or by technician.

/dynamic-groups

Rule-based dynamic groups

Build groups from rules such as OS, client version or status, with a live match preview and CSV export.

/admin/roles

Roles from a capability matrix

Define permission levels per capability and limit technicians to the client groups they support. Passkeys and MFA reminders included.

server health

Health checks and alerts

CPU, memory, disk, uptime and container state, with threshold alerts by email using templates you can edit and brand.

updates

Updates from the dashboard

Move hbbs/hbbr to the latest release and rebuild every group's installers on a new client version in one step.

/admin/backup

Off-site backups with restore

Keypair and databases to S3, Wasabi, Backblaze B2, DigitalOcean Spaces or MinIO. Test, run and restore from the UI.

From blank server to first session

Four steps, about an hour

Step 1

Point a hostname at a fresh Ubuntu box

Any small VPS works. Open ports 21115–21119 for the relay and 443 for the dashboard.

Step 2

Run the installer

./install.sh --host --email sets up the relay, dashboard, certificate and backup timer.

Step 3

Create a client group

Add the customer's name and icon, then build their signed Windows installer.

Step 4

Send the download link

Devices appear in the inventory as they install. Connect from your own RustDesk client.

Architecture

One relay, one key, separation by group

Technician RustDesk client Relay hbbs · hbbr :21115–21119 Harbor Dental group · 14 PCs Lindqvist CPA group · 6 PCs Dashboard FastAPI · :443 fleet.sqlite3

Why a single relay

The RustDesk desktop client holds one server and key at a time. With a relay per customer, technicians would re-enter the ID server and key every time they switched clients. One shared relay lets a tech move between customers without touching settings.

How customers stay apart

Each device belongs to a client group in the fleet database. Roles and group access decide which technicians see which devices, and every session is logged against the group.

The trade-off, stated plainly

All devices trust the same server key. A leaked installer is scoped by group in the dashboard, not by cryptography. Keep the keypair on the server, and rotate it if it is ever exposed.

Compared with hosted remote support

What changes when you run it yourself

RustDesk FleetTypical hosted service
Where sessions relayYour server, your hostnameThe vendor's cloud
PricingThe cost of one VPSPer technician or per concurrent session
Customer brandingApp name and icon per client groupOften one brand per account, or a higher tier
Audit dataIn your SQLite database, exportable as CSVIn the vendor's portal, on their retention terms
Who maintains itYou, with updates from the dashboardThe vendor
Install

Run it on a fresh Ubuntu server

The script is safe to run again: it skips what is already in place and fixes what has drifted.

bash · Ubuntu 24.04
$ git clone https://github.com/arvage/rustdesk-fleet.git
$ cd rustdesk-fleet
$ ./install.sh --host rds.example.com --email you@example.com
  relay ........ hbbs + hbbr up on 21115–21119
  dashboard .... rustdesk-dashboard.service active
  tls .......... certificate issued for rds.example.com
  backups ...... nightly timer enabled
  Done. Open https://rds.example.com/setup to create the first admin.