Cloud Native 7 min read

Run JetBrains Goland in the Browser with Kubernetes: Step‑by‑Step Guide

This article explains how to deploy JetBrains Goland's new web version using the Projector Docker image on a Kubernetes cluster, covering manifest creation, resource deployment, settings import, Go SDK setup, and final configuration for a fully functional browser‑based IDE.

Programmer DD
Programmer DD
Programmer DD
Run JetBrains Goland in the Browser with Kubernetes: Step‑by‑Step Guide

Many cloud‑native developers use a MacBook with Goland, but limited hardware often forces a switch to VSCode. JetBrains now provides a web version of Goland via Projector, which can be run in a Linux environment.

The official Docker image registry.jetbrains.team/p/prj/containers/projector-goland can be deployed on Kubernetes. First create a PersistentVolumeClaim and a Deployment/Service using the following manifest:

# projector-goland.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: project-data
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: projector-goland
  labels:
    app: projector-goland
spec:
  replicas: 1
  selector:
    matchLabels:
      app: projector-goland
  template:
    metadata:
      labels:
        app: projector-goland
    spec:
      containers:
        - name: projector-goland
          image: registry.jetbrains.team/p/prj/containers/projector-goland
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - mountPath: /etc/localtime
              name: localtime
            - mountPath: /home/projector-user
              name: project-data
      imagePullSecrets:
        - name: regcred
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: project-data
          persistentVolumeClaim:
            claimName: project-data
---
apiVersion: v1
kind: Service
metadata:
  name: projector-goland
  labels:
    app: projector-goland
spec:
  selector:
    app: projector-goland
  ports:
    - protocol: TCP
      name: http
      port: 80
      targetPort: 8887

Apply the manifest: $ kubectl apply -f projector-goland.yaml Verify the pod and service:

$ kubectl get pod -l app=projector-goland
$ kubectl get svc -l app=projector-goland

Once the Service IP is reachable, open the Goland web UI, import your local settings (exported as settings.zip) via Configure → Import Settings , and copy the archive into the container:

$ kubectl cp settings.zip projector-goland-xxxx:/home/projector-user/settings.zip

Configure the Go SDK inside the web IDE. Because the official image lacks a Go SDK, download it on the host and copy it into the container:

$ wget https://mirrors.ustc.edu.cn/golang/go1.16.2.linux-amd64.tar.gz
$ kubectl cp go1.16.2.linux-amd64.tar.gz projector-goland-xxxx:/home/projector-user/
$ kubectl exec -it projector-goland-xxxx -- bash
$ mkdir sdk && tar zxvf go1.16.2.linux-amd64.tar.gz -C sdk

In the web IDE, set GOROOT to the extracted SDK path, enable Go modules, and apply the changes. After restarting the container, the Goland web version is ready for use, even on an iPad.

Goland web UI
Goland web UI
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

web-idegolandprojector
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.