mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
docs: reorganize JetBrains docs (#17995)
This pull request introduces significant updates to documentation and references related to JetBrains IDEs, including rebranding, restructuring, and adding new guides. [Preview](https://coder.com/docs/@atif%2Fjetbrains-reorganization) --------- Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
This commit is contained in:
@ -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.
|
||||
|
@ -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)
|
@ -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 <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)
|
@ -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
|
||||
FROM codercom/enterprise-base: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/*
|
||||
# JetBrains IDE installation (configurable)
|
||||
ARG IDE_CODE=IU
|
||||
ARG IDE_VERSION=2025.1
|
||||
|
||||
# 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
|
||||
# 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)
|
@ -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
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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.<workspaceName>
|
||||
```
|
||||
|
||||
@ -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
|
||||
|
26
docs/user-guides/workspace-access/jetbrains/fleet.md
Normal file
26
docs/user-guides/workspace-access/jetbrains/fleet.md
Normal file
@ -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`
|
||||

|
192
docs/user-guides/workspace-access/jetbrains/gateway.md
Normal file
192
docs/user-guides/workspace-access/jetbrains/gateway.md
Normal file
@ -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 <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](../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
|
||||
|
||||
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.
|
@ -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 <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`
|
||||

|
||||
<children></children>
|
||||
|
||||
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).
|
||||
|
@ -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**.
|
@ -73,7 +73,7 @@ export const AgentSSHButton: FC<AgentSSHButtonProps> = ({
|
||||
<HelpTooltipLink
|
||||
href={docs("/user-guides/workspace-access/jetbrains")}
|
||||
>
|
||||
Connect via JetBrains Gateway
|
||||
Connect via JetBrains IDEs
|
||||
</HelpTooltipLink>
|
||||
<HelpTooltipLink href={docs("/user-guides/workspace-access#ssh")}>
|
||||
SSH configuration
|
||||
|
Reference in New Issue
Block a user