Skip to content

docs: reorganize JetBrains docs #17995

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
May 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,10 @@ We are always working on new integrations. Please feel free to open an issue and
### Official

- [**VS Code Extension**](https://marketplace.visualstudio.com/items?itemName=coder.coder-remote): Open any Coder workspace in VS Code with a single click
- [**JetBrains Gateway Extension**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
- [**JetBrains Toolbox Plugin**](https://plugins.jetbrains.com/plugin/26968-coder): Open any Coder workspace from JetBrains Toolbox with a single click
- [**JetBrains Gateway Plugin**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
- [**Dev Container Builder**](https://github.com/coder/envbuilder): Build development environments using `devcontainer.json` on Docker, Kubernetes, and OpenShift
- [**Module Registry**](https://registry.coder.com): Extend development environments with common use-cases
- [**Coder Registry**](https://registry.coder.com): Build and extend development environments with common use-cases
- [**Kubernetes Log Stream**](https://github.com/coder/coder-logstream-kube): Stream Kubernetes Pod events to the Coder startup logs
- [**Self-Hosted VS Code Extension Marketplace**](https://github.com/coder/code-marketplace): A private extension marketplace that works in restricted or airgapped networks integrating with [code-server](https://github.com/coder/code-server).
- [**Setup Coder**](https://github.com/marketplace/actions/setup-coder): An action to setup coder CLI in GitHub workflows.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# JetBrains Gateway in an air-gapped environment
# JetBrains IDEs in an air-gapped environment

In networks that restrict access to the internet, you will need to leverage the
JetBrains Client Installer to download and save the IDE clients locally. Please
Expand Down Expand Up @@ -161,4 +161,4 @@ respectively.

## Next steps

- [Pre-install the JetBrains IDEs backend in your workspace](../../../admin/templates/extending-templates/jetbrains-gateway.md)
- [Pre-install the JetBrains IDEs backend in your workspace](./jetbrains-preinstall.md)
119 changes: 0 additions & 119 deletions docs/admin/templates/extending-templates/jetbrains-gateway.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Pre-install JetBrains Gateway in a template
# Pre-install JetBrains IDEs in your template

For a faster JetBrains Gateway experience, pre-install the IDEs backend in your template.
For a faster first time connection with JetBrains IDEs, pre-install the IDEs backend in your template.

> [!NOTE]
> This guide only talks about installing the IDEs backend. For a complete guide on setting up JetBrains Gateway with client IDEs, refer to the [JetBrains Gateway air-gapped guide](./jetbrains-airgapped.md).
Expand Down Expand Up @@ -35,35 +35,35 @@ rm -rf ~/JetBrains/backends/IU/*.tar.gz
Add the following command to your template's `startup_script`:

```shell
~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
~/JetBrains/*/bin/remote-dev-server.sh registerBackendLocationForGateway
```

## Configure JetBrains Gateway Module

If you are using our [jetbrains-gateway](https://registry.coder.com/modules/jetbrains-gateway) module, you can configure it by adding the following snippet to your template:
If you are using our [jetbrains-gateway](https://registry.coder.com/modules/coder/jetbrains-gateway) module, you can configure it by adding the following snippet to your template:

```tf
module "jetbrains_gateway" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/modules/jetbrains-gateway/coder"
version = "1.0.28"
version = "1.0.29"
agent_id = coder_agent.main.id
folder = "/home/coder/example"
jetbrains_ides = ["IU"]
default = "IU"
latest = false
jetbrains_ide_versions = {
"IU" = {
build_number = "243.26053.27"
version = "2024.3"
build_number = "251.25410.129"
version = "2025.1"
}
}
}

resource "coder_agent" "main" {
...
startup_script = <<-EOF
~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
~/JetBrains/*/bin/remote-dev-server.sh registerBackendLocationForGateway
EOF
}
```
Expand All @@ -73,47 +73,23 @@ resource "coder_agent" "main" {
If you are using Docker based workspaces, you can add the command to your Dockerfile:

```dockerfile
FROM ubuntu

# Combine all apt operations in a single RUN command
# Install only necessary packages
# Clean up apt cache in the same layer
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
curl \
git \
golang \
sudo \
vim \
wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Create user in a single layer
ARG USER=coder
RUN useradd --groups sudo --no-create-home --shell /bin/bash ${USER} \
&& echo "${USER} ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/${USER} \
&& chmod 0440 /etc/sudoers.d/${USER}

USER ${USER}
WORKDIR /home/${USER}

# Install JetBrains Gateway in a single RUN command to reduce layers
# Download, extract, use, and clean up in the same layer
FROM codercom/enterprise-base:ubuntu

# JetBrains IDE installation (configurable)
ARG IDE_CODE=IU
ARG IDE_VERSION=2025.1

# Fetch and install IDE dynamically
RUN mkdir -p ~/JetBrains \
&& wget -q https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz -P /tmp \
&& tar -xzf /tmp/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz -C /tmp \
&& /tmp/jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader \
--products-filter IU \
--build-filter 243.26053.27 \
--platforms-filter linux-x64 \
--download-backends ~/JetBrains \
&& tar -xzf ~/JetBrains/backends/IU/*.tar.gz -C ~/JetBrains/backends/IU \
&& rm -f ~/JetBrains/backends/IU/*.tar.gz \
&& rm -rf /tmp/jetbrains-clients-downloader-linux-x86_64-1867* \
&& rm -rf /tmp/*.tar.gz
&& IDE_URL=$(curl -s "https://data.services.jetbrains.com/products/releases?code=${IDE_CODE}&majorVersion=${IDE_VERSION}&latest=true" | jq -r ".${IDE_CODE}[0].downloads.linux.link") \
&& IDE_NAME=$(curl -s "https://data.services.jetbrains.com/products/releases?code=${IDE_CODE}&majorVersion=${IDE_VERSION}&latest=true" | jq -r ".${IDE_CODE}[0].name") \
&& echo "Installing ${IDE_NAME}..." \
&& wget -q ${IDE_URL} -P /tmp \
&& tar -xzf /tmp/$(basename ${IDE_URL}) -C ~/JetBrains \
&& rm -f /tmp/$(basename ${IDE_URL}) \
&& echo "${IDE_NAME} installed successfully"
```

## Next steps

- [Pre install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
- [Pre-install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
2 changes: 1 addition & 1 deletion docs/install/offline.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ Coder is installed.
## JetBrains IDEs

Gateway, JetBrains' remote development product that works with Coder,
[has documented offline deployment steps.](../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md)
[has documented offline deployment steps.](../admin/templates/extending-templates/jetbrains-airgapped.md)

## Microsoft VS Code Remote - SSH

Expand Down
39 changes: 30 additions & 9 deletions docs/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,24 @@
},
{
"title": "JetBrains IDEs",
"description": "Use JetBrains IDEs with Gateway",
"description": "Use JetBrains IDEs with Coder",
"path": "./user-guides/workspace-access/jetbrains/index.md",
"children": [
{
"title": "JetBrains Gateway in an air-gapped environment",
"description": "Use JetBrains Gateway in an air-gapped offline environment",
"path": "./user-guides/workspace-access/jetbrains/jetbrains-airgapped.md"
"title": "JetBrains Fleet",
"description": "Connect JetBrains Fleet to a Coder workspace",
"path": "./user-guides/workspace-access/jetbrains/fleet.md"
},
{
"title": "JetBrains Gateway",
"description": "Use JetBrains Gateway to connect to Coder workspaces",
"path": "./user-guides/workspace-access/jetbrains/gateway.md"
},
{
"title": "JetBrains Toolbox",
"description": "Access Coder workspaces through JetBrains Toolbox",
"path": "./user-guides/workspace-access/jetbrains/jetbrains-toolbox.md"
"description": "Access Coder workspaces from JetBrains Toolbox",
"path": "./user-guides/workspace-access/jetbrains/toolbox.md",
"state": ["beta"]
}
]
},
Expand Down Expand Up @@ -497,9 +503,14 @@
"path": "./admin/templates/extending-templates/web-ides.md"
},
{
"title": "Pre-install JetBrains Gateway",
"description": "Pre-install JetBrains Gateway in a template for faster IDE startup",
"path": "./admin/templates/extending-templates/jetbrains-gateway.md"
"title": "Pre-install JetBrains IDEs",
"description": "Pre-install JetBrains IDEs in a template for faster IDE startup",
"path": "./admin/templates/extending-templates/jetbrains-preinstall.md"
},
{
"title": "JetBrains IDEs in Air-Gapped Deployments",
"description": "Configure JetBrains IDEs for air-gapped deployments",
"path": "./admin/templates/extending-templates/jetbrains-airgapped.md"
},
{
"title": "Docker in Workspaces",
Expand Down Expand Up @@ -920,6 +931,16 @@
"description": "Learn how to use NGINX as a reverse proxy",
"path": "./tutorials/reverse-proxy-nginx.md"
},
{
"title": "Pre-install JetBrains IDEs in Workspaces",
"description": "Pre-install JetBrains IDEs in workspaces",
"path": "./admin/templates/extending-templates/jetbrains-preinstall.md"
},
{
"title": "Use JetBrains IDEs in Air-Gapped Deployments",
"description": "Configure JetBrains IDEs for air-gapped deployments",
"path": "./admin/templates/extending-templates/jetbrains-airgapped.md"
},
{
"title": "FAQs",
"description": "Miscellaneous FAQs from our community",
Expand Down
6 changes: 3 additions & 3 deletions docs/user-guides/workspace-access/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ successful, you'll see the following message:
```console
You should now be able to ssh into your workspace.
For example, try running:

$ ssh coder.<workspaceName>
```

Expand Down Expand Up @@ -110,9 +110,9 @@ IDEs are supported for remote development:
- Rider
- RubyMine
- WebStorm
- [JetBrains Fleet](./jetbrains/index.md#jetbrains-fleet)
- [JetBrains Fleet](./jetbrains/fleet.md)

Read our [docs on JetBrains Gateway](./jetbrains/index.md) for more information
Read our [docs on JetBrains](./jetbrains/index.md) for more information
on connecting your JetBrains IDEs.

## code-server
Expand Down
26 changes: 26 additions & 0 deletions docs/user-guides/workspace-access/jetbrains/fleet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# JetBrains Fleet

JetBrains Fleet is a code editor and lightweight IDE designed to support various
programming languages and development environments.

[See JetBrains's website](https://www.jetbrains.com/fleet/) to learn more about Fleet.

To connect Fleet to a Coder workspace:

1. [Install Fleet](https://www.jetbrains.com/fleet/download)

1. Install Coder CLI

```shell
curl -L https://coder.com/install.sh | sh
```

1. Login and configure Coder SSH.

```shell
coder login coder.example.com
coder config-ssh
```

1. Connect via SSH with the Host set to `coder.workspace-name`
![Fleet Connect to Coder](../../../images/fleet/ssh-connect-to-coder.png)
Loading
Loading