From dedcd19fba3cc99d2f073eb47ff1fd462b8fa40d Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:13:44 +0000 Subject: [PATCH 1/5] docs: Add comprehensive air-gapped registry modules guide - Add Coder Registry row to offline deployment comparison table - Add detailed 'Using Registry Modules Offline' section with three deployment options: - Git repository (recommended) - Private Terraform registry - Vendored modules - Include code examples and offline parameter usage - Reference existing modules documentation Addresses customer needs for using registry.coder.com modules in network-restricted environments. --- docs/install/offline.md | 71 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/docs/install/offline.md b/docs/install/offline.md index 289780526f76a..195a346b6ea1e 100644 --- a/docs/install/offline.md +++ b/docs/install/offline.md @@ -10,6 +10,7 @@ offline with Kubernetes or Docker. |--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) | | Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below | +| Coder Registry | Templates can use modules from [registry.coder.com](https://registry.coder.com) for IDEs, tools, and integrations | Use Git repositories, private registries, or vendored modules. See [Using Registry Modules Offline](#using-registry-modules-offline) below | | STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) | | DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). | | PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) | @@ -234,6 +235,76 @@ server, as demonstrated in the example below: With these steps, you'll have the Coder documentation hosted on your server and accessible for your team to use. +## Using Registry Modules Offline + +Coder Registry modules from [registry.coder.com](https://registry.coder.com) provide IDEs, tools, and integrations for workspaces. In air-gapped environments, you have several options: + +### Option 1: Git Repository (Recommended) + +Mirror registry modules in an internal Git repository: + +1. **Download modules** from [registry.coder.com](https://registry.coder.com) while connected to the internet +2. **Store modules** in your internal Git repository: + ``` + internal-registry/ + ├── modules/ + │ ├── code-server/ + │ ├── cursor/ + │ └── vscode-web/ + └── templates/ + ``` +3. **Reference modules** using Git source addresses: + ```tf + module "code_server" { + source = "git::https://your-internal-git.com/coder-modules.git//modules/code-server?ref=v1.0.19" + agent_id = coder_agent.example.id + offline = true # Prevent external downloads + } + ``` + +### Option 2: Private Terraform Registry + +Set up a private Terraform registry mirror: + +1. **Configure a private registry** (such as Terraform Enterprise or Artifactory) +2. **Mirror modules** from the public registry to your private registry +3. **Update templates** to use custom source addresses: + ```tf + module "code_server" { + source = "your-registry.com/coder/code-server/coder" + version = "1.0.19" + agent_id = coder_agent.example.id + } + ``` + +### Option 3: Vendored Modules + +Include modules directly in your template repositories: + +1. **Download modules** and include them in your template repository +2. **Reference with relative paths**: + ```tf + module "code_server" { + source = "./modules/code-server" # Relative path to vendored module + agent_id = coder_agent.example.id + } + ``` + +### Module Offline Support + +Many registry modules support offline operation with the `offline` parameter: + +```tf +module "code_server" { + source = "registry.coder.com/coder/code-server/coder" + version = "1.0.19" + agent_id = coder_agent.example.id + offline = true # Prevents downloading from external sources +} +``` + +For more information, see the [Terraform Modules documentation](../admin/templates/extending-templates/modules.md). + ## Coder Modules To use Coder modules in offline installations please follow the instructions From c5fa0d99a31e7ba9a0da38366c24610c62cfa80f Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:16:04 +0000 Subject: [PATCH 2/5] fix: Add blank lines around code blocks for markdown linting Fixes markdownlint MD031 errors by adding required blank lines around fenced code blocks and specifies language for directory structure. --- docs/install/offline.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/install/offline.md b/docs/install/offline.md index 195a346b6ea1e..8b70c686f53be 100644 --- a/docs/install/offline.md +++ b/docs/install/offline.md @@ -245,7 +245,8 @@ Mirror registry modules in an internal Git repository: 1. **Download modules** from [registry.coder.com](https://registry.coder.com) while connected to the internet 2. **Store modules** in your internal Git repository: - ``` + + ```text internal-registry/ ├── modules/ │ ├── code-server/ @@ -253,7 +254,9 @@ Mirror registry modules in an internal Git repository: │ └── vscode-web/ └── templates/ ``` + 3. **Reference modules** using Git source addresses: + ```tf module "code_server" { source = "git::https://your-internal-git.com/coder-modules.git//modules/code-server?ref=v1.0.19" @@ -269,6 +272,7 @@ Set up a private Terraform registry mirror: 1. **Configure a private registry** (such as Terraform Enterprise or Artifactory) 2. **Mirror modules** from the public registry to your private registry 3. **Update templates** to use custom source addresses: + ```tf module "code_server" { source = "your-registry.com/coder/code-server/coder" @@ -283,6 +287,7 @@ Include modules directly in your template repositories: 1. **Download modules** and include them in your template repository 2. **Reference with relative paths**: + ```tf module "code_server" { source = "./modules/code-server" # Relative path to vendored module From 2f2ad2ff4b21011fc540d969b493ae9674b1f68b Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:20:02 +0000 Subject: [PATCH 3/5] docs: Address review feedback - Remove redundant 'Coder Modules' section as requested - Update directory structure to reflect registry/namespace/modules/module-name format - Make Git source paths more explicit with proper registry structure Addresses review comments from @matifali --- docs/install/offline.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/docs/install/offline.md b/docs/install/offline.md index 8b70c686f53be..89ea2f72e0da2 100644 --- a/docs/install/offline.md +++ b/docs/install/offline.md @@ -244,14 +244,16 @@ Coder Registry modules from [registry.coder.com](https://registry.coder.com) pro Mirror registry modules in an internal Git repository: 1. **Download modules** from [registry.coder.com](https://registry.coder.com) while connected to the internet -2. **Store modules** in your internal Git repository: +2. **Store modules** in your internal Git repository using the registry structure: ```text internal-registry/ - ├── modules/ - │ ├── code-server/ - │ ├── cursor/ - │ └── vscode-web/ + ├── registry/ + │ └── coder/ + │ └── modules/ + │ ├── code-server/ + │ ├── cursor/ + │ └── vscode-web/ └── templates/ ``` @@ -259,7 +261,7 @@ Mirror registry modules in an internal Git repository: ```tf module "code_server" { - source = "git::https://your-internal-git.com/coder-modules.git//modules/code-server?ref=v1.0.19" + source = "git::https://your-internal-git.com/coder-modules.git//registry/coder/modules/code-server?ref=v1.0.19" agent_id = coder_agent.example.id offline = true # Prevent external downloads } @@ -310,11 +312,6 @@ module "code_server" { For more information, see the [Terraform Modules documentation](../admin/templates/extending-templates/modules.md). -## Coder Modules - -To use Coder modules in offline installations please follow the instructions -[here](../admin/templates/extending-templates/modules.md#offline-installations). - ## Firewall exceptions In restricted internet networks, Coder may require connection to internet. From 09c9304cf3fe4c9c552bbba15270ebff30524ccf Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:29:08 +0000 Subject: [PATCH 4/5] docs: Remove detailed registry modules section per review feedback - Remove entire 'Using Registry Modules Offline' section as requested - Add back simple 'Coder Modules' section with link to extending templates - Keep the Coder Registry row in the comparison table Addresses review comment from @matifali to simplify the documentation. --- docs/install/offline.md | 78 ++--------------------------------------- 1 file changed, 3 insertions(+), 75 deletions(-) diff --git a/docs/install/offline.md b/docs/install/offline.md index 89ea2f72e0da2..6e3df0c9788ad 100644 --- a/docs/install/offline.md +++ b/docs/install/offline.md @@ -235,82 +235,10 @@ server, as demonstrated in the example below: With these steps, you'll have the Coder documentation hosted on your server and accessible for your team to use. -## Using Registry Modules Offline +## Coder Modules -Coder Registry modules from [registry.coder.com](https://registry.coder.com) provide IDEs, tools, and integrations for workspaces. In air-gapped environments, you have several options: - -### Option 1: Git Repository (Recommended) - -Mirror registry modules in an internal Git repository: - -1. **Download modules** from [registry.coder.com](https://registry.coder.com) while connected to the internet -2. **Store modules** in your internal Git repository using the registry structure: - - ```text - internal-registry/ - ├── registry/ - │ └── coder/ - │ └── modules/ - │ ├── code-server/ - │ ├── cursor/ - │ └── vscode-web/ - └── templates/ - ``` - -3. **Reference modules** using Git source addresses: - - ```tf - module "code_server" { - source = "git::https://your-internal-git.com/coder-modules.git//registry/coder/modules/code-server?ref=v1.0.19" - agent_id = coder_agent.example.id - offline = true # Prevent external downloads - } - ``` - -### Option 2: Private Terraform Registry - -Set up a private Terraform registry mirror: - -1. **Configure a private registry** (such as Terraform Enterprise or Artifactory) -2. **Mirror modules** from the public registry to your private registry -3. **Update templates** to use custom source addresses: - - ```tf - module "code_server" { - source = "your-registry.com/coder/code-server/coder" - version = "1.0.19" - agent_id = coder_agent.example.id - } - ``` - -### Option 3: Vendored Modules - -Include modules directly in your template repositories: - -1. **Download modules** and include them in your template repository -2. **Reference with relative paths**: - - ```tf - module "code_server" { - source = "./modules/code-server" # Relative path to vendored module - agent_id = coder_agent.example.id - } - ``` - -### Module Offline Support - -Many registry modules support offline operation with the `offline` parameter: - -```tf -module "code_server" { - source = "registry.coder.com/coder/code-server/coder" - version = "1.0.19" - agent_id = coder_agent.example.id - offline = true # Prevents downloading from external sources -} -``` - -For more information, see the [Terraform Modules documentation](../admin/templates/extending-templates/modules.md). +To use Coder modules in offline installations please follow the instructions +[here](../admin/templates/extending-templates/modules.md#offline-installations). ## Firewall exceptions From 10eff3f8e35d15817a7d5be35fe8494814348788 Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:33:02 +0000 Subject: [PATCH 5/5] fix: Update broken link fragment in Coder Registry table row Fixes markdown linter error MD051 by updating the link to reference the existing 'Coder Modules' section instead of the removed section. --- docs/install/offline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/offline.md b/docs/install/offline.md index 6e3df0c9788ad..c0a41230ec685 100644 --- a/docs/install/offline.md +++ b/docs/install/offline.md @@ -10,7 +10,7 @@ offline with Kubernetes or Docker. |--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](https://github.com/coder/coder/blob/main/provisioner/terraform/install.go#L23-L24) | | Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below | -| Coder Registry | Templates can use modules from [registry.coder.com](https://registry.coder.com) for IDEs, tools, and integrations | Use Git repositories, private registries, or vendored modules. See [Using Registry Modules Offline](#using-registry-modules-offline) below | +| Coder Registry | Templates can use modules from [registry.coder.com](https://registry.coder.com) for IDEs, tools, and integrations | Use Git repositories, private registries, or vendored modules. See [Coder Modules](#coder-modules) below | | STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../reference/cli/server.md#--derp-server-stun-addresses) | | DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../admin/networking/index.md#custom-relays). | | PostgreSQL | If no [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../reference/cli/server.md#--postgres-url) |
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: