Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Using IntelliJ Community Edition in Red Hat CodeReady Workspaces 2.5

December 1, 2020
David Harris
Related topics:
JavaKubernetesMicroservices
Related products:
Developer Tools

Share:

    Red Hat CodeReady Workspaces (CRW) provides a default browser-based IDE to be used with developer workspaces. However, the architecture is flexible for using other IDEs such as Jupyter Notebooks and Eclipse Dirigible. In this article, you will learn how to create a custom workspace using the community edition of IntelliJ IDEA.

    Note: You can also apply the instructions in this article to create a free, self-service Eclipse Che workspace hosted at che.openshift.io.

    Creating a custom workspace in CodeReady Workspaces

    We will start with the procedure for creating a custom workspace in a connected CodeReady Workspaces environment. See the next section for instructions to set up a custom workspace in an air-gapped environment.

    Step 1: Add a custom IntelliJ IDEA workspace

    Our first step is to install IntelliJ IDEA from a devfile:

    1. Open CodeReady Workspaces and select Workspaces from the top-left corner of the dashboard.
    2. Click Add Workspace.
    3. Select the Custom Workspace tab if it is not already selected.
    4. Enter the URL of the CRW 2.5 IntelliJ devfile:
      https://raw.githubusercontent.com/redhat-developer/codeready-workspaces/crw-2.5-rhel-8/dependencies/che-editor-intellij-community/devfiles/workspace.yaml.
    5. Click Load devfile.

    Figure 1 shows the dialog to add a workspace and load the CRW 2.5 IntelliJ devfile.

    Screenshot of Create a Custom Workspace after loading a Devfile
    Figure 1: Add a workspace and load the IntelliJ devfile.

    Step 2: Create and open the workspace

    Scroll down and click Create & Open. After the workspace loads, you will be prompted to accept the license terms for IntelliJ's community edition. After accepting the terms, you will see the Welcome to IntelliJ IDEA window shown in Figure 2.

    Welcome screen for IntelliJ
    Figure 2 - Welcome to IntelliJ IDEA
    Figure 2 - Welcome to IntelliJ IDEA

    From here, click Get from Version Control and enter a CodeReady Workspaces project URL. The URL for our example is https://github.com/redhat-developer/codeready-workspaces. You can use the noVNC clipboard to paste the URL from your computer into the IntelliJ dialog, as shown in Figure 3.

    Shows the noVNC clipboard which allows you to copy and paste content such as a git repository URL
    Figure 3 - Using the noVNC clipboard
    Figure 3: Using the noVNC clipboard to copy and paste the CodeReady Workspaces project URL.

    Next, click Clone and wait for the project to load. Once it has loaded, you can open a project file and start coding in IntelliJ IDEA.

    Additional tips

    If you accidentally minimize a window and can’t get it back, see this tip for using the Fluxbox content menu to enable the toolbar. Once the toolbar is enabled, you will be able to find the window again.

    If the noVNC interface uses a different language from your primary setting, you likely need to configure your browser’s language settings.

    Creating a custom workspace in an air-gapped environment

    Creating a custom workspace in an air-gapped environment requires a different approach and a few more steps than the connected environment.

    Step 1: Build a custom plug-in registry image

    To start, make sure that you've mirrored the image quay.io/crw/plugin-intellij-rhel8:2.5 to your internal registry. Next, you will build a custom plug-in registry image that includes IntelliJ:

    1. Clone the Git repository that has the CRW 2.5 plug-in definitions:
      git clone -b crw-2.5-rhel-8 https://github.com/redhat-developer/codeready-workspaces.git
      cd codeready-workspaces/dependencies/che-plugin-registry
      
    2. Create a new folder that contains the IntelliJ editor definition:
      mkdir -p v3/plugins/idea/intellij-community/2020.2.2/
      
    3. Create the meta.yaml file that contains the IntelliJ editor definition:
      echo 'apiVersion: v2
      publisher: idea
      name: intellij-community
      version: 2020.2.2
      type: Che Editor
      displayName:  IntelliJ IDEA Community Edition
      title:  IntelliJ IDEA Community Edition (in browser using noVNC) as editor for Eclipse Che
      description:  IntelliJ IDEA Community Edition running on the Web with noVNC
      icon: https://resources.jetbrains.com/storage/products/intellij-idea/img/meta/intellij-idea_logo_300x300.png
      category: Editor
      repository: https://github.com/che-incubator/jetbrains-editor-images
      firstPublicationDate: "2020-09-25"
      spec:
        endpoints:
        - name: "intellij"
          public: true
          targetPort: 8080
          attributes:
            protocol: http
            type: ide
            discoverable: false
            path: /vnc.html?resize=remote&autoconnect=true&reconnect=true
      containers:
      - name: ideaic-novnc
        image: "quay.io/crw/plugin-intellij-rhel8:2.5"
        mountSources: true
        volumes:
        - mountPath: "/JetBrains/IdeaIC"
          name: idea-configuration
        ports:
        - exposedPort: 8080
        memoryLimit: "2048M"' > v3/plugins/idea/intellij-community/2020.2.2/meta.yaml
    4. Specify that the latest version is 2020.2.2:
      echo "2020.2.2" > v3/plugins/idea/intellij-community/latest.txt
      
    5. Patch the Dockerfile:
      echo '--- a/dependencies/che-plugin-registry/build/dockerfiles/Dockerfile
      +++ b/dependencies/che-plugin-registry/build/dockerfiles/Dockerfile
      @@ -12,7 +12,7 @@
       
      # Builder: check meta.yamls and create index.json
      FROM docker.io/alpine:3.11.5 AS builder
      -RUN apk add --no-cache py-pip jq bash wget skopeo && pip install yq jsonschema
      +RUN apk add --no-cache py3-pip jq bash wget skopeo && pip3 install yq jsonschema
       
      ARG LATEST_ONLY=false
      ARG USE_DIGESTS=false' | patch build/dockerfiles/Dockerfile
      
    6. Build and publish the new plug-in registry image that includes the IntelliJ editor:
      REGISTRY_URL=quay.io
      REGISTRY_ORG=crw
      REGISTRY_IMAGE_TAG=crw-2.5-rhel-8-intellij
      ./build.sh --organization ${REGISTRY_ORG} \
      --registry ${REGISTRY_URL} \
      --tag ${REGISTRY_IMAGE_TAG}
      docker push ${REGISTRY_URL}/${REGISTRY_ORG}/che-plugin-registry:${REGISTRY_IMAGE_TAG}
      
    7. Update the CRW configuration to use the new image for the plug-in registry:
      CRW_NAMESPACE=workspaces
      oc patch checluster codeready-workspaces -n ${CRW_NAMESPACE} \
      --type=merge -p \
      '{"spec":{"server": {"pluginRegistryImage": "'${REGISTRY_URL}'/'${REGISTRY_ORG}'/che-plugin-registry:'${REGISTRY_IMAGE_TAG}'"}}}'
      

    Once the CheCluster custom resource (CR) is patched, the plug-in registry pod will be updated with the new image.

    Step 2: Create the IntelliJ workspace

    Next, you'll create the custom workspace in CodeReady Workspaces:

    1. Open CodeReady Workspaces and select Get Started from the top-left corner of the CRW dashboard.
    2. Select the Custom Workspace tab if it is not already selected.
    3. Copy and paste the following into the devfile text area:
      apiVersion: 1.0.0
      metadata:
      generateName: che-ideaic
      components:
      - type: cheEditor
        id: idea/intellij-community/2020.2.2
      
    4. Click Load devfile.
    5. Scroll down and click Create & Open.

    Conclusion

    This article showed you how to create a custom workspace with IntelliJ IDEA in CodeReady Workspaces 2.5. We started with the installation and setup for a connected environment, then presented an air-gapped installation. We hope the instructions are helpful. Please let us know in the comments if you have questions or feedback.

    Check out the CodeReady Workspaces product page on Red Hat Developer for the latest news and tutorials.

    Acknowledgment

    Special thanks to Nick Boldt for his help with this article.

    Last updated: November 8, 2023

    Recent Posts

    • A deep dive into Apache Kafka's KRaft protocol

    • Staying ahead of artificial intelligence threats

    • Strengthen privacy and security with encrypted DNS in RHEL

    • How to enable Ansible Lightspeed intelligent assistant

    • Why some agentic AI developers are moving code from Python to Rust

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue