Open in Coder
Open in Coder
An "Open in Coder" button can be embedded into your git repos or internal wikis to allow developers to quickly launch a new workspace.
How it works
To support any infrastructure and software stack, Coder provides a generic approach for "Open in Coder" flows.
-
Set up Git Authentication in your Coder deployment
-
Modify your template to auto-clone repos:
The id in the template's
coder_git_auth
data source must match theCODER_GITAUTH_0_ID
in the Coder deployment configuration.
-
If you want the template to clone a specific git repo
# Require git authentication to use this template data "coder_git_auth" "github" { id = "primary-github" } resource "coder_agent" "dev" { # ... dir = "~/coder" startup_script =<<EOF # Clone repo from GitHub if [ ! -d "coder" ] then git clone https://github.com/coder/coder fi EOF }
Note: The
dir
attribute can be set in multiple ways, for example:~/coder
/home/coder/coder
coder
(relative to the home directory)
-
If you want the template to support any repository via parameters
# Require git authentication to use this template data "coder_git_auth" "github" { id = "primary-github" } # Prompt the user for the git repo URL data "coder_parameter" "git_repo" { name = "git_repo" display_name = "Git repository" default = "https://github.com/coder/coder" } locals { folder_name = try(element(split("/", data.coder_parameter.git_repo.value), length(split("/", data.coder_parameter.git_repo.value)) - 1), "") } resource "coder_agent" "dev" { # ... dir = "~/${local.folder_name}" startup_script =<<EOF # Clone repo from GitHub if [ ! -d "${local.folder_name}" ] then git clone ${data.coder_parameter.git_repo.value} fi EOF }
-
Embed the "Open in Coder" button with Markdown
[](https://YOUR_ACCESS_URL/templates/YOUR_TEMPLATE/workspace)
Be sure to replace
YOUR_ACCESS_URL
with your Coder access url (e.g. https://coder.example.com) andYOUR_TEMPLATE
with the name of your template. -
Optional: pre-fill parameter values in the "Create workspace" page
This can be used to pre-fill the git repo URL, disk size, image, etc.
[](https://YOUR_ACCESS_URL/templates/YOUR_TEMPLATE/workspace?param.git_repo=https://github.com/coder/slog¶m.home_disk_size%20%28GB%29=20)
Example: Kubernetes
For a full example of the Open in Coder flow in Kubernetes, check out this example template.
Devcontainer support
Devcontainer support is on the roadmap. Follow along here