Skip to content

Commit a4898a7

Browse files
committed
Update JetBrains integration docs and registry link
- Add JetBrains Toolbox Plugin to README - Rename JetBrains Gateway and pre-install docs for clarity - Add JetBrains Fleet and Gateway documentation - Include state field for JetBrains Toolbox in manifest - Update JetBrains Gateway links to new paths - Move JetBrains pre-install guide to dedicated offline doc - Clarify JetBrains IDE usage with Coder in air-gapped environments
1 parent 5a3a7fc commit a4898a7

File tree

10 files changed

+262
-369
lines changed

10 files changed

+262
-369
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,10 @@ We are always working on new integrations. Please feel free to open an issue and
109109
### Official
110110

111111
- [**VS Code Extension**](https://marketplace.visualstudio.com/items?itemName=coder.coder-remote): Open any Coder workspace in VS Code with a single click
112-
- [**JetBrains Gateway Extension**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
112+
- [**JetBrains Toolbox Plugin**](https://plugins.jetbrains.com/plugin/26968-coder): Open any Coder workspace from JetBrains Toolbox with a single click
113+
- [**JetBrains Gateway Plugin**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
113114
- [**Dev Container Builder**](https://github.com/coder/envbuilder): Build development environments using `devcontainer.json` on Docker, Kubernetes, and OpenShift
114-
- [**Module Registry**](https://registry.coder.com): Extend development environments with common use-cases
115+
- [**Coder Registry**](https://registry.coder.com): Build and extend development environments with common use-cases
115116
- [**Kubernetes Log Stream**](https://github.com/coder/coder-logstream-kube): Stream Kubernetes Pod events to the Coder startup logs
116117
- [**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).
117118
- [**Setup Coder**](https://github.com/marketplace/actions/setup-coder): An action to setup coder CLI in GitHub workflows.

docs/user-guides/workspace-access/jetbrains/jetbrains-airgapped.md renamed to docs/admin/templates/extending-templates/jetbrains-airgapped.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# JetBrains Gateway in an air-gapped environment
1+
# JetBrains IDEs in an air-gapped environment
22

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

162162
## Next steps
163163

164-
- [Pre-install the JetBrains IDEs backend in your workspace](../../../admin/templates/extending-templates/jetbrains-gateway.md)
164+
- [Pre-install the JetBrains IDEs backend in your workspace](./jetbrains-preinstall.md)

docs/admin/templates/extending-templates/jetbrains-gateway.md renamed to docs/admin/templates/extending-templates/jetbrains-preinstall.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Pre-install JetBrains Gateway in a template
1+
# Pre-install JetBrains IDEs in your template
22

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

55
> [!NOTE]
66
> 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](../../../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md).
@@ -116,4 +116,4 @@ RUN mkdir -p ~/JetBrains \
116116

117117
## Next steps
118118

119-
- [Pre-install the Client IDEs](../../../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
119+
- [Pre-install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)

docs/install/offline.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ Coder is installed.
253253
## JetBrains IDEs
254254

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

258258
## Microsoft VS Code Remote - SSH
259259

docs/manifest.json

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,18 +136,19 @@
136136
},
137137
{
138138
"title": "JetBrains IDEs",
139-
"description": "Use JetBrains IDEs with Gateway",
139+
"description": "Use JetBrains IDEs with Coder",
140140
"path": "./user-guides/workspace-access/jetbrains/index.md",
141141
"children": [
142142
{
143-
"title": "JetBrains Gateway in an air-gapped environment",
144-
"description": "Use JetBrains Gateway in an air-gapped offline environment",
145-
"path": "./user-guides/workspace-access/jetbrains/jetbrains-airgapped.md"
143+
"title": "JetBrains Gateway",
144+
"description": "Use JetBrains Gateway to connect to Coder workspaces",
145+
"path": "./user-guides/workspace-access/jetbrains/gateway.md"
146146
},
147147
{
148148
"title": "JetBrains Toolbox",
149-
"description": "Access Coder workspaces through JetBrains Toolbox",
150-
"path": "./user-guides/workspace-access/jetbrains/jetbrains-toolbox.md"
149+
"description": "Access Coder workspaces from JetBrains Toolbox",
150+
"path": "./user-guides/workspace-access/jetbrains/toolbox.md",
151+
"state": ["beta"]
151152
}
152153
]
153154
},
@@ -489,9 +490,14 @@
489490
"path": "./admin/templates/extending-templates/web-ides.md"
490491
},
491492
{
492-
"title": "Pre-install JetBrains Gateway",
493-
"description": "Pre-install JetBrains Gateway in a template for faster IDE startup",
494-
"path": "./admin/templates/extending-templates/jetbrains-gateway.md"
493+
"title": "Pre-install JetBrains IDEs",
494+
"description": "Pre-install JetBrains IDEs in a template for faster IDE startup",
495+
"path": "./admin/templates/extending-templates/jetbrains-preinstall.md"
496+
},
497+
{
498+
"title": "JetBrains IDEs in Offline Deployments",
499+
"description": "Configure JetBrains IDEs for offline deployments",
500+
"path": "./admin/templates/extending-templates/jetbrains-offline.md"
495501
},
496502
{
497503
"title": "Docker in Workspaces",
@@ -912,6 +918,16 @@
912918
"description": "Learn how to use NGINX as a reverse proxy",
913919
"path": "./tutorials/reverse-proxy-nginx.md"
914920
},
921+
{
922+
"title": "Use Jetbrains IDEs in Offline Deployments",
923+
"description": "Configure JetBrains IDEs for offline deployments",
924+
"path": "./admin/templates/extending-templates/jetbrains-offline.md"
925+
},
926+
{
927+
"title": "Configuring JetBrains IDEs in Offline Deployments",
928+
"description": "Configure JetBrains IDEs for offline deployments",
929+
"path": "./admin/templates/extending-templates/jetbrains-offline.md"
930+
},
915931
{
916932
"title": "FAQs",
917933
"description": "Miscellaneous FAQs from our community",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# JetBrains Fleet
2+
3+
JetBrains Fleet is a code editor and lightweight IDE designed to support various
4+
programming languages and development environments.
5+
6+
[See JetBrains's website](https://www.jetbrains.com/fleet/) to learn more about Fleet.
7+
8+
To connect Fleet to a Coder workspace:
9+
10+
1. [Install Fleet](https://www.jetbrains.com/fleet/download)
11+
12+
1. Install Coder CLI
13+
14+
```shell
15+
curl -L https://coder.com/install.sh | sh
16+
```
17+
18+
1. Login and configure Coder SSH.
19+
20+
```shell
21+
coder login coder.example.com
22+
coder config-ssh
23+
```
24+
25+
1. Connect via SSH with the Host set to `coder.workspace-name`
26+
![Fleet Connect to Coder](../../../images/fleet/ssh-connect-to-coder.png)
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
## JetBrains Gateway
2+
3+
JetBrains Gateway is a compact desktop app that allows you to work remotely with
4+
a JetBrains IDE without downloading one. Visit the
5+
[JetBrains Gateway website](https://www.jetbrains.com/remote-development/gateway/)
6+
to learn more about Gateway.
7+
8+
Gateway can connect to a Coder workspace using Coder's Gateway plugin or through a
9+
manually configured SSH connection.
10+
11+
You can ask your template administrator to [pre-install the JetBrains Gateway backend](../../../admin/templates/extending-templates/jetbrains-preinstall.md) in a template to help JetBrains load faster in workspaces.
12+
13+
### How to use the plugin
14+
15+
> If you experience problems, please
16+
> [create a GitHub issue](https://github.com/coder/coder/issues) or share in
17+
> [our Discord channel](https://discord.gg/coder).
18+
19+
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html)
20+
and open the application.
21+
1. Under **Install More Providers**, find the Coder icon and click **Install**
22+
to install the Coder plugin.
23+
1. After Gateway installs the plugin, it will appear in the **Run the IDE
24+
Remotely** section.
25+
26+
Click **Connect to Coder** to launch the plugin:
27+
28+
![Gateway Connect to Coder](../../../../images/gateway/plugin-connect-to-coder.png)
29+
30+
1. Enter your Coder deployment's
31+
[Access Url](../../../admin/setup/index.md#access-url) and click **Connect**.
32+
33+
Gateway opens your Coder deployment's `cli-auth` page with a session token.
34+
Click the copy button, paste the session token in the Gateway **Session
35+
Token** window, then click **OK**:
36+
37+
![Gateway Session Token](../../../../images/gateway/plugin-session-token.png)
38+
39+
1. To create a new workspace:
40+
41+
Click the <kbd>+</kbd> icon to open a browser and go to the templates page in
42+
your Coder deployment to create a workspace.
43+
44+
1. If a workspace already exists but is stopped, select the workspace from the
45+
list, then click the green arrow to start the workspace.
46+
47+
1. When the workspace status is **Running**, click **Select IDE and Project**:
48+
49+
![Gateway IDE List](../../../../images/gateway/plugin-select-ide.png)
50+
51+
1. Select the JetBrains IDE for your project and the project directory then
52+
click **Start IDE and connect**:
53+
54+
![Gateway Select IDE](../../../../images/gateway/plugin-ide-list.png)
55+
56+
Gateway connects using the IDE you selected:
57+
58+
![Gateway IDE Opened](../../../../images/gateway/gateway-intellij-opened.png)
59+
60+
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`.
61+
62+
### Update a Coder plugin version
63+
64+
1. Click the gear icon at the bottom left of the Gateway home screen, then
65+
**Settings**.
66+
67+
1. In the **Marketplace** tab within Plugins, enter Coder and if a newer plugin
68+
release is available, click **Update** then **OK**:
69+
70+
![Gateway Settings and Marketplace](../../../../images/gateway/plugin-settings-marketplace.png)
71+
72+
### Configuring the Gateway plugin to use internal certificates
73+
74+
When you attempt to connect to a Coder deployment that uses internally signed
75+
certificates, you might receive the following error in Gateway:
76+
77+
```console
78+
Failed to configure connection to https://coder.internal.enterprise/: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
79+
```
80+
81+
To resolve this issue, you will need to add Coder's certificate to the Java
82+
trust store present on your local machine as well as to the Coder plugin settings.
83+
84+
1. Add the certificate to the Java trust store:
85+
86+
<div class="tabs">
87+
88+
#### Linux
89+
90+
```none
91+
<Gateway installation directory>/jbr/lib/security/cacerts
92+
```
93+
94+
Use the `keytool` utility that ships with Java:
95+
96+
```shell
97+
keytool -import -alias coder -file <certificate> -keystore /path/to/trust/store
98+
```
99+
100+
#### macOS
101+
102+
```none
103+
<Gateway installation directory>/jbr/lib/security/cacerts
104+
/Library/Application Support/JetBrains/Toolbox/apps/JetBrainsGateway/ch-0/<app-id>/JetBrains Gateway.app/Contents/jbr/Contents/Home/lib/security/cacerts # Path for Toolbox installation
105+
```
106+
107+
Use the `keytool` included in the JetBrains Gateway installation:
108+
109+
```shell
110+
keytool -import -alias coder -file cacert.pem -keystore /Applications/JetBrains\ Gateway.app/Contents/jbr/Contents/Home/lib/security/cacerts
111+
```
112+
113+
#### Windows
114+
115+
```none
116+
C:\Program Files (x86)\<Gateway installation directory>\jre\lib\security\cacerts\%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\security\cacerts # Path for Toolbox installation
117+
```
118+
119+
Use the `keytool` included in the JetBrains Gateway installation:
120+
121+
```powershell
122+
& 'C:\Program Files\JetBrains\JetBrains Gateway <version>/jbr/bin/keytool.exe' 'C:\Program Files\JetBrains\JetBrains Gateway <version>/jre/lib/security/cacerts' -import -alias coder -file <cert>
123+
124+
# command for Toolbox installation
125+
& '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\apps\Gateway\ch-0\<VERSION>\jbr\bin\keytool.exe' '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\security\cacerts' -import -alias coder -file <cert>
126+
```
127+
128+
</div>
129+
130+
1. In JetBrains, go to **Settings** > **Tools** > **Coder**.
131+
132+
1. Paste the path to the certificate in **CA Path**.
133+
134+
## Manually Configuring A JetBrains Gateway Connection
135+
136+
This is in lieu of using Coder's Gateway plugin which automatically performs these steps.
137+
138+
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html).
139+
140+
1. [Configure the `coder` CLI](../index.md#configure-ssh).
141+
142+
1. Open Gateway, make sure **SSH** is selected under **Remote Development**.
143+
144+
1. Click **New Connection**:
145+
146+
![Gateway Home](../../../../images/gateway/gateway-home.png)
147+
148+
1. In the resulting dialog, click the gear icon to the right of **Connection**:
149+
150+
![Gateway New Connection](../../../../images/gateway/gateway-new-connection.png)
151+
152+
1. Click <kbd>+</kbd> to add a new SSH connection:
153+
154+
![Gateway Add Connection](../../../../images/gateway/gateway-add-ssh-configuration.png)
155+
156+
1. For the Host, enter `coder.<workspace name>`
157+
158+
1. For the Port, enter `22` (this is ignored by Coder)
159+
160+
1. For the Username, enter your workspace username.
161+
162+
1. For the Authentication Type, select **OpenSSH config and authentication
163+
agent**.
164+
165+
1. Make sure the checkbox for **Parse config file ~/.ssh/config** is checked.
166+
167+
1. Click **Test Connection** to validate these settings.
168+
169+
1. Click **OK**:
170+
171+
![Gateway SSH Configuration](../../../../images/gateway/gateway-create-ssh-configuration.png)
172+
173+
1. Select the connection you just added:
174+
175+
![Gateway Welcome](../../../../images/gateway/gateway-welcome.png)
176+
177+
1. Click **Check Connection and Continue**:
178+
179+
![Gateway Continue](../../../../images/gateway/gateway-continue.png)
180+
181+
1. Select the JetBrains IDE for your project and the project directory. SSH into
182+
your server to create a directory or check out code if you haven't already.
183+
184+
![Gateway Choose IDE](../../../../images/gateway/gateway-choose-ide.png)
185+
186+
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`
187+
188+
1. Click **Download and Start IDE** to connect.
189+
190+
![Gateway IDE Opened](../../../../images/gateway/gateway-intellij-opened.png)
191+
192+
## Using an existing JetBrains installation in the workspace
193+
194+
For JetBrains IDEs, you can use an existing installation in the workspace.
195+
Please ask your administrator to install the JetBrains Gateway backend in the workspace by following the [preinstall guide](../../../admin/templates/extending-templates/jetbrains-preinstall.md).

0 commit comments

Comments
 (0)