Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      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
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java 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

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • 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

    • How Kafka improves agentic AI

    • How to use service mesh to improve AI model security

    • How to run AI models in cloud development environments

    • How Trilio secures OpenShift virtual machines and containers

    • How to implement observability with Node.js and Llama Stack

    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

    Red Hat legal and privacy links

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

    Report a website issue