FAQ about remote development
What is Remote Development?
Remote Development is a new functionality in RubyMine 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.
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 RubyMine 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. We recommend that you use Remote Development on machines with 2+ cores, 4GB+ of RAM, and 5GB+ of disk space.
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 RubyMine?
Yes, you can. However, it still downloads JetBrains Client. All functionality which comes along with the JetBrains Gateway is available in RubyMine.
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.
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 RubyMine 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 RubyMine 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 RubyMine 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.
What is licensing scheme for Remote Development?
Remote Development and JetBrains Gateway themselves don't have separate licenses. To use remote development, you need to have a license to the corresponding IDE, the same as for the desktop version. The license will be asked on the local machine upon connecting to the remote IDE. .