Update JetBrains module readme for clarity

This commit is contained in:
Muhammad Atif Ali 2025-07-08 17:57:16 +05:00
parent 15fcf0e66a
commit 34346e7d68
No known key found for this signature in database

View File

@ -9,7 +9,7 @@ tags: [ide, jetbrains, parameter]
# JetBrains IDEs
This module adds JetBrains IDE integrations to your Coder workspaces, allowing users to launch IDEs directly from the dashboard or pre-configure specific IDEs for immediate use.
This module adds JetBrains IDE buttons to launch IDEs directly from the dashboard by integrating with the JetBrains Toolbox.
```tf
module "jetbrains" {
@ -22,14 +22,12 @@ module "jetbrains" {
```
> [!IMPORTANT]
> This module requires Coder version 2.24+ and JetBrains Toolbox version 2.7 or higher.
> This module requires Coder version 2.24+ and [JetBrains Toolbox](https://www.jetbrains.com/toolbox-app/) version 2.7 or higher.
> [!WARNING]
> JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM.
> Consult the [JetBrains documentation](https://www.jetbrains.com/help/idea/prerequisites.html#min_requirements) to confirm other system requirements.
![JetBrains IDEs list](../.images/jetbrains-gateway.png)
## Examples
### Pre-configured Mode (Direct App Creation)
@ -43,7 +41,7 @@ module "jetbrains" {
version = "1.0.0"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["GO", "IU"] # Pre-configure GoLand and IntelliJ IDEA
default = ["PY", "IU"] # Pre-configure GoLand and IntelliJ IDEA
}
```
@ -57,7 +55,7 @@ module "jetbrains" {
agent_id = coder_agent.example.id
folder = "/home/coder/project"
# Show parameter with limited options
options = ["GO", "PY", "WS"] # Only these IDEs are available for selection
options = ["IU", "PY"] # Only these IDEs are available for selection
}
```
@ -70,7 +68,7 @@ module "jetbrains" {
version = "1.0.0"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["GO", "RR"]
default = ["IU", "PY"]
channel = "eap" # Use Early Access Preview versions
major_version = "2025.2" # Specific major version
}
@ -88,96 +86,31 @@ module "jetbrains" {
# Custom IDE metadata (display names and icons)
ide_config = {
"GO" = {
name = "GoLand"
icon = "/custom/icons/goland.svg"
build = "251.25410.140"
"IU" = {
name = "IntelliJ IDEA"
icon = "/custom/icons/intellij.svg"
build = "251.26927.53"
}
"PY" = {
name = "PyCharm"
icon = "/custom/icons/pycharm.svg"
build = "251.23774.211"
}
"WS" = {
name = "WebStorm"
icon = "/icon/webstorm.svg"
build = "251.23774.210"
}
}
}
```
### Air-Gapped and Offline Environments
This module supports air-gapped environments through automatic fallback mechanisms:
#### Option 1: Self-hosted JetBrains API Mirror
For organizations with internal JetBrains API mirrors:
```tf
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["GO", "IU"]
# Custom API endpoints
releases_base_link = "https://jetbrains-api.internal.company.com"
download_base_link = "https://jetbrains-downloads.internal.company.com"
}
```
#### Option 2: Fully Air-Gapped (No Internet Access)
The module automatically falls back to static build numbers from `ide_config` when the JetBrains API is unreachable:
```tf
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
folder = "/home/coder/project"
default = ["GO", "IU"]
# Update these build numbers as needed for your environment
ide_config = {
"GO" = {
name = "GoLand"
icon = "/icon/goland.svg"
build = "251.26927.50" # Static build number used when API is unavailable
}
"IU" = {
name = "IntelliJ IDEA"
icon = "/icon/intellij.svg"
build = "251.26927.53" # Static build number used when API is unavailable
}
}
}
```
**How it works:**
- The module first attempts to fetch the latest build numbers from the JetBrains API
- If the API is unreachable (network timeout, DNS failure, etc.), it automatically falls back to the build numbers specified in `ide_config`
- This ensures the module works in both connected and air-gapped environments without configuration changes
### Single IDE for Specific Use Case
```tf
module "jetbrains_goland" {
module "jetbrains_pycharm" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
folder = "/go/src/project"
folder = "/workspace/project"
default = ["GO"] # Only GoLand
default = ["PY"] # Only PyCharm
# Specific version for consistency
major_version = "2025.1"
@ -202,12 +135,13 @@ module "jetbrains_goland" {
All JetBrains IDEs with remote development capabilities:
- [GoLand (`GO`)](https://www.jetbrains.com/go/)
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)
- [IntelliJ IDEA Ultimate (`IU`)](https://www.jetbrains.com/idea/)
- [PyCharm Professional (`PY`)](https://www.jetbrains.com/pycharm/)
- [PhpStorm (`PS`)](https://www.jetbrains.com/phpstorm/)
- [CLion (`CL`)](https://www.jetbrains.com/clion/)
- [RubyMine (`RM`)](https://www.jetbrains.com/ruby/)
- [GoLand (`GO`)](https://www.jetbrains.com/go/)
- [IntelliJ IDEA Ultimate (`IU`)](https://www.jetbrains.com/idea/)
- [PhpStorm (`PS`)](https://www.jetbrains.com/phpstorm/)
- [PyCharm Professional (`PY`)](https://www.jetbrains.com/pycharm/)
- [Rider (`RD`)](https://www.jetbrains.com/rider/)
- [RubyMine (`RM`)](https://www.jetbrains.com/ruby/)
- [RustRover (`RR`)](https://www.jetbrains.com/rust/)
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)