Self-hosted RustDesk server for Unraid with web console, shared address book and web client.
1.0K
Your own RustDesk server for Unraid, in one container. The ID server and the relay come with a web console, user accounts, an address book that follows you to every client and a web client in the browser. Devices can also change their ID, which the stock open-source server refuses. The buttons under the first row lead to RustDesk's own clients.
A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.
If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.
Every device that registered with your server, with its system, when it was last online and one click to connect.
The address book a user sees in every RustDesk client they log in to.
hbbs hands out IDs and introduces your devices to each other. hbbr relays the session when two devices cannot reach each other directly. By default the server accepts encrypted connections only./_admin/, lists devices, users, groups and address books, keeps the connection and file transfer logs, and holds the server's settings./webclient/ opens a session from a browser on a machine without RustDesk, and you can share access with a guest through it.| This image | ich777 AIO | Official server | RustDesk Server Pro | |
|---|---|---|---|---|
| ID server and relay | ✅ | ✅ | ✅ | ✅ |
| Web console | ✅ | ❌ | ❌ | ✅ |
| Accounts and shared address book | ✅ | ❌ | ❌ | ✅ |
| Web client | ✅ | ❌ | ❌ | ✅ |
| Change a device's ID | ✅ | ❌ | ❌ | ✅ |
| Multi-arch | amd64 + arm64 | amd64 | amd64 + arm64 + armv7 | amd64 + arm64 + armv7 |
| Licence | AGPL-3.0 | AGPL-3.0 | AGPL-3.0 | proprietary |
| Price | free | free | free | paid subscription |
The official server is rustdesk/rustdesk-server; ich777's all-in-one image is the one in Unraid's Community Applications.
Unraid: install RustDesk from Community Applications and fill in the address your clients use to reach the server (a DNS name or IP) in the four address fields.
Docker Compose: take compose.yaml, replace rustdesk.example.com with your server's address and run docker compose up -d.
http://umbrel.local:35135.On the first start the server creates its key pair in /data and the console creates the account admin and prints its password in the container log:
docker logs rustdesk 2>&1 | grep -i password
Log in at http://<server>:21114/_admin/, change the password, and the server is ready. If the line has scrolled away, set a new one:
docker exec rustdesk /app/apimain reset-admin-pwd <new password>
Ports: 21114 (console and web client), 21115 (NAT test), 21116 TCP and UDP (ID server), 21117 (relay), 21118 and 21119 (websocket variants for the web client). Forward 21115 to 21117 if devices outside your network should connect; the console does not need to be reachable from outside.
Get the client from RustDesk's releases, F-Droid or the App Store, or with the buttons at the top. Then open Settings → Network → ID/Relay server and enter:
| Field | Value |
|---|---|
| ID server | <server>:21116 |
| Relay server | <server>:21117 |
| API server | http://<server>:21114 |
| Key | the content of /data/id_ed25519.pub |
With the API server set, the client shows a login. Log in with a user from the console and your address book appears; it syncs to every device where you log in with the same user.
The client's Change ID works against this server. The server renames the device only when the request comes from the machine that registered the old ID, and only to an ID that is free and follows RustDesk's format (6 to 16 characters, starting with a letter). The stock open-source server answers the same request with "not supported".
Your devices keep their IDs and trust the new server when it uses the same key pair. Stop the old container and copy id_ed25519, id_ed25519.pub and db_v2.sqlite3 from its data folder into this container's /data before the first start. The key the clients use stays the same, so nothing has to change on the devices.
hbbs, hbbr and rustdesk-utils built from lejianwen/rustdesk-server, a fork of rustdesk-server that talks to the API, with the patches in patches/ applied.The newer web client that older rustdesk-api images shipped as /webclient2 was removed upstream after a DMCA notice and is not included.
One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.
You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.
Bugs, ideas or feature requests? Please open a GitHub issue.
A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.
If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.
The packaging in this repository is AGPL-3.0. RustDesk server, rustdesk-api and s6-overlay keep their own licences; see NOTICE. RustDesk is a trademark of its owners; this project is not affiliated with them.
Content type
Image
Digest
sha256:2e5d6b120…
Size
33.5 MB
Last updated
1 day ago
docker pull junkerderprovinz/rustdesk