Skip to content

Commit 0f2f539

Browse files
committed
docs: add offline gateway configuration steps
1 parent f149db6 commit 0f2f539

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

docs/ides/gateway.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,89 @@ In networks that restrict access to the internet, you will need to leverage the
188188
JetBrains Client Installer to download and save the IDE clients locally. Please
189189
see the
190190
[JetBrains documentation for more information](https://www.jetbrains.com/help/idea/fully-offline-mode.html).
191+
192+
### Configuration Steps
193+
194+
The Coder team built a POC of the JetBrains Gateway Offline Mode solution. Here are
195+
the steps we took (and "gotchas"):
196+
197+
### 1. Deploy the server and install the Client Downloader
198+
199+
We deployed a simple Ubuntu VM and installed the JetBrains Client Downloader binary. Note
200+
that the server must be a Linux-based distribution.
201+
202+
```shell
203+
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
204+
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
205+
```
206+
207+
### 2. Install backends and clients
208+
209+
JetBrains Gateway requires both a backend to be installed on the remote host (your Coder workspace)
210+
and a client to be installed on your local machine. You can host both on the server
211+
in this example.
212+
213+
See here for the full [JetBrains product list and builds](https://data.services.jetbrains.com/products).
214+
Below the full list of supported `--platforms-filter` values:
215+
216+
```console
217+
windows-x64, windows-aarch64, linux-x64, linux-aarch64, osx-x64, osx-aarch64
218+
```
219+
220+
To install both backends and clients, you will need to run two commands.
221+
222+
**Backends**
223+
224+
```shell
225+
./jetbrains-clients-downloader-linux-x86_64-1867/bin4/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64 --download-backends ~/backends
226+
```
227+
228+
**Clients**
229+
230+
This is the same command as above, with the `--download-backends` flag removed.
231+
232+
```shell
233+
./jetbrains-clients-downloader-linux-x86_64-1867/bin4/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64 ~/clients
234+
```
235+
236+
We now have both clients and backends installed in
237+
238+
### 3. Install a web server
239+
240+
You will need to run a web server in order to serve requests to the backend and client
241+
files. We installed `nginx` and setup an FQDN and routed all requests to `/`. See below:
242+
243+
```console
244+
server {
245+
listen 80 default_server;
246+
listen [::]:80 default_server;
247+
248+
root /var/www/html;
249+
250+
index index.html index.htm index.nginx-debian.html;
251+
252+
server_name _;
253+
254+
location / {
255+
root /home/ubuntu;
256+
}
257+
}
258+
```
259+
260+
Then, configure your DNS entry to point to the IP address of the server. For the
261+
purposes of the POC, we did not configure TLS, although that is a supported option.
262+
263+
### 4. Setup SSH connection with JetBrains Gateway
264+
265+
With the server now configured, you can now configure your local machine to use
266+
Gateway. Here is the documentation to [setup SSH config via the Coder CLI](../ides.md#ssh-configuration).
267+
On the Gateway side, follow our guide here until step 16.
268+
269+
Instead of downloading from jetbrains.com, we will point Gateway to our server endpoint.
270+
Select `Installation options...` and select `Use download link`. Note that the URL
271+
must explicitly reference the archive file:
272+
273+
![Offline Gateway](../images/gateway/offline-gateway.png)
274+
275+
Click `Download IDE and Connect`. Gateway should now download the backend and clients
276+
from the server into your remote workspace and local machine, respectively.
126 KB
Loading

0 commit comments

Comments
 (0)