Skip to content

Commit b5e8007

Browse files
committed
move JetBrains offline steps to separate doc; update links
1 parent 74a5624 commit b5e8007

File tree

7 files changed

+170
-164
lines changed

7 files changed

+170
-164
lines changed

docs/changelogs/v2.1.5.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<!-- markdown-link-check-disable -->
5555

5656
- Add
57-
[JetBrains Gateway Offline Mode](https://coder.com/docs/user-guides/workspace-access/jetbrains.md#jetbrains-gateway-in-an-offline-environment)
57+
[JetBrains Gateway Offline Mode](https://coder.com/docs/user-guides/workspace-access/jetbrains/jetbrains-offline.md)
5858
config steps (#9388) (@ericpaulsen)
5959
<!-- markdown-link-check-enable -->
6060
- Describe

docs/install/offline.md

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

251251
Gateway, JetBrains' remote development product that works with Coder,
252-
[has documented offline deployment steps.](../user-guides/workspace-access/jetbrains.md#jetbrains-gateway-in-an-offline-environment)
252+
[has documented offline deployment steps.](../user-guides/workspace-access/jetbrains/jetbrains-offline.md)
253253

254254
## Microsoft VS Code Remote - SSH
255255

docs/manifest.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,14 @@
124124
{
125125
"title": "JetBrains IDEs",
126126
"description": "Use JetBrains IDEs with Gateway",
127-
"path": "./user-guides/workspace-access/jetbrains.md"
127+
"path": "./user-guides/workspace-access/jetbrains/index.md",
128+
"children": [
129+
{
130+
"title": "JetBrains Gateway in an offline environment",
131+
"description": "Use JetBrains Gateway in an offline environment",
132+
"path": "./user-guides/workspace-access/jetbrains/jetbrains-offline.md"
133+
}
134+
]
128135
},
129136
{
130137
"title": "Remote Desktop",

docs/user-guides/workspace-access/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ IDEs are supported for remote development:
8686
- Rider
8787
- RubyMine
8888
- WebStorm
89-
- [JetBrains Fleet](./jetbrains.md#jetbrains-fleet)
89+
- [JetBrains Fleet](./jetbrains/index.md#jetbrains-fleet)
9090

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

9494
## code-server
9595

docs/user-guides/workspace-access/jetbrains.md renamed to docs/user-guides/workspace-access/jetbrains/index.md

Lines changed: 0 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -223,163 +223,6 @@ cd /opt/idea/bin
223223
[Here is the JetBrains article](https://www.jetbrains.com/help/idea/remote-development-troubleshooting.html#setup:~:text=Can%20I%20point%20Remote%20Development%20to%20an%20existing%20IDE%20on%20my%20remote%20server%3F%20Is%20it%20possible%20to%20install%20IDE%20manually%3F)
224224
explaining this IDE specification.
225225

226-
## JetBrains Gateway in an offline environment
227-
228-
In networks that restrict access to the internet, you will need to leverage the
229-
JetBrains Client Installer to download and save the IDE clients locally. Please
230-
see the
231-
[JetBrains documentation for more information](https://www.jetbrains.com/help/idea/fully-offline-mode.html).
232-
233-
### Configuration Steps
234-
235-
The Coder team built a POC of the JetBrains Gateway Offline Mode solution. Here
236-
are the steps we took (and "gotchas"):
237-
238-
### 1. Deploy the server and install the Client Downloader
239-
240-
We deployed a simple Ubuntu VM and installed the JetBrains Client Downloader
241-
binary. Note that the server must be a Linux-based distribution.
242-
243-
```shell
244-
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
245-
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
246-
```
247-
248-
### 2. Install backends and clients
249-
250-
JetBrains Gateway requires both a backend to be installed on the remote host
251-
(your Coder workspace) and a client to be installed on your local machine. You
252-
can host both on the server in this example.
253-
254-
See here for the full
255-
[JetBrains product list and builds](https://data.services.jetbrains.com/products).
256-
Below is the full list of supported `--platforms-filter` values:
257-
258-
```console
259-
windows-x64, windows-aarch64, linux-x64, linux-aarch64, osx-x64, osx-aarch64
260-
```
261-
262-
To install both backends and clients, you will need to run two commands.
263-
264-
**Backends**
265-
266-
```shell
267-
mkdir ~/backends
268-
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64,windows-x64,osx-x64 --download-backends ~/backends
269-
```
270-
271-
**Clients**
272-
273-
This is the same command as above, with the `--download-backends` flag removed.
274-
275-
```shell
276-
mkdir ~/clients
277-
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64,windows-x64,osx-x64 ~/clients
278-
```
279-
280-
We now have both clients and backends installed.
281-
282-
### 3. Install a web server
283-
284-
You will need to run a web server in order to serve requests to the backend and
285-
client files. We installed `nginx` and setup an FQDN and routed all requests to
286-
`/`. See below:
287-
288-
```console
289-
server {
290-
listen 80 default_server;
291-
listen [::]:80 default_server;
292-
293-
root /var/www/html;
294-
295-
index index.html index.htm index.nginx-debian.html;
296-
297-
server_name _;
298-
299-
location / {
300-
root /home/ubuntu;
301-
}
302-
}
303-
```
304-
305-
Then, configure your DNS entry to point to the IP address of the server. For the
306-
purposes of the POC, we did not configure TLS, although that is a supported
307-
option.
308-
309-
### 4. Add Client Files
310-
311-
You will need to add the following files on your local machine in order for
312-
Gateway to pull the backend and client from the server.
313-
314-
```shell
315-
$ cat productsInfoUrl # a path to products.json that was generated by the backend's downloader (it could be http://, https://, or file://)
316-
317-
https://internal.site/backends/<PRODUCT_CODE>/products.json
318-
319-
$ cat clientDownloadUrl # a path for clients that you got from the clients' downloader (it could be http://, https://, or file://)
320-
321-
https://internal.site/clients/
322-
323-
$ cat jreDownloadUrl # a path for JBR that you got from the clients' downloader (it could be http://, https://, or file://)
324-
325-
https://internal.site/jre/
326-
327-
$ cat pgpPublicKeyUrl # a URL to the KEYS file that was downloaded with the clients builds.
328-
329-
https://internal.site/KEYS
330-
```
331-
332-
The location of these files will depend upon your local operating system:
333-
334-
**macOS**
335-
336-
```console
337-
# User-specific settings
338-
/Users/UserName/Library/Application Support/JetBrains/RemoteDev
339-
# System-wide settings
340-
/Library/Application Support/JetBrains/RemoteDev/
341-
```
342-
343-
**Linux**
344-
345-
```console
346-
# User-specific settings
347-
$HOME/.config/JetBrains/RemoteDev
348-
# System-wide settings
349-
/etc/xdg/JetBrains/RemoteDev/
350-
```
351-
352-
**Windows**
353-
354-
```console
355-
# User-specific settings
356-
HKEY_CURRENT_USER registry
357-
# System-wide settings
358-
HKEY_LOCAL_MACHINE registry
359-
```
360-
361-
Additionally, create a string for each setting with its appropriate value in
362-
`SOFTWARE\JetBrains\RemoteDev`:
363-
364-
![Alt text](../../images/gateway/jetbrains-offline-windows.png)
365-
366-
### 5. Setup SSH connection with JetBrains Gateway
367-
368-
With the server now configured, you can now configure your local machine to use
369-
Gateway. Here is the documentation to
370-
[setup SSH config via the Coder CLI](../../user-guides/workspace-access/index.md#configure-ssh).
371-
On the Gateway side, follow our guide here until step 16.
372-
373-
Instead of downloading from jetbrains.com, we will point Gateway to our server
374-
endpoint. Select `Installation options...` and select `Use download link`. Note
375-
that the URL must explicitly reference the archive file:
376-
377-
![Offline Gateway](../../images/gateway/offline-gateway.png)
378-
379-
Click `Download IDE and Connect`. Gateway should now download the backend and
380-
clients from the server into your remote workspace and local machine,
381-
respectively.
382-
383226
## JetBrains Fleet
384227

385228
JetBrains Fleet is a code editor and lightweight IDE designed to support various
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# JetBrains Gateway in an offline environment
2+
3+
In networks that restrict access to the internet, you will need to leverage the
4+
JetBrains Client Installer to download and save the IDE clients locally. Please
5+
see the
6+
[JetBrains documentation for more information](https://www.jetbrains.com/help/idea/fully-offline-mode.html).
7+
8+
## Configuration Steps
9+
10+
The Coder team built a POC of the JetBrains Gateway Offline Mode solution. Here
11+
are the steps we took (and "gotchas"):
12+
13+
## 1. Deploy the server and install the Client Downloader
14+
15+
We deployed a simple Ubuntu VM and installed the JetBrains Client Downloader
16+
binary. Note that the server must be a Linux-based distribution.
17+
18+
```shell
19+
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
20+
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
21+
```
22+
23+
## 2. Install backends and clients
24+
25+
JetBrains Gateway requires both a backend to be installed on the remote host
26+
(your Coder workspace) and a client to be installed on your local machine. You
27+
can host both on the server in this example.
28+
29+
See here for the full
30+
[JetBrains product list and builds](https://data.services.jetbrains.com/products).
31+
Below is the full list of supported `--platforms-filter` values:
32+
33+
```console
34+
windows-x64, windows-aarch64, linux-x64, linux-aarch64, osx-x64, osx-aarch64
35+
```
36+
37+
To install both backends and clients, you will need to run two commands.
38+
39+
**Backends**
40+
41+
```shell
42+
mkdir ~/backends
43+
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64,windows-x64,osx-x64 --download-backends ~/backends
44+
```
45+
46+
**Clients**
47+
48+
This is the same command as above, with the `--download-backends` flag removed.
49+
50+
```shell
51+
mkdir ~/clients
52+
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64,windows-x64,osx-x64 ~/clients
53+
```
54+
55+
We now have both clients and backends installed.
56+
57+
## 3. Install a web server
58+
59+
You will need to run a web server in order to serve requests to the backend and
60+
client files. We installed `nginx` and setup an FQDN and routed all requests to
61+
`/`. See below:
62+
63+
```console
64+
server {
65+
listen 80 default_server;
66+
listen [::]:80 default_server;
67+
68+
root /var/www/html;
69+
70+
index index.html index.htm index.nginx-debian.html;
71+
72+
server_name _;
73+
74+
location / {
75+
root /home/ubuntu;
76+
}
77+
}
78+
```
79+
80+
Then, configure your DNS entry to point to the IP address of the server. For the
81+
purposes of the POC, we did not configure TLS, although that is a supported
82+
option.
83+
84+
## 4. Add Client Files
85+
86+
You will need to add the following files on your local machine in order for
87+
Gateway to pull the backend and client from the server.
88+
89+
```shell
90+
$ cat productsInfoUrl # a path to products.json that was generated by the backend's downloader (it could be http://, https://, or file://)
91+
92+
https://internal.site/backends/<PRODUCT_CODE>/products.json
93+
94+
$ cat clientDownloadUrl # a path for clients that you got from the clients' downloader (it could be http://, https://, or file://)
95+
96+
https://internal.site/clients/
97+
98+
$ cat jreDownloadUrl # a path for JBR that you got from the clients' downloader (it could be http://, https://, or file://)
99+
100+
https://internal.site/jre/
101+
102+
$ cat pgpPublicKeyUrl # a URL to the KEYS file that was downloaded with the clients builds.
103+
104+
https://internal.site/KEYS
105+
```
106+
107+
The location of these files will depend upon your local operating system:
108+
109+
**macOS**
110+
111+
```console
112+
# User-specific settings
113+
/Users/UserName/Library/Application Support/JetBrains/RemoteDev
114+
# System-wide settings
115+
/Library/Application Support/JetBrains/RemoteDev/
116+
```
117+
118+
**Linux**
119+
120+
```console
121+
# User-specific settings
122+
$HOME/.config/JetBrains/RemoteDev
123+
# System-wide settings
124+
/etc/xdg/JetBrains/RemoteDev/
125+
```
126+
127+
**Windows**
128+
129+
```console
130+
# User-specific settings
131+
HKEY_CURRENT_USER registry
132+
# System-wide settings
133+
HKEY_LOCAL_MACHINE registry
134+
```
135+
136+
Additionally, create a string for each setting with its appropriate value in
137+
`SOFTWARE\JetBrains\RemoteDev`:
138+
139+
![Alt text](../../images/gateway/jetbrains-offline-windows.png)
140+
141+
## 5. Setup SSH connection with JetBrains Gateway
142+
143+
With the server now configured, you can now configure your local machine to use
144+
Gateway. Here is the documentation to
145+
[setup SSH config via the Coder CLI](../../user-guides/workspace-access/index.md#configure-ssh).
146+
On the Gateway side, follow our guide here until step 16.
147+
148+
Instead of downloading from jetbrains.com, we will point Gateway to our server
149+
endpoint. Select `Installation options...` and select `Use download link`. Note
150+
that the URL must explicitly reference the archive file:
151+
152+
![Offline Gateway](../../images/gateway/offline-gateway.png)
153+
154+
Click `Download IDE and Connect`. Gateway should now download the backend and
155+
clients from the server into your remote workspace and local machine,
156+
respectively.

docs/user-guides/workspace-lifecycle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ contain some computational resource to run the Coder agent process.
5555

5656
The provisioned workspace's computational resources start the agent process,
5757
which opens connections to your workspace via SSH, the terminal, and IDES such
58-
as [JetBrains](./workspace-access/jetbrains.md) or
58+
as [JetBrains](./workspace-access/jetbrains/index.md) or
5959
[VSCode](./workspace-access/vscode.md).
6060

6161
Once started, the Coder agent is responsible for running your workspace startup

0 commit comments

Comments
 (0)