πŸ“

Connecting Your IDE

Connect VSCode, Kiro, or IntelliJ IDEA to your DevDocker container for full remote development.

While you can edit files via SSH using vim or nano, most developers prefer using their IDE. DevDocker supports remote development with popular IDEs.

VSCode provides excellent remote development support via SSH:

1. Install Remote-SSH extension:

  • Open VSCode
  • Press Ctrl+Shift+X (Extensions)
  • Search for “Remote - SSH”
  • Click Install

2. Configure SSH connection (if you haven’t already):

Run the SSH config setup utility on your host:

$ ./scripts/setup-ssh-config.sh

This script will:

  • Detect your SSH keys
  • Let you select which key to use
  • Create or update your ~/.ssh/config file

3. Connect:

  • Press Ctrl+Shift+P (Command Palette)
  • Type “Remote-SSH: Connect to Host”
  • Select “devdocker”
  • A new window opens connected to the container

4. Install the Java extension pack:

  • Once connected, open the Extensions panel β€” it’s already scoped to the remote (look for the “SSH: devdocker” section header)
  • Search for “Extension Pack for Java” and click Install
  • Often you won’t need to search manually at all: opening the GeoServer folder (next step) triggers a popup offering to install the recommended extension for you

5. Open workspace:

  • File β†’ Open Folder
  • Navigate to /workspace/geoserver
  • Click OK

Tip: Avoid opening the entire /workspace/geoserver folder if you’re not using a pre-warmed image β€” it contains around 300 Maven modules and can take 60+ minutes to import. Opening /workspace/geoserver/src/web/app instead gets you editing and debugging in a couple of minutes.

You now have full IDE access with syntax highlighting, code completion, and integrated terminal.

Option 2: Kiro IDE

Follow the same steps as VSCode (Kiro uses the same Remote-SSH extension).

Option 3: IntelliJ IDEA

Requires an IntelliJ IDEA Ultimate license. Remote development into a container β€” whether via the older Build, Execution, Deployment β†’ Deployment (SFTP) settings page, or via JetBrains Gateway β€” is an Ultimate-only feature; Community Edition cannot be used as the remote backend either way. If you only have Community Edition, use VSCode or Kiro instead (Option 1) β€” there’s currently no free way to do this workflow in IntelliJ IDEA itself.

If you have Ultimate, use JetBrains Gateway β€” it runs the actual IDE on the container and streams a thin client to your machine:

1. Install JetBrains Gateway:

2. Configure SSH connection (if you haven’t already):

Run the SSH config setup utility on your host:

$ ./scripts/setup-ssh-config.sh

This script will:

  • Detect your SSH keys
  • Let you select which key to use
  • Create or update your ~/.ssh/config file

3. Connect over SSH:

  • Launch Gateway β†’ New Connection β†’ SSH
  • Select the “devdocker” host entry created in the previous step β€” Gateway reads ~/.ssh/config, so it should already be listed

4. Choose the IDE backend:

  • Select IntelliJ IDEA Ultimate (version 2024.3 or newer)

5. Open the project:

  • Point Gateway at /workspace/geoserver/src/web/app, not the full /workspace/geoserver folder.

Tip: Avoid opening the entire /workspace/geoserver folder if you’re not using a pre-warmed image β€” it contains around 300 Maven modules and can take 60+ minutes for IntelliJ’s indexer to import. Opening /workspace/geoserver/src/web/app instead gets you editing and debugging in a couple of minutes.

Gateway downloads the IDE backend into the container on first connect, then opens a thin client that behaves like a full local IntelliJ. Since the backend and the GeoServer JVM both run inside the same container, remote debugging via JDWP is simpler to set up than an external debugger β€” no separate port-forwarding step needed.