mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
docs: add steps to pre-install JetBrains IDE backend (#15962)
closes #13207 [preview](https://coder.com/docs/@13207-preinstall-jetbrains/user-guides/workspace-access/jetbrains) --------- Co-authored-by: M Atif Ali <atif@coder.com> Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
This commit is contained in:
119
docs/admin/templates/extending-templates/jetbrains-gateway.md
Normal file
119
docs/admin/templates/extending-templates/jetbrains-gateway.md
Normal file
@ -0,0 +1,119 @@
|
||||
# Pre-install JetBrains Gateway in a template
|
||||
|
||||
For a faster JetBrains Gateway experience, 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](../../../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md).
|
||||
|
||||
## Install the Client Downloader
|
||||
|
||||
Install the JetBrains Client Downloader binary:
|
||||
|
||||
```shell
|
||||
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
|
||||
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
rm jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
```
|
||||
|
||||
## Install Gateway backend
|
||||
|
||||
```shell
|
||||
mkdir ~/JetBrains
|
||||
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64 --download-backends ~/JetBrains
|
||||
```
|
||||
|
||||
For example, to install the build `243.26053.27` of IntelliJ IDEA:
|
||||
|
||||
```shell
|
||||
./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 -xzvf ~/JetBrains/backends/IU/*.tar.gz -C ~/JetBrains/backends/IU
|
||||
rm -rf ~/JetBrains/backends/IU/*.tar.gz
|
||||
```
|
||||
|
||||
## Register the Gateway backend
|
||||
|
||||
Add the following command to your template's `startup_script`:
|
||||
|
||||
```shell
|
||||
~/JetBrains/backends/IU/ideaIU-243.26053.27/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:
|
||||
|
||||
```tf
|
||||
module "jetbrains_gateway" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||
version = "1.0.28"
|
||||
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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "coder_agent" "main" {
|
||||
...
|
||||
startup_script = <<-EOF
|
||||
~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
|
||||
EOF
|
||||
}
|
||||
```
|
||||
|
||||
## Dockerfile example
|
||||
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Pre-install the Client IDEs](../../../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
|
@ -56,7 +56,7 @@
|
||||
<!-- markdown-link-check-disable -->
|
||||
|
||||
- Add
|
||||
[JetBrains Gateway Offline Mode](https://coder.com/docs/user-guides/workspace-access/jetbrains.md#jetbrains-gateway-in-an-offline-environment)
|
||||
[JetBrains Gateway Offline Mode](https://coder.com/docs/user-guides/workspace-access/jetbrains/jetbrains-airgapped.md)
|
||||
config steps (#9388) (@ericpaulsen)
|
||||
<!-- markdown-link-check-enable -->
|
||||
- Describe
|
||||
|
@ -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.md#jetbrains-gateway-in-an-offline-environment)
|
||||
[has documented offline deployment steps.](../user-guides/workspace-access/jetbrains/jetbrains-airgapped.md)
|
||||
|
||||
## Microsoft VS Code Remote - SSH
|
||||
|
||||
|
@ -137,7 +137,14 @@
|
||||
{
|
||||
"title": "JetBrains IDEs",
|
||||
"description": "Use JetBrains IDEs with Gateway",
|
||||
"path": "./user-guides/workspace-access/jetbrains.md"
|
||||
"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": "Remote Desktop",
|
||||
@ -449,6 +456,11 @@
|
||||
"description": "Add and configure Web IDEs in your templates as coder apps",
|
||||
"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": "Docker in Workspaces",
|
||||
"description": "Use Docker in your workspaces",
|
||||
|
@ -105,10 +105,10 @@ IDEs are supported for remote development:
|
||||
- Rider
|
||||
- RubyMine
|
||||
- WebStorm
|
||||
- [JetBrains Fleet](./jetbrains.md#jetbrains-fleet)
|
||||
- [JetBrains Fleet](./jetbrains/index.md#jetbrains-fleet)
|
||||
|
||||
Read our [docs on JetBrains Gateway](./jetbrains.md) for more information on
|
||||
connecting your JetBrains IDEs.
|
||||
Read our [docs on JetBrains Gateway](./jetbrains/index.md) for more information
|
||||
on connecting your JetBrains IDEs.
|
||||
|
||||
## code-server
|
||||
|
||||
|
@ -1,411 +0,0 @@
|
||||
# JetBrains IDEs
|
||||
|
||||
We support JetBrains IDEs using
|
||||
[Gateway](https://www.jetbrains.com/remote-development/gateway/). The following
|
||||
IDEs are supported for remote development:
|
||||
|
||||
- IntelliJ IDEA
|
||||
- CLion
|
||||
- GoLand
|
||||
- PyCharm
|
||||
- Rider
|
||||
- RubyMine
|
||||
- WebStorm
|
||||
- PhpStorm
|
||||
- RustRover
|
||||
- [JetBrains Fleet](#jetbrains-fleet)
|
||||
|
||||
## JetBrains Gateway
|
||||
|
||||
JetBrains Gateway is a compact desktop app that allows you to work remotely with
|
||||
a JetBrains IDE without even downloading one. Visit the
|
||||
[JetBrains website](https://www.jetbrains.com/remote-development/gateway/) to
|
||||
learn more about Gateway.
|
||||
|
||||
Gateway can connect to a Coder workspace by using Coder's Gateway plugin or
|
||||
manually setting up an SSH connection.
|
||||
|
||||
### How to use the plugin
|
||||
|
||||
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html)
|
||||
and open the application.
|
||||
1. Under **Install More Providers**, find the Coder icon and click **Install**
|
||||
to install the Coder plugin.
|
||||
1. After Gateway installs the plugin, it will appear in the **Run the IDE
|
||||
Remotely** section.
|
||||
|
||||
Click **Connect to Coder** to launch the plugin:
|
||||
|
||||

|
||||
|
||||
1. Enter your Coder deployment's
|
||||
[Access Url](../../admin/setup/index.md#access-url) and click **Connect**.
|
||||
|
||||
Gateway opens your Coder deployment's `cli-auth` page with a session token.
|
||||
Click the copy button, paste the session token in the Gateway **Session
|
||||
Token** window, then click **OK**:
|
||||
|
||||

|
||||
|
||||
1. To create a new workspace:
|
||||
|
||||
Click the <kbd>+</kbd> icon to open a browser and go to the templates page in
|
||||
your Coder deployment to create a workspace.
|
||||
|
||||
1. If a workspace already exists but is stopped, select the workspace from the
|
||||
list, then click the green arrow to start the workspace.
|
||||
|
||||
1. When the workspace status is **Running**, click **Select IDE and Project**:
|
||||
|
||||

|
||||
|
||||
1. Select the JetBrains IDE for your project and the project directory then
|
||||
click **Start IDE and connect**:
|
||||
|
||||

|
||||
|
||||
Gateway connects using the IDE you selected:
|
||||
|
||||

|
||||
|
||||
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`
|
||||
|
||||
If you experience any issues, please
|
||||
[create a GitHub issue](https://github.com/coder/coder/issues) or share in
|
||||
[our Discord channel](https://discord.gg/coder).
|
||||
|
||||
### Update a Coder plugin version
|
||||
|
||||
1. Click the gear icon at the bottom left of the Gateway home screen and then
|
||||
"Settings"
|
||||
|
||||
1. In the **Marketplace** tab within Plugins, enter Coder and if a newer plugin
|
||||
release is available, click **Update** then **OK**:
|
||||
|
||||

|
||||
|
||||
### Configuring the Gateway plugin to use internal certificates
|
||||
|
||||
When attempting to connect to a Coder deployment that uses internally signed
|
||||
certificates, you may receive the following error in Gateway:
|
||||
|
||||
```console
|
||||
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
|
||||
```
|
||||
|
||||
To resolve this issue, you will need to add Coder's certificate to the Java
|
||||
trust store present on your local machine as well as to the Coder plugin settings.
|
||||
|
||||
1. Add the certificate to the Java trust store:
|
||||
|
||||
<div class="tabs">
|
||||
|
||||
#### Linux
|
||||
|
||||
```none
|
||||
<Gateway installation directory>/jbr/lib/security/cacerts
|
||||
```
|
||||
|
||||
Use the `keytool` utility that ships with Java:
|
||||
|
||||
```shell
|
||||
keytool -import -alias coder -file <certificate> -keystore /path/to/trust/store
|
||||
```
|
||||
|
||||
#### macOS
|
||||
|
||||
```none
|
||||
<Gateway installation directory>/jbr/lib/security/cacerts
|
||||
/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
|
||||
```
|
||||
|
||||
Use the `keytool` included in the JetBrains Gateway installation:
|
||||
|
||||
```shell
|
||||
keytool -import -alias coder -file cacert.pem -keystore /Applications/JetBrains\ Gateway.app/Contents/jbr/Contents/Home/lib/security/cacerts
|
||||
```
|
||||
|
||||
#### Windows
|
||||
|
||||
```none
|
||||
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
|
||||
```
|
||||
|
||||
Use the `keytool` included in the JetBrains Gateway installation:
|
||||
|
||||
```powershell
|
||||
& '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>
|
||||
|
||||
# command for Toolbox installation
|
||||
& '%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>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
1. In JetBrains, go to **Settings** > **Tools** > **Coder**.
|
||||
|
||||
1. Paste the path to the certificate in **CA Path**.
|
||||
|
||||
## Manually Configuring A JetBrains Gateway Connection
|
||||
|
||||
This is in lieu of using Coder's Gateway plugin which automatically performs these steps.
|
||||
|
||||
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html).
|
||||
|
||||
1. [Configure the `coder` CLI](../../user-guides/workspace-access/index.md#configure-ssh).
|
||||
|
||||
1. Open Gateway, make sure **SSH** is selected under **Remote Development**.
|
||||
|
||||
1. Click **New Connection**:
|
||||
|
||||

|
||||
|
||||
1. In the resulting dialog, click the gear icon to the right of **Connection**:
|
||||
|
||||

|
||||
|
||||
1. Click <kbd>+</kbd> to add a new SSH connection:
|
||||
|
||||

|
||||
|
||||
1. For the Host, enter `coder.<workspace name>`
|
||||
|
||||
1. For the Port, enter `22` (this is ignored by Coder)
|
||||
|
||||
1. For the Username, enter your workspace username.
|
||||
|
||||
1. For the Authentication Type, select **OpenSSH config and authentication
|
||||
agent**.
|
||||
|
||||
1. Make sure the checkbox for **Parse config file ~/.ssh/config** is checked.
|
||||
|
||||
1. Click **Test Connection** to validate these settings.
|
||||
|
||||
1. Click **OK**:
|
||||
|
||||

|
||||
|
||||
1. Select the connection you just added:
|
||||
|
||||

|
||||
|
||||
1. Click **Check Connection and Continue**:
|
||||
|
||||

|
||||
|
||||
1. Select the JetBrains IDE for your project and the project directory. SSH into
|
||||
your server to create a directory or check out code if you haven't already.
|
||||
|
||||

|
||||
|
||||
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`
|
||||
|
||||
1. Click **Download and Start IDE** to connect.
|
||||
|
||||

|
||||
|
||||
## Using an existing JetBrains installation in the workspace
|
||||
|
||||
If you would like to use an existing JetBrains IDE in a Coder workspace (or you
|
||||
are air-gapped, and cannot reach jetbrains.com), run the following script in the
|
||||
JetBrains IDE directory to point the default Gateway directory to the IDE
|
||||
directory. This step must be done before configuring Gateway.
|
||||
|
||||
```shell
|
||||
cd /opt/idea/bin
|
||||
./remote-dev-server.sh registerBackendLocationForGateway
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Gateway only works with paid versions of JetBrains IDEs so the script will not
|
||||
> be located in the `bin` directory of JetBrains Community editions.
|
||||
|
||||
[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)
|
||||
explaining this IDE specification.
|
||||
|
||||
## JetBrains Gateway in an offline 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
|
||||
see the
|
||||
[JetBrains documentation for more information](https://www.jetbrains.com/help/idea/fully-offline-mode.html).
|
||||
|
||||
### Configuration Steps
|
||||
|
||||
The Coder team built a POC of the JetBrains Gateway Offline Mode solution. Here
|
||||
are the steps we took (and "gotchas"):
|
||||
|
||||
### 1. Deploy the server and install the Client Downloader
|
||||
|
||||
We deployed a simple Ubuntu VM and installed the JetBrains Client Downloader
|
||||
binary. Note that the server must be a Linux-based distribution.
|
||||
|
||||
```shell
|
||||
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
|
||||
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
```
|
||||
|
||||
### 2. Install backends and clients
|
||||
|
||||
JetBrains Gateway requires both a backend to be installed on the remote host
|
||||
(your Coder workspace) and a client to be installed on your local machine. You
|
||||
can host both on the server in this example.
|
||||
|
||||
See here for the full
|
||||
[JetBrains product list and builds](https://data.services.jetbrains.com/products).
|
||||
Below is the full list of supported `--platforms-filter` values:
|
||||
|
||||
```console
|
||||
windows-x64, windows-aarch64, linux-x64, linux-aarch64, osx-x64, osx-aarch64
|
||||
```
|
||||
|
||||
To install both backends and clients, you will need to run two commands.
|
||||
|
||||
#### Backends
|
||||
|
||||
```shell
|
||||
mkdir ~/backends
|
||||
./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
|
||||
```
|
||||
|
||||
#### Clients
|
||||
|
||||
This is the same command as above, with the `--download-backends` flag removed.
|
||||
|
||||
```shell
|
||||
mkdir ~/clients
|
||||
./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
|
||||
```
|
||||
|
||||
We now have both clients and backends installed.
|
||||
|
||||
### 3. Install a web server
|
||||
|
||||
You will need to run a web server in order to serve requests to the backend and
|
||||
client files. We installed `nginx` and setup an FQDN and routed all requests to
|
||||
`/`. See below:
|
||||
|
||||
```console
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
root /var/www/html;
|
||||
|
||||
index index.html index.htm index.nginx-debian.html;
|
||||
|
||||
server_name _;
|
||||
|
||||
location / {
|
||||
root /home/ubuntu;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then, configure your DNS entry to point to the IP address of the server. For the
|
||||
purposes of the POC, we did not configure TLS, although that is a supported
|
||||
option.
|
||||
|
||||
### 4. Add Client Files
|
||||
|
||||
You will need to add the following files on your local machine in order for
|
||||
Gateway to pull the backend and client from the server.
|
||||
|
||||
```shell
|
||||
$ cat productsInfoUrl # a path to products.json that was generated by the backend's downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/backends/<PRODUCT_CODE>/products.json
|
||||
|
||||
$ cat clientDownloadUrl # a path for clients that you got from the clients' downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/clients/
|
||||
|
||||
$ cat jreDownloadUrl # a path for JBR that you got from the clients' downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/jre/
|
||||
|
||||
$ cat pgpPublicKeyUrl # a URL to the KEYS file that was downloaded with the clients builds.
|
||||
|
||||
https://internal.site/KEYS
|
||||
```
|
||||
|
||||
The location of these files will depend upon your local operating system:
|
||||
|
||||
#### macOS
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
/Users/UserName/Library/Application Support/JetBrains/RemoteDev
|
||||
# System-wide settings
|
||||
/Library/Application Support/JetBrains/RemoteDev/
|
||||
```
|
||||
|
||||
#### Linux
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
$HOME/.config/JetBrains/RemoteDev
|
||||
# System-wide settings
|
||||
/etc/xdg/JetBrains/RemoteDev/
|
||||
```
|
||||
|
||||
#### Windows
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
HKEY_CURRENT_USER registry
|
||||
# System-wide settings
|
||||
HKEY_LOCAL_MACHINE registry
|
||||
```
|
||||
|
||||
Additionally, create a string for each setting with its appropriate value in
|
||||
`SOFTWARE\JetBrains\RemoteDev`:
|
||||
|
||||

|
||||
|
||||
### 5. Setup SSH connection with JetBrains Gateway
|
||||
|
||||
With the server now configured, you can now configure your local machine to use
|
||||
Gateway. Here is the documentation to
|
||||
[setup SSH config via the Coder CLI](../../user-guides/workspace-access/index.md#configure-ssh).
|
||||
On the Gateway side, follow our guide here until step 16.
|
||||
|
||||
Instead of downloading from jetbrains.com, we will point Gateway to our server
|
||||
endpoint. Select `Installation options...` and select `Use download link`. Note
|
||||
that the URL must explicitly reference the archive file:
|
||||
|
||||

|
||||
|
||||
Click `Download IDE and Connect`. Gateway should now download the backend and
|
||||
clients from the server into your remote workspace and local machine,
|
||||
respectively.
|
||||
|
||||
## JetBrains Fleet
|
||||
|
||||
JetBrains Fleet is a code editor and lightweight IDE designed to support various
|
||||
programming languages and development environments.
|
||||
|
||||
[See JetBrains' website to learn about Fleet](https://www.jetbrains.com/fleet/)
|
||||
|
||||
Fleet can connect to a Coder workspace by following these steps.
|
||||
|
||||
1. [Install Fleet](https://www.jetbrains.com/fleet/download)
|
||||
2. Install Coder CLI
|
||||
|
||||
```shell
|
||||
curl -L https://coder.com/install.sh | sh
|
||||
```
|
||||
|
||||
3. Login and configure Coder SSH.
|
||||
|
||||
```shell
|
||||
coder login coder.example.com
|
||||
coder config-ssh
|
||||
```
|
||||
|
||||
4. Connect via SSH with the Host set to `coder.workspace-name`
|
||||

|
||||
|
||||
If you experience any issues, please
|
||||
[create a GitHub issue](https://github.com/coder/coder/issues) or share in
|
||||
[our Discord channel](https://discord.gg/coder).
|
250
docs/user-guides/workspace-access/jetbrains/index.md
Normal file
250
docs/user-guides/workspace-access/jetbrains/index.md
Normal file
@ -0,0 +1,250 @@
|
||||
# JetBrains IDEs
|
||||
|
||||
Coder supports JetBrains IDEs using
|
||||
[Gateway](https://www.jetbrains.com/remote-development/gateway/). The following
|
||||
IDEs are supported for remote development:
|
||||
|
||||
- IntelliJ IDEA
|
||||
- CLion
|
||||
- GoLand
|
||||
- PyCharm
|
||||
- Rider
|
||||
- RubyMine
|
||||
- WebStorm
|
||||
- PhpStorm
|
||||
- RustRover
|
||||
- [JetBrains Fleet](#jetbrains-fleet)
|
||||
|
||||
## JetBrains Gateway
|
||||
|
||||
JetBrains Gateway is a compact desktop app that allows you to work remotely with
|
||||
a JetBrains IDE without downloading one. Visit the
|
||||
[JetBrains Gateway website](https://www.jetbrains.com/remote-development/gateway/)
|
||||
to learn more about Gateway.
|
||||
|
||||
Gateway can connect to a Coder workspace using Coder's Gateway plugin or through a
|
||||
manually configured SSH connection.
|
||||
|
||||
You can [pre-install the JetBrains Gateway backend](../../../admin/templates/extending-templates/jetbrains-gateway.md) in a template to help JetBrains load faster in workspaces.
|
||||
|
||||
### How to use the plugin
|
||||
|
||||
> If you experience problems, please
|
||||
> [create a GitHub issue](https://github.com/coder/coder/issues) or share in
|
||||
> [our Discord channel](https://discord.gg/coder).
|
||||
|
||||
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html)
|
||||
and open the application.
|
||||
1. Under **Install More Providers**, find the Coder icon and click **Install**
|
||||
to install the Coder plugin.
|
||||
1. After Gateway installs the plugin, it will appear in the **Run the IDE
|
||||
Remotely** section.
|
||||
|
||||
Click **Connect to Coder** to launch the plugin:
|
||||
|
||||

|
||||
|
||||
1. Enter your Coder deployment's
|
||||
[Access Url](../../../admin/setup/index.md#access-url) and click **Connect**.
|
||||
|
||||
Gateway opens your Coder deployment's `cli-auth` page with a session token.
|
||||
Click the copy button, paste the session token in the Gateway **Session
|
||||
Token** window, then click **OK**:
|
||||
|
||||

|
||||
|
||||
1. To create a new workspace:
|
||||
|
||||
Click the <kbd>+</kbd> icon to open a browser and go to the templates page in
|
||||
your Coder deployment to create a workspace.
|
||||
|
||||
1. If a workspace already exists but is stopped, select the workspace from the
|
||||
list, then click the green arrow to start the workspace.
|
||||
|
||||
1. When the workspace status is **Running**, click **Select IDE and Project**:
|
||||
|
||||

|
||||
|
||||
1. Select the JetBrains IDE for your project and the project directory then
|
||||
click **Start IDE and connect**:
|
||||
|
||||

|
||||
|
||||
Gateway connects using the IDE you selected:
|
||||
|
||||

|
||||
|
||||
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`.
|
||||
|
||||
### Update a Coder plugin version
|
||||
|
||||
1. Click the gear icon at the bottom left of the Gateway home screen, then
|
||||
**Settings**.
|
||||
|
||||
1. In the **Marketplace** tab within Plugins, enter Coder and if a newer plugin
|
||||
release is available, click **Update** then **OK**:
|
||||
|
||||

|
||||
|
||||
### Configuring the Gateway plugin to use internal certificates
|
||||
|
||||
When you attempt to connect to a Coder deployment that uses internally signed
|
||||
certificates, you might receive the following error in Gateway:
|
||||
|
||||
```console
|
||||
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
|
||||
```
|
||||
|
||||
To resolve this issue, you will need to add Coder's certificate to the Java
|
||||
trust store present on your local machine as well as to the Coder plugin settings.
|
||||
|
||||
1. Add the certificate to the Java trust store:
|
||||
|
||||
<div class="tabs">
|
||||
|
||||
#### Linux
|
||||
|
||||
```none
|
||||
<Gateway installation directory>/jbr/lib/security/cacerts
|
||||
```
|
||||
|
||||
Use the `keytool` utility that ships with Java:
|
||||
|
||||
```shell
|
||||
keytool -import -alias coder -file <certificate> -keystore /path/to/trust/store
|
||||
```
|
||||
|
||||
#### macOS
|
||||
|
||||
```none
|
||||
<Gateway installation directory>/jbr/lib/security/cacerts
|
||||
/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
|
||||
```
|
||||
|
||||
Use the `keytool` included in the JetBrains Gateway installation:
|
||||
|
||||
```shell
|
||||
keytool -import -alias coder -file cacert.pem -keystore /Applications/JetBrains\ Gateway.app/Contents/jbr/Contents/Home/lib/security/cacerts
|
||||
```
|
||||
|
||||
#### Windows
|
||||
|
||||
```none
|
||||
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
|
||||
```
|
||||
|
||||
Use the `keytool` included in the JetBrains Gateway installation:
|
||||
|
||||
```powershell
|
||||
& '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>
|
||||
|
||||
# command for Toolbox installation
|
||||
& '%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>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
1. In JetBrains, go to **Settings** > **Tools** > **Coder**.
|
||||
|
||||
1. Paste the path to the certificate in **CA Path**.
|
||||
|
||||
## Manually Configuring A JetBrains Gateway Connection
|
||||
|
||||
This is in lieu of using Coder's Gateway plugin which automatically performs these steps.
|
||||
|
||||
1. [Install Gateway](https://www.jetbrains.com/help/idea/jetbrains-gateway.html).
|
||||
|
||||
1. [Configure the `coder` CLI](../../../user-guides/workspace-access/index.md#configure-ssh).
|
||||
|
||||
1. Open Gateway, make sure **SSH** is selected under **Remote Development**.
|
||||
|
||||
1. Click **New Connection**:
|
||||
|
||||

|
||||
|
||||
1. In the resulting dialog, click the gear icon to the right of **Connection**:
|
||||
|
||||

|
||||
|
||||
1. Click <kbd>+</kbd> to add a new SSH connection:
|
||||
|
||||

|
||||
|
||||
1. For the Host, enter `coder.<workspace name>`
|
||||
|
||||
1. For the Port, enter `22` (this is ignored by Coder)
|
||||
|
||||
1. For the Username, enter your workspace username.
|
||||
|
||||
1. For the Authentication Type, select **OpenSSH config and authentication
|
||||
agent**.
|
||||
|
||||
1. Make sure the checkbox for **Parse config file ~/.ssh/config** is checked.
|
||||
|
||||
1. Click **Test Connection** to validate these settings.
|
||||
|
||||
1. Click **OK**:
|
||||
|
||||

|
||||
|
||||
1. Select the connection you just added:
|
||||
|
||||

|
||||
|
||||
1. Click **Check Connection and Continue**:
|
||||
|
||||

|
||||
|
||||
1. Select the JetBrains IDE for your project and the project directory. SSH into
|
||||
your server to create a directory or check out code if you haven't already.
|
||||
|
||||

|
||||
|
||||
The JetBrains IDE is remotely installed into `~/.cache/JetBrains/RemoteDev/dist`
|
||||
|
||||
1. Click **Download and Start IDE** to connect.
|
||||
|
||||

|
||||
|
||||
## Using an existing JetBrains installation in the workspace
|
||||
|
||||
For JetBrains IDEs, you can use an existing installation in the workspace.
|
||||
Please ask your administrator to install the JetBrains Gateway backend in the workspace by following the [pre-install guide](../../../admin/templates/extending-templates/jetbrains-gateway.md).
|
||||
|
||||
> [!NOTE]
|
||||
> Gateway only works with paid versions of JetBrains IDEs so the script will not
|
||||
> be located in the `bin` directory of JetBrains Community editions.
|
||||
|
||||
[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)
|
||||
explaining this IDE specification.
|
||||
|
||||
## 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`
|
||||

|
||||
|
||||
If you experience any issues, please
|
||||
[create a GitHub issue](https://github.com/coder/coder/issues) or share in
|
||||
[our Discord channel](https://discord.gg/coder).
|
@ -0,0 +1,164 @@
|
||||
# JetBrains Gateway 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
|
||||
see the
|
||||
[JetBrains documentation for more information](https://www.jetbrains.com/help/idea/fully-offline-mode.html).
|
||||
|
||||
This page is an example that the Coder team used as a proof-of-concept (POC) of the JetBrains Gateway Offline Mode solution.
|
||||
|
||||
We used Ubuntu on a virtual machine to test the steps.
|
||||
If you have a suggestion or encounter an issue, please
|
||||
[file a GitHub issue](https://github.com/coder/coder/issues/new?title=request%28docs%29%3A+jetbrains-airgapped+-+request+title+here%0D%0A&labels=["community","docs"]&body=doc%3A+%5Bjetbrains-airgapped%5D%28https%3A%2F%2Fcoder.com%2Fdocs%2Fuser-guides%2Fworkspace-access%2Fjetbrains%2Fjetbrains-airgapped%29%0D%0A%0D%0Aplease+enter+your+request+here%0D%0A).
|
||||
|
||||
## 1. Deploy the server and install the Client Downloader
|
||||
|
||||
Install the JetBrains Client Downloader binary. Note that the server must be a Linux-based distribution:
|
||||
|
||||
```shell
|
||||
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
|
||||
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
```
|
||||
|
||||
## 2. Install backends and clients
|
||||
|
||||
JetBrains Gateway requires both a backend to be installed on the remote host
|
||||
(your Coder workspace) and a client to be installed on your local machine. You
|
||||
can host both on the server in this example.
|
||||
|
||||
See here for the full
|
||||
[JetBrains product list and builds](https://data.services.jetbrains.com/products).
|
||||
Below is the full list of supported `--platforms-filter` values:
|
||||
|
||||
```console
|
||||
windows-x64, windows-aarch64, linux-x64, linux-aarch64, osx-x64, osx-aarch64
|
||||
```
|
||||
|
||||
To install both backends and clients, you will need to run two commands.
|
||||
|
||||
### Backends
|
||||
|
||||
```shell
|
||||
mkdir ~/backends
|
||||
./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
|
||||
```
|
||||
|
||||
### Clients
|
||||
|
||||
This is the same command as above, with the `--download-backends` flag removed.
|
||||
|
||||
```shell
|
||||
mkdir ~/clients
|
||||
./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
|
||||
```
|
||||
|
||||
We now have both clients and backends installed.
|
||||
|
||||
## 3. Install a web server
|
||||
|
||||
You will need to run a web server in order to serve requests to the backend and
|
||||
client files. We installed `nginx` and setup an FQDN and routed all requests to
|
||||
`/`. See below:
|
||||
|
||||
```console
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
root /var/www/html;
|
||||
|
||||
index index.html index.htm index.nginx-debian.html;
|
||||
|
||||
server_name _;
|
||||
|
||||
location / {
|
||||
root /home/ubuntu;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then, configure your DNS entry to point to the IP address of the server. For the
|
||||
purposes of the POC, we did not configure TLS, although that is a supported
|
||||
option.
|
||||
|
||||
## 4. Add Client Files
|
||||
|
||||
You will need to add the following files on your local machine in order for
|
||||
Gateway to pull the backend and client from the server.
|
||||
|
||||
```shell
|
||||
$ cat productsInfoUrl # a path to products.json that was generated by the backend's downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/backends/<PRODUCT_CODE>/products.json
|
||||
|
||||
$ cat clientDownloadUrl # a path for clients that you got from the clients' downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/clients/
|
||||
|
||||
$ cat jreDownloadUrl # a path for JBR that you got from the clients' downloader (it could be http://, https://, or file://)
|
||||
|
||||
https://internal.site/jre/
|
||||
|
||||
$ cat pgpPublicKeyUrl # a URL to the KEYS file that was downloaded with the clients builds.
|
||||
|
||||
https://internal.site/KEYS
|
||||
```
|
||||
|
||||
The location of these files will depend upon your local operating system:
|
||||
|
||||
<div class="tabs">
|
||||
|
||||
### macOS
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
/Users/UserName/Library/Application Support/JetBrains/RemoteDev
|
||||
# System-wide settings
|
||||
/Library/Application Support/JetBrains/RemoteDev/
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
$HOME/.config/JetBrains/RemoteDev
|
||||
# System-wide settings
|
||||
/etc/xdg/JetBrains/RemoteDev/
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
```console
|
||||
# User-specific settings
|
||||
HKEY_CURRENT_USER registry
|
||||
# System-wide settings
|
||||
HKEY_LOCAL_MACHINE registry
|
||||
```
|
||||
|
||||
Additionally, create a string for each setting with its appropriate value in
|
||||
`SOFTWARE\JetBrains\RemoteDev`:
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
## 5. Setup SSH connection with JetBrains Gateway
|
||||
|
||||
With the server now configured, you can now configure your local machine to use
|
||||
Gateway. Here is the documentation to
|
||||
[setup SSH config via the Coder CLI](../../../user-guides/workspace-access/index.md#configure-ssh).
|
||||
On the Gateway side, follow our guide here until step 16.
|
||||
|
||||
Instead of downloading from jetbrains.com, we will point Gateway to our server
|
||||
endpoint. Select `Installation options...` and select `Use download link`. Note
|
||||
that the URL must explicitly reference the archive file:
|
||||
|
||||

|
||||
|
||||
Click `Download IDE and Connect`. Gateway should now download the backend and
|
||||
clients from the server into your remote workspace and local machine,
|
||||
respectively.
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Pre-install the JetBrains IDEs backend in your workspace](../../../admin/templates/extending-templates/jetbrains-gateway.md)
|
@ -0,0 +1,119 @@
|
||||
# Pre-install JetBrains Gateway in a template
|
||||
|
||||
For a faster JetBrains Gateway experience, 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).
|
||||
|
||||
## Install the Client Downloader
|
||||
|
||||
Install the JetBrains Client Downloader binary:
|
||||
|
||||
```shell
|
||||
wget https://download.jetbrains.com/idea/code-with-me/backend/jetbrains-clients-downloader-linux-x86_64-1867.tar.gz && \
|
||||
tar -xzvf jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
rm jetbrains-clients-downloader-linux-x86_64-1867.tar.gz
|
||||
```
|
||||
|
||||
## Install Gateway backend
|
||||
|
||||
```shell
|
||||
mkdir ~/JetBrains
|
||||
./jetbrains-clients-downloader-linux-x86_64-1867/bin/jetbrains-clients-downloader --products-filter <product-code> --build-filter <build-number> --platforms-filter linux-x64 --download-backends ~/JetBrains
|
||||
```
|
||||
|
||||
For example, to install the build `243.26053.27` of IntelliJ IDEA:
|
||||
|
||||
```shell
|
||||
./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 -xzvf ~/JetBrains/backends/IU/*.tar.gz -C ~/JetBrains/backends/IU
|
||||
rm -rf ~/JetBrains/backends/IU/*.tar.gz
|
||||
```
|
||||
|
||||
## Register the Gateway backend
|
||||
|
||||
Add the following command to your template's `startup_script`:
|
||||
|
||||
```shell
|
||||
~/JetBrains/backends/IU/ideaIU-243.26053.27/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:
|
||||
|
||||
```tf
|
||||
module "jetbrains_gateway" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||
version = "1.0.28"
|
||||
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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "coder_agent" "main" {
|
||||
...
|
||||
startup_script = <<-EOF
|
||||
~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
|
||||
EOF
|
||||
}
|
||||
```
|
||||
|
||||
## Dockerfile example
|
||||
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Pre install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
|
@ -55,7 +55,7 @@ contain some computational resource to run the Coder agent process.
|
||||
|
||||
The provisioned workspace's computational resources start the agent process,
|
||||
which opens connections to your workspace via SSH, the terminal, and IDES such
|
||||
as [JetBrains](./workspace-access/jetbrains.md) or
|
||||
as [JetBrains](./workspace-access/jetbrains/index.md) or
|
||||
[VSCode](./workspace-access/vscode.md).
|
||||
|
||||
Once started, the Coder agent is responsible for running your workspace startup
|
||||
|
Reference in New Issue
Block a user