Using WebStorm

Procedure
  1. Clone the che-editor-intellij-community repository, which is needed to build IntelliJ Idea Community Edition located under the che-incubator organization.

  2. Build the image:

    $ podman build -t webstorm --build-arg PRODUCT_NAME=WebStorm .

    This command builds an image with a 2020.2.3 version by default.

  3. Tag and push the built image to a user repository:

    $ podman tag webstorm:latest <username>/webstorm:latest
    $ podman push <username>/webstorm:latest
  4. Provision the activation code for offline use to be able to use WebStorm with a registered license. See section Provisioning JetBrains activation code for offline use.

  5. Create a workspace with the following workspace.yaml and meta.yaml files:

    • workspace.yaml – workspace configuration. Do not forget to provide a correct URL to the meta.yaml file:

      metadata:
        name: che-webstorm
      components:
        - type: cheEditor
          reference: '<URL to meta.yaml>'
          alias: webstorm-editor
          automountWorkspaceSecrets: true
      apiVersion: 1.0.0
      In the current workspace definition, there is a new property: automountWorkspaceSecrets: true. This property instructs Eclipse Che to provision secrets into a specific component. In this case, it provisions it into the Che editor based on IntelliJ Idea Ultimate Edition. This parameter is mandatory to successfully register the IDE with an activation code for offline use.
    • meta.yaml – Che editor configuration. Do not forget to replace <username> with the user name of the repository to which the image is pushed:

      apiVersion: v2
      publisher: <username>
      name: webstorm-NOVNC
      version: 2020.2.3
      type: Che Editor
      displayName:  WebStorm
      title:  WebStorm (in browser using noVNC) as editor for Eclipse Che
      description:  WebStorm running on the Web with noVNC
      icon: https://resources.jetbrains.com/storage/products/webstorm/img/meta/webstorm_logo_300x300.png
      category: Editor
      repository: https://github.com/che-incubator/che-editor-intellij-community
      firstPublicationDate: "2020-10-27"
      spec:
        endpoints:
         - name: "intellij"
           public: true
           targetPort: 8080
           attributes:
             protocol: http
             type: ide
             path: /vnc.html?resize=remote&autoconnect=true&reconnect=true
        containers:
         - name: webstorm-novnc
           image: "<username>/webstorm:latest"
           mountSources: true
           volumes:
            - mountPath: "/JetBrains/WebStorm"
              name: webstorm-configuration
           ports:
            - exposedPort: 8080
           memoryLimit: "2048M"