@@ -188,3 +188,89 @@ In networks that restrict access to the internet, you will need to leverage the
188
188
JetBrains Client Installer to download and save the IDE clients locally. Please
189
189
see the
190
190
[ 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.
0 commit comments