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, the following IDEs are supported: IntelliJ IDEA, CLion, GoLand, PhpStorm, PyCharm Professional, RubyMine, WebStorm, and Rider.

Get started

  1. Install JetBrains Toolbox App to your local machine.

  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, JetBrains Fleet as an IDE and click Create. JetBrains Toolbox App will automatically install the required Fleet version to your machine.

  1. Install JetBrains Toolbox App to your local machine.

  2. Use JetBrains Toolbox App to install JetBrains Gateway.

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

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

  5. In the New Dev Environment window, select a project branch, a suitable instance type, a required IntelliJ-based IDE and click Create. JetBrains Toolbox App will automatically install the required IDE to your machine.

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 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:

    • .space/*.devfile.yaml: a configuration file that fully describes a dev environment. It includes the information about an instance type, a Docker image, an IDE, and so on. Learn more about devfiles.

    • .space.kts: an Automation script that warms up the dev environment. It does whatever is needed to speed up loading the project: builds project indexes, downloads dependencies, and so on. The result of the warm-up job is a disk snapshot (a warm-up snapshot) that is mounted to the dev environment. Learn more about warm-up snapshots.

  • 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. The dev environment automatically saves the contents of the working directory and user home directory. All uncommitted changes will be available after you restart the environment.

Last modified: 01 July 2022