mirror of
https://github.com/coder/coder.git
synced 2025-07-08 11:39:50 +00:00
* Move updatecheck logs to debug mode This was causing logs to be emitted immediately after initial setup, which seemed odd for the user. * Fix setup page text to say "Create" instead of "Setup" account * Improve copy on the empty workspaces page - This view can be seen after the user creates their first workspace, so saying first is bad. - It should describe what a workspace is, so I modified the description. - The create from template button wasn't helpful! * Improve the copy for the empty templates view - This didn't describe what a template actually is. - The title had the same problem as workspaces, where first makes no sense. * Improve text consistency on the Create Template page * Fix "View activity" displaying for non-Enterprise users This was causing an exception to be thrown. * Improve messaging of empty groups view * Appropriately capitalize Workspace and Template * Improve Docker template taglines * Fix types
108 lines
3.3 KiB
Markdown
108 lines
3.3 KiB
Markdown
# 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.
|
|
|
|
<video autoplay playsinline loop>
|
|
<source src="https://github.com/coder/coder/blob/main/docs/images/templates/open-in-coder.mp4?raw=true" type="video/mp4">
|
|
Your browser does not support the video tag.
|
|
</video>
|
|
|
|
## How it works
|
|
|
|
To support any infrastructure and software stack, Coder provides a generic approach for "Open in Coder" flows.
|
|
|
|
1. Set up [Git Authentication](../admin/git-providers.md#require-git-authentication-in-templates) in your Coder deployment
|
|
|
|
1. Modify your template to auto-clone repos:
|
|
|
|
> The id in the template's `coder_git_auth` data source must match the `CODER_GITAUTH_0_ID` in the Coder deployment configuration.
|
|
|
|
- If you want the template to clone a specific git repo
|
|
|
|
```hcl
|
|
# 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](./parameters.md)
|
|
|
|
```hcl
|
|
# 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
|
|
}
|
|
```
|
|
|
|
1. Embed the "Open in Coder" button with Markdown
|
|
|
|
```md
|
|
[](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) and `YOUR_TEMPLATE` with the name of your template.
|
|
|
|
1. 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.
|
|
|
|
```md
|
|
[](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](https://github.com/bpmct/coder-templates/tree/main/kubernetes-open-in-coder).
|
|
|
|
## Devcontainer support
|
|
|
|
Devcontainer support is on the roadmap. [Follow along here](https://github.com/coder/coder/issues/5559)
|