FAQ about remote development
What is Remote Development?
Remote Development is a new functionality in JetBrains Rider that enables you to connect to a remote server with the IDE backend running there from anywhere in the world, and work on a project located on that server as seamlessly as if it was located on your local machine.
What are the advantages of Remote Development?
Ability to edit, build, or debug applications on a different OS than you are running locally.
Ability to use larger or more powerful hardware than your local machine for development.
Ability to use a laptop as a thin client, no source code needs to be hosted on your local machine.
Ability to work from anywhere, while the sensitive intelligence is hosted on the company’s servers only.
What is licensing scheme for Remote Development?
To use a vendor plugin or the built-in SSH functionality of remote development, you need to have a license to the corresponding IDE, the same way as for the desktop version. The license will be asked on the local machine upon connecting to the remote IDE. If your local workstation already has an active suitable license, JetBrains Client will pick it. If you'd like to become a vendor or are orchestrating remote development within your organization, contact us for further details.
How does Remote Development work?
The process of the remote development works as follows:
You have a server which is a physical or virtual machine to host the source code and run headless JetBrains Rider or other IDE that will perform most of the IDE features.
You have a client, which is a physical machine used by developers to connect to the server and provide a thin client which will be used for developers work. For example, it could be your laptop.
You start JetBrains Gateway that connects everything together and gets you a thin client as an output that has an advanced editor, which is based on JetBrains Rider’s RD protocol that makes typing and working in the editor feel instant.
What are the system requirements for the remote server?
The Linux platform should have any recent Linux distribution such as Ubuntu 16.04+, RHEL/Centos 7+, and so on. There is no arm64 support yet. We recommend that you use Remote Development on machines with 2+ cores, 4GB+ of RAM, and 5GB+ of disk space.
What are current limitations of the implementation?
Only Linux servers are supported as suitable for the backend. macOS and Windows are planned, but we can't provide ETA yet.
Fully offline remote development is not supported yet. You can manually upload an IDE installer archive to the remote server, but your local machine must have an Internet connection to JetBrains sites to get the thin client and JetBrains Runtime files.
There is no arm64 support yet but it's on the roadmap.
Your workstations (both remote server and local computer, or only the local one) must have a network connection to JetBrains' URLs from this list:
https://code-with-me.jetbrains.com
https://download.jetbrains.com
https://download-cf.jetbrains.com
https://download-cdn.jetbrains.com
https://cache-redirector.jetbrains.com
https://data.services.jetbrains.com/products
These addresses provide corresponding versions of the JetBrains Client (thin client) and JBR files.
For successful deploy, minimal available space on your remote server must be at least 4xIDE.tar.gz size
If your backend IDE is Rider, use the full path to the solution file (.sln) during the "Project directory" step/selection
What is JetBrains Gateway?
Basically, JetBrains Gateway is a launcher that brings a backend server and local environment together. It runs on the local machine, and allows you to create new environments or connect to the existing ones. After you request an environment in the JetBrains Gateway, it launches JetBrains Client that is specific to that environment.
Can I connect to the remote server from JetBrains Rider?
Yes, you can. However, it still downloads JetBrains Client. All functionality which comes along with the JetBrains Gateway is available in JetBrains Rider.
Why would I need to use JetBrains Gateway?
To avoid doing any kind of local development on your client machine
To have a single entry point for all variety of your remote backends
How does JetBrains Gateway work?
The JetBrains Gateway makes all JetBrains IDE backends available to a user. It allows you to configure new remote connections as well as manage the existing ones. It will automatically download the exact version of the client that will work with the IDE backend.
Can I point Remote Development to use an existing IDE on my remote server?
Since version 221.5481, you can manually register an existing backend IDE on the remote server and make it visible for the Gateway. Installed IDE will appear in the list of available builds.
Take a look at the related instruction in starting page.
How do you secure the connection to a remote server?
The communication between JetBrains Client and the IDE backend is end-to-end encrypted with the 1.3 TLS even if performed in a secure SSH tunnel. We use TLS 1.3 and on top of that, the SSH security connection is used.
Do you collect any telemetry?
The telemetry rules are the same as in JetBrains Rider with the same consents, settings, and defaults. For more information, refer to Data Sharing.
Do you use any relay servers for the connection?
The connection is direct, no Jetbrains relay servers are involved.
What mechanism is used to display remote GUI locally?
JetBrains Client that is based on the JetBrains Rider platform and the Projector technology are used to display remote GUI locally.
What is the expected latency?
JetBrains Client has an advanced editor that is based on the JetBrains Rider’s RD protocol, which makes typing feel instant. Additionally, the advanced code intelligence that’s done on the JetBrains Rider server is presented in a way that looks as if it’s running locally.
If I install plugins while working in JetBrains Client, do they get installed on the remote server?
You can install plugins the same way you do in your regular project. Remote plugins are marked with the On Host label. Keep in mind that plugins are installed per project.
What keyboard bindings will be active for a remote session?
It is under development.