This tool installs and configures NetBird and RustDesk on a Windows computer so that the computer can join a Remote Desktop Support (RDS) service. The installer can be customized for any RDS provider by supplying the appropriate configuration values before building the program.
The RDS platform is a secure, private, open-source, self-hosted remote-support system built around NetBird and RustDesk. The NetBird component provides an overlay Virtual Private Network, which encrypts all internal traffic. RustDesk runs within the VPN, allowing users to securely access and control other computers on the network according to defined roles: Support Clients, Helpers, and Guests.
"Self-hosted" means that anyone with an internet connection can deploy an RDS server and operate a private Remote Support service under their own control.
For more information:
- Remote Desktop Support Service - Using RDS-install on a client computer
- Remote Desktop Support Platform - Building and administering an RDS server to host your own private support service
- 👨💻 Installs, configures, and registers a Windows computer with an RDS service in a single operation
- 🖥 Supports Subscriber and Guest roles
- Subscribers are the primary Support Clients. These are computers intended to be remotely accessed and controlled by RDS service Helpers and Guests.
- Helpers are RDS staff authorized to service (work on) any Support Client.
- Guests are RDS members with limited access to specific Support Clients for which they know the RustDesk ID and password. These are typically computers belonging to users who also administer one or more Support Clients.
RDS-install is a .NET console application. Building it requires one of the following:
- Microsoft .NET SDK 9.0 or later or
- Microsoft Visual Studio with the C#/.NET desktop development workload installed, supporting .NET 9.0 or later
Before building, you must supply provider-specific configuration values. Copy the provided template:
Program.Secrets.Template.cs
to create a file named:
Program.Secrets.cs
Fill in the required values:
ProviderName- The name of the service provider (e.g., My PJs)ServiceName- Remote Desktop Support (e.g)PublicServerUrl- Public URL used to reach the RDS NetBird VPN. (e.g., https://support.example.com)VpnServerUrl- VPN URL used to reach RustDesk and Valet (e.g., http://support.example.vpn)NetBirdGuestKey- Setup key for automatically joining the Guests groupNetBirdSubscriberKey- Setup key for automatically joining the Support Clients groupRustDeskKey- Public key required for connecting to RustDesk over the VPN.RustDeskPort- 21116
The NetBird setup keys and RustDesk public key are obtained during RDS server setup.
🚫 Do not commit Program.Secrets.cs — it is excluded by .gitignore.
dotnet publishThe resulting RDS-install.exe is placed in the project's Publish folder.
To install RDS as a Subscriber, open an elevated Command Prompt (Run as Administrator) and issue this command:
RDS-install.exeTo install as a Guest, use:
RDS-install.exe --guestTo see all options:
RDS-install.exe --helpBy default, the installer embeds live secrets into the binary in order to simplify deployment. These secrets allow the client to join the provider's RDS server, but they do not expose administrative privileges or backend access.
- For maximum security, all required data may be instead supplied by a local configuration file. To enable this alternative, the provider must provide the config file to the client via private means.
In practice, My PJs accepts the minimal risk of embedding the keys in the installer and monitors usage accordingly. While the consequences of exposure are limited, providers need to understand the implications of distributing a preconfigured installer and should rotate keys if they suspect misuse.
This project is licensed under the GNU GPL v3. See the LICENSE file for details.
RDS-install is part of the My PJs, LLC Self-hosted Remote Desktop Support Platform project. Project documentation is available on the My PJs wiki. This repository is maintained by Jim Wilson.