JetBrains Space Help

Dev Environments

Dev environments are virtual machines running in the Space cloud. You can use these machines for software development instead of your local machine:

  • Your local machine works as a frontend. It runs only a thin client that is connected to a dev environment.

  • The dev environment works as a backend. It runs all heavy-weight IDE operations: processes the source code, builds indexes, compiles the code, and so on.

Dev environment structure

Supported IDEs

Space dev environments can provide backend for the following IDEs:

  • JetBrains Fleet: a lightweight IDE that works as a thin client.

  • IntelliJ-based IDEs with JetBrains Gateway (a thin client based on IntelliJ IDEA). Currently, only IntelliJ IDEA is supported.

You can install these IDEs using JetBrains Toolbox App.

Get started

  1. Use JetBrains Toolbox App to install JetBrains Fleet. It's a lightweight IDE that can serve as a thin client for dev environments.

  2. Open your project in Space and then the Repositories page.

  3. Find the required repository and click Open in IDE next to it.

  4. In the New Dev Environment window, select a project branch, a suitable instance type, an IDE of your choice (JetBrains Fleet or Intellij IDEA via Gateway) and click Create.

That's it! Space will create a dev environment and start the selected IDE.

Note that these instructions don't include configuring your dev environment. That's why the environment container will use the default image and the IDE will require some time to build project indexes. So, we recommend that you configure the environment for your project before using it.

How does it work

  • Creating a dev environment

    Every project repository page in Space has the Open in IDE button that creates a new dev environment. Learn more

  • Dedicated virtual machine and a container

    When you create a dev environment, Space assigns a dedicated virtual machine to your Space account. Dev environments are individual – only you can access your environments (though, it's possible to share your environment with other users for collaborative work).

    A dev environment is a Docker container that runs inside the dedicated virtual machine. By default, if you haven't configured the environment, it uses the default image for the container.

  • Dev environment storage

    Each dev environment has an assigned storage. When a dev environment is started for the first time, Space clones the project repository to the storage and mounts it to the dev environment.

  • Preparing a dev environment for a project

    Before creating a dev environment, you can configure it for your project. Typically, this should be done only once for a project. The configuration is performed with two files:

  • Connecting to a dev environment

    After the dev environment is started, Space suggest you to connect to it using an editor of your choice: JetBrains Fleet or one of the IntelliJ-based IDEs with JetBrains Gateway.

  • Developing in a dev environment

    When you make changes to the code in the local editor (the frontend), they are sent to the dev environment (the backend) that takes care of the rest. Your local editor only renders the user interface and handles the communication with the backend.

  • Dev environment lifecycle

    If there's no activity with a dev environment for more than 30 minutes, Space hibernates the environment: It performs graceful shutdown for the container (docker stop), and releases the virtual machine. If you had any uncommitted changes, they are automatically saved to the dev environment storage and will be available after you restart the environment.

Last modified: 29 November 2021