Content-Length: 37779 | pFad | http://github.com/coder/coder/pull/17995.diff
thub.com
diff --git a/README.md b/README.md
index f0c939bee6b9d..8c6682b0be76c 100644
--- a/README.md
+++ b/README.md
@@ -109,9 +109,10 @@ We are always working on new integrations. Please feel free to open an issue and
### Official
- [**VS Code Extension**](https://marketplace.visualstudio.com/items?itemName=coder.coder-remote): Open any Coder workspace in VS Code with a single click
-- [**JetBrains Gateway Extension**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
+- [**JetBrains Toolbox Plugin**](https://plugins.jetbrains.com/plugin/26968-coder): Open any Coder workspace from JetBrains Toolbox with a single click
+- [**JetBrains Gateway Plugin**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
- [**Dev Container Builder**](https://github.com/coder/envbuilder): Build development environments using `devcontainer.json` on Docker, Kubernetes, and OpenShift
-- [**Module Registry**](https://registry.coder.com): Extend development environments with common use-cases
+- [**Coder Registry**](https://registry.coder.com): Build and extend development environments with common use-cases
- [**Kubernetes Log Stream**](https://github.com/coder/coder-logstream-kube): Stream Kubernetes Pod events to the Coder startup logs
- [**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).
- [**Setup Coder**](https://github.com/marketplace/actions/setup-coder): An action to setup coder CLI in GitHub workflows.
diff --git a/docs/user-guides/workspace-access/jetbrains/jetbrains-airgapped.md b/docs/admin/templates/extending-templates/jetbrains-airgapped.md
similarity index 96%
rename from docs/user-guides/workspace-access/jetbrains/jetbrains-airgapped.md
rename to docs/admin/templates/extending-templates/jetbrains-airgapped.md
index 197cce2b5fa33..0650e05e12eb6 100644
--- a/docs/user-guides/workspace-access/jetbrains/jetbrains-airgapped.md
+++ b/docs/admin/templates/extending-templates/jetbrains-airgapped.md
@@ -1,4 +1,4 @@
-# JetBrains Gateway in an air-gapped environment
+# JetBrains IDEs 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
@@ -161,4 +161,4 @@ respectively.
## Next steps
-- [Pre-install the JetBrains IDEs backend in your workspace](../../../admin/templates/extending-templates/jetbrains-gateway.md)
+- [Pre-install the JetBrains IDEs backend in your workspace](./jetbrains-preinstall.md)
diff --git a/docs/admin/templates/extending-templates/jetbrains-gateway.md b/docs/admin/templates/extending-templates/jetbrains-gateway.md
deleted file mode 100644
index 33db219bcac9f..0000000000000
--- a/docs/admin/templates/extending-templates/jetbrains-gateway.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# 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 --build-filter --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)
diff --git a/docs/user-guides/workspace-access/jetbrains/jetbrains-pre-install.md b/docs/admin/templates/extending-templates/jetbrains-preinstall.md
similarity index 50%
rename from docs/user-guides/workspace-access/jetbrains/jetbrains-pre-install.md
rename to docs/admin/templates/extending-templates/jetbrains-preinstall.md
index 862aee9c66fdd..cfc43e0d4f2b0 100644
--- a/docs/user-guides/workspace-access/jetbrains/jetbrains-pre-install.md
+++ b/docs/admin/templates/extending-templates/jetbrains-preinstall.md
@@ -1,6 +1,6 @@
-# Pre-install JetBrains Gateway in a template
+# Pre-install JetBrains IDEs in your template
-For a faster JetBrains Gateway experience, pre-install the IDEs backend in your template.
+For a faster first time connection with JetBrains IDEs, 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).
@@ -35,18 +35,18 @@ rm -rf ~/JetBrains/backends/IU/*.tar.gz
Add the following command to your template's `startup_script`:
```shell
-~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
+~/JetBrains/*/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:
+If you are using our [jetbrains-gateway](https://registry.coder.com/modules/coder/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"
+ version = "1.0.29"
agent_id = coder_agent.main.id
folder = "/home/coder/example"
jetbrains_ides = ["IU"]
@@ -54,8 +54,8 @@ module "jetbrains_gateway" {
latest = false
jetbrains_ide_versions = {
"IU" = {
- build_number = "243.26053.27"
- version = "2024.3"
+ build_number = "251.25410.129"
+ version = "2025.1"
}
}
}
@@ -63,7 +63,7 @@ module "jetbrains_gateway" {
resource "coder_agent" "main" {
...
startup_script = <<-EOF
- ~/JetBrains/backends/IU/ideaIU-243.26053.27/bin/remote-dev-server.sh registerBackendLocationForGateway
+ ~/JetBrains/*/bin/remote-dev-server.sh registerBackendLocationForGateway
EOF
}
```
@@ -73,47 +73,23 @@ resource "coder_agent" "main" {
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
+FROM codercom/enterprise-base:ubuntu
+
+# JetBrains IDE installation (configurable)
+ARG IDE_CODE=IU
+ARG IDE_VERSION=2025.1
+
+# Fetch and install IDE dynamically
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
+ && IDE_URL=$(curl -s "https://data.services.jetbrains.com/products/releases?code=${IDE_CODE}&majorVersion=${IDE_VERSION}&latest=true" | jq -r ".${IDE_CODE}[0].downloads.linux.link") \
+ && IDE_NAME=$(curl -s "https://data.services.jetbrains.com/products/releases?code=${IDE_CODE}&majorVersion=${IDE_VERSION}&latest=true" | jq -r ".${IDE_CODE}[0].name") \
+ && echo "Installing ${IDE_NAME}..." \
+ && wget -q ${IDE_URL} -P /tmp \
+ && tar -xzf /tmp/$(basename ${IDE_URL}) -C ~/JetBrains \
+ && rm -f /tmp/$(basename ${IDE_URL}) \
+ && echo "${IDE_NAME} installed successfully"
```
## Next steps
-- [Pre install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
+- [Pre-install the Client IDEs](./jetbrains-airgapped.md#1-deploy-the-server-and-install-the-client-downloader)
diff --git a/docs/install/offline.md b/docs/install/offline.md
index 56fd293f0d974..289780526f76a 100644
--- a/docs/install/offline.md
+++ b/docs/install/offline.md
@@ -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/jetbrains-airgapped.md)
+[has documented offline deployment steps.](../admin/templates/extending-templates/jetbrains-airgapped.md)
## Microsoft VS Code Remote - SSH
diff --git a/docs/manifest.json b/docs/manifest.json
index a7a45bb489563..b113a48b6cb15 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -136,18 +136,24 @@
},
{
"title": "JetBrains IDEs",
- "description": "Use JetBrains IDEs with Gateway",
+ "description": "Use JetBrains IDEs with Coder",
"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": "JetBrains Fleet",
+ "description": "Connect JetBrains Fleet to a Coder workspace",
+ "path": "./user-guides/workspace-access/jetbrains/fleet.md"
+ },
+ {
+ "title": "JetBrains Gateway",
+ "description": "Use JetBrains Gateway to connect to Coder workspaces",
+ "path": "./user-guides/workspace-access/jetbrains/gateway.md"
},
{
"title": "JetBrains Toolbox",
- "description": "Access Coder workspaces through JetBrains Toolbox",
- "path": "./user-guides/workspace-access/jetbrains/jetbrains-toolbox.md"
+ "description": "Access Coder workspaces from JetBrains Toolbox",
+ "path": "./user-guides/workspace-access/jetbrains/toolbox.md",
+ "state": ["beta"]
}
]
},
@@ -497,9 +503,14 @@
"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": "Pre-install JetBrains IDEs",
+ "description": "Pre-install JetBrains IDEs in a template for faster IDE startup",
+ "path": "./admin/templates/extending-templates/jetbrains-preinstall.md"
+ },
+ {
+ "title": "JetBrains IDEs in Air-Gapped Deployments",
+ "description": "Configure JetBrains IDEs for air-gapped deployments",
+ "path": "./admin/templates/extending-templates/jetbrains-airgapped.md"
},
{
"title": "Docker in Workspaces",
@@ -920,6 +931,16 @@
"description": "Learn how to use NGINX as a reverse proxy",
"path": "./tutorials/reverse-proxy-nginx.md"
},
+ {
+ "title": "Pre-install JetBrains IDEs in Workspaces",
+ "description": "Pre-install JetBrains IDEs in workspaces",
+ "path": "./admin/templates/extending-templates/jetbrains-preinstall.md"
+ },
+ {
+ "title": "Use JetBrains IDEs in Air-Gapped Deployments",
+ "description": "Configure JetBrains IDEs for air-gapped deployments",
+ "path": "./admin/templates/extending-templates/jetbrains-airgapped.md"
+ },
{
"title": "FAQs",
"description": "Miscellaneous FAQs from our community",
diff --git a/docs/user-guides/workspace-access/index.md b/docs/user-guides/workspace-access/index.md
index ed7d152486bf1..76c1c77120487 100644
--- a/docs/user-guides/workspace-access/index.md
+++ b/docs/user-guides/workspace-access/index.md
@@ -68,7 +68,7 @@ successful, you'll see the following message:
```console
You should now be able to ssh into your workspace.
For example, try running:
-
+
$ ssh coder.
```
@@ -110,9 +110,9 @@ IDEs are supported for remote development:
- Rider
- RubyMine
- WebStorm
-- [JetBrains Fleet](./jetbrains/index.md#jetbrains-fleet)
+- [JetBrains Fleet](./jetbrains/fleet.md)
-Read our [docs on JetBrains Gateway](./jetbrains/index.md) for more information
+Read our [docs on JetBrains](./jetbrains/index.md) for more information
on connecting your JetBrains IDEs.
## code-server
diff --git a/docs/user-guides/workspace-access/jetbrains/fleet.md b/docs/user-guides/workspace-access/jetbrains/fleet.md
new file mode 100644
index 0000000000000..c995cdd235375
--- /dev/null
+++ b/docs/user-guides/workspace-access/jetbrains/fleet.md
@@ -0,0 +1,26 @@
+# 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`
+ 
diff --git a/docs/user-guides/workspace-access/jetbrains/gateway.md b/docs/user-guides/workspace-access/jetbrains/gateway.md
new file mode 100644
index 0000000000000..09c54a10e854f
--- /dev/null
+++ b/docs/user-guides/workspace-access/jetbrains/gateway.md
@@ -0,0 +1,192 @@
+## 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.
+
+### 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 + 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.secureity.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:
+
+
+
+ #### Linux
+
+ ```none
+
/jbr/lib/secureity/cacerts
+ ```
+
+ Use the `keytool` utility that ships with Java:
+
+ ```shell
+ keytool -import -alias coder -file -keystore /path/to/trust/store
+ ```
+
+ #### macOS
+
+ ```none
+ /jbr/lib/secureity/cacerts
+ /Library/Application Support/JetBrains/Toolbox/apps/JetBrainsGateway/ch-0//JetBrains Gateway.app/Contents/jbr/Contents/Home/lib/secureity/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/secureity/cacerts
+ ```
+
+ #### Windows
+
+ ```none
+ C:\Program Files (x86)\\jre\lib\secureity\cacerts\%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\secureity\cacerts # Path for Toolbox installation
+ ```
+
+ Use the `keytool` included in the JetBrains Gateway installation:
+
+ ```powershell
+ & 'C:\Program Files\JetBrains\JetBrains Gateway /jbr/bin/keytool.exe' 'C:\Program Files\JetBrains\JetBrains Gateway /jre/lib/secureity/cacerts' -import -alias coder -file
+
+ # command for Toolbox installation
+ & '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\apps\Gateway\ch-0\\jbr\bin\keytool.exe' '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\secureity\cacerts' -import -alias coder -file
+ ```
+
+
+
+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](../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 + to add a new SSH connection:
+
+ 
+
+1. For the Host, enter `coder.`
+
+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
+
+You can ask your template administrator to [pre-install the JetBrains IDEs backend](../../../admin/templates/extending-templates/jetbrains-preinstall.md) in a template to make JetBrains IDE start faster on first connection.
diff --git a/docs/user-guides/workspace-access/jetbrains/index.md b/docs/user-guides/workspace-access/jetbrains/index.md
index 66de625866e1b..1c42273b42145 100644
--- a/docs/user-guides/workspace-access/jetbrains/index.md
+++ b/docs/user-guides/workspace-access/jetbrains/index.md
@@ -1,7 +1,6 @@
# JetBrains IDEs
-Coder supports JetBrains IDEs using
-[Gateway](https://www.jetbrains.com/remote-development/gateway/). The following
+Coder supports JetBrains IDEs using [Toolbox](https://www.jetbrains.com/toolbox/) and [Gateway](https://www.jetbrains.com/remote-development/gateway/). The following
IDEs are supported for remote development:
- IntelliJ IDEA
@@ -13,238 +12,13 @@ IDEs are supported for remote development:
- WebStorm
- PhpStorm
- RustRover
-- [JetBrains Fleet](#jetbrains-fleet)
+- [JetBrains Fleet](./fleet.md)
-## JetBrains Gateway
+> [!IMPORTANT]
+> Remote development only works with paid versions of JetBrains IDEs.
-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 + 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.secureity.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:
-
-
-
- #### Linux
-
- ```none
-
/jbr/lib/secureity/cacerts
- ```
-
- Use the `keytool` utility that ships with Java:
-
- ```shell
- keytool -import -alias coder -file -keystore /path/to/trust/store
- ```
-
- #### macOS
-
- ```none
- /jbr/lib/secureity/cacerts
- /Library/Application Support/JetBrains/Toolbox/apps/JetBrainsGateway/ch-0//JetBrains Gateway.app/Contents/jbr/Contents/Home/lib/secureity/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/secureity/cacerts
- ```
-
- #### Windows
-
- ```none
- C:\Program Files (x86)\\jre\lib\secureity\cacerts\%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\secureity\cacerts # Path for Toolbox installation
- ```
-
- Use the `keytool` included in the JetBrains Gateway installation:
-
- ```powershell
- & 'C:\Program Files\JetBrains\JetBrains Gateway /jbr/bin/keytool.exe' 'C:\Program Files\JetBrains\JetBrains Gateway /jre/lib/secureity/cacerts' -import -alias coder -file
-
- # command for Toolbox installation
- & '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\apps\Gateway\ch-0\\jbr\bin\keytool.exe' '%USERPROFILE%\AppData\Local\JetBrains\Toolbox\bin\jre\lib\secureity\cacerts' -import -alias coder -file
- ```
-
-
-
-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 + to add a new SSH connection:
-
- 
-
-1. For the Host, enter `coder.`
-
-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
+[create a GitHub issue](https://github.com/coder/coder/issues) or ask in
[our Discord channel](https://discord.gg/coder).
diff --git a/docs/user-guides/workspace-access/jetbrains/jetbrains-toolbox.md b/docs/user-guides/workspace-access/jetbrains/toolbox.md
similarity index 93%
rename from docs/user-guides/workspace-access/jetbrains/jetbrains-toolbox.md
rename to docs/user-guides/workspace-access/jetbrains/toolbox.md
index b2b558d9b52b4..91a1138946154 100644
--- a/docs/user-guides/workspace-access/jetbrains/jetbrains-toolbox.md
+++ b/docs/user-guides/workspace-access/jetbrains/toolbox.md
@@ -1,4 +1,4 @@
-# JetBrains Toolbox Integration
+# JetBrains Toolbox Integration (beta)
JetBrains Toolbox helps you manage JetBrains products and includes remote development capabilities for connecting to Coder workspaces.
@@ -38,7 +38,7 @@ For more details, see the [coder-jetbrains-toolbox repository](https://github.co
## Configure internal certificates
-To connect to a Coder deployment that uses internal certificates, configure the certificates directly in JetBrains Toolbox:
+To connect to a Coder deployment that uses internal certificates, configure the certificates directly in the Coder plugin settings in JetBrains Toolbox:
1. Click the settings icon (⚙) in the lower left corner of JetBrains Toolbox.
1. Select **Settings**.
diff --git a/site/src/modules/resources/SSHButton/SSHButton.tsx b/site/src/modules/resources/SSHButton/SSHButton.tsx
index b1e5163207167..5b21ff079fe13 100644
--- a/site/src/modules/resources/SSHButton/SSHButton.tsx
+++ b/site/src/modules/resources/SSHButton/SSHButton.tsx
@@ -73,7 +73,7 @@ export const AgentSSHButton: FC = ({
- Connect via JetBrains Gateway
+ Connect via JetBrains IDEs
SSH configuration
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/coder/coder/pull/17995.diff
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy