mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
feat: add Quickstart template with language and IDE selection (#24904)
Add a new Quickstart starter template that lets users pick programming languages, editors, and an optional Git repo to clone. The template uses Docker under the hood but presents a developer-focused experience: pick your tools, start coding. ## What's included - **Languages parameter** (multi-select): Python, Node.js, Go, Rust, Java, C/C++ - **IDEs parameter** (multi-select): VS Code (Browser), VS Code Desktop, Cursor, JetBrains, Zed, Windsurf - **Git repo parameter**: Optional URL to clone on workspace start - **JetBrains filtering**: Maps selected languages to relevant IDE codes (Python → PyCharm, Go → GoLand, etc.) - **Docker precondition check**: Uses `data "external"` + `terraform_data` precondition to surface a friendly error when Docker is unavailable, before the Docker provider fails with a cryptic message - **4 presets**: Web Development, Backend (Go), Data Science, Full Stack - **Single install script**: All languages install in one `coder_script` to avoid apt-get lock conflicts (agent scripts run in parallel via `errgroup`) <details><summary>Design decisions</summary> - **Docker as invisible backend**: Docker is required on the Coder server but never mentioned in the user-facing parameter UI. The experience is entirely "pick languages, pick editors, start coding." - **`coder_script` over startup_script**: Language installs use a templated script file (`install-languages.sh.tftpl`) driven by the languages parameter. A single script avoids dpkg lock contention since `coder_script` resources execute concurrently. - **`data "external"` for Docker check**: The external provider probes Docker availability independently of the Docker provider. If Docker is down, the `terraform_data` precondition fails with a human-readable message before any `docker_*` resource is evaluated. This depends on the Docker provider connecting lazily (at resource eval time, not at provider init), which current behavior confirms. - **JetBrains filtering by language**: Rather than showing all 9 JetBrains IDEs, the template computes relevant IDE codes from the language selection (e.g. Python → PY, Go → GO) and passes them as `default` to the JetBrains module. - **Arch-aware Go install**: The install script detects `uname -m` to download the correct Go binary for amd64 or arm64. </details> <details><summary>Screenshots and recordings from the UI</summary> <p> <img width="1851" height="1471" alt="Screenshot 2026-05-05 at 2 14 20 PM" src="https://github.com/user-attachments/assets/d4c9cdc5-d311-43a5-9e2e-f90b0019eda7" /> <img width="1851" height="1471" alt="Screenshot 2026-05-05 at 2 15 06 PM" src="https://github.com/user-attachments/assets/cf3023fe-b6db-4503-a6c4-eaa0ec0659f8" /> https://github.com/user-attachments/assets/7507fd7d-ddb5-457a-9f7d-cbf89b36eb20 </p> </details> > [!NOTE] > This PR was authored by Coder Agents.
This commit is contained in:
@@ -2,18 +2,19 @@
|
||||
|
||||
Follow this guide to get your first Coder development environment
|
||||
running in under 10 minutes. This guide covers the essential concepts and shows
|
||||
you how to create your first workspace and run VS Code from it.
|
||||
you how to create your first workspace and open it in your preferred editor.
|
||||
This workspace includes a basic set of tools to edit most code bases.
|
||||
|
||||
## What You'll Do
|
||||
## What you'll do
|
||||
|
||||
In this quickstart, you'll:
|
||||
|
||||
- ✅ Install Coder server
|
||||
- ✅ Create a **template** (blueprint for dev environments)
|
||||
- ✅ Launch a **workspace** (your actual dev environment)
|
||||
- ✅ Connect from your favorite IDE
|
||||
- ✅ Install Coder server.
|
||||
- ✅ Create a **template** (blueprint for dev environments).
|
||||
- ✅ Launch a **workspace** (your actual dev environment).
|
||||
- ✅ Connect from your favorite IDE.
|
||||
|
||||
## Understanding Coder: 30-Second Overview
|
||||
## A 30-second metaphor for Coder
|
||||
|
||||
Before diving in, the following table breaks down the core concepts that power Coder,
|
||||
explained through a cooking analogy:
|
||||
@@ -33,7 +34,7 @@ explained through a cooking analogy:
|
||||
- Familiarity with running commands in the terminal
|
||||
- 10 minutes of your time
|
||||
|
||||
## Step 1: Install Docker and Set Up Permissions
|
||||
## Step 1: Install Docker and set up permissions
|
||||
|
||||
<div class="tabs">
|
||||
|
||||
@@ -92,7 +93,7 @@ is installed.
|
||||
|
||||
</div>
|
||||
|
||||
## Step 2: Install & Start Coder
|
||||
## Step 2: Install and start Coder
|
||||
|
||||
Install the `coder` CLI to get started:
|
||||
|
||||
@@ -149,7 +150,7 @@ viewing the page, locate the web UI URL in Coder logs in your terminal. It looks
|
||||
like `https://<CUSTOM-STRING>.<TUNNEL>.try.coder.app`. It's one of the first
|
||||
lines of output, so you might have to scroll up to find it.
|
||||
|
||||
## Step 3: Initial Setup
|
||||
## Step 3: Initial setup
|
||||
|
||||
1. Create your admin account:
|
||||
- Email: `your.email@example.com`
|
||||
@@ -160,61 +161,67 @@ lines of output, so you might have to scroll up to find it.
|
||||
|
||||

|
||||
|
||||
## Step 4: Create your First Template and Workspace
|
||||
## Step 4: Create your first template and workspace
|
||||
|
||||
> [!TIP]
|
||||
> If you use an AI coding assistant, the [coder-templates](https://github.com/coder/registry/blob/main/.agents/skills/coder-templates/SKILL.md) agent skill can guide you through creating and customizing templates with best practices built-in.
|
||||
|
||||
Templates define what's in your development environment. Let's start simple:
|
||||
Templates define what's in your development environment. The following is a basic example:
|
||||
|
||||
1. Click **"Templates"** → **"New Template"**
|
||||
1. Select **Templates** → **New Template**.
|
||||
|
||||
1. Choose a starter template:
|
||||
2. Select the **Coder Quickstart** template from the list of starter templates.
|
||||
|
||||
| Starter | Best For | Includes |
|
||||
|-------------------------------------|---------------------------------------------------------|--------------------------------------------------------|
|
||||
| **Docker Containers** (Recommended) | Getting started quickly, local development, prototyping | Ubuntu container with common dev tools, Docker runtime |
|
||||
| **Kubernetes (Deployment)** | Cloud-native teams, scalable workspaces | Pod-based workspaces, Kubernetes orchestration |
|
||||
| **AWS EC2 (Linux)** | Teams needing full VMs, AWS-native infrastructure | Full EC2 instances with AWS integration |
|
||||
**Note:** running this template requires Docker to be running in the background, so make sure Docker is running!
|
||||
|
||||
1. Click **"Use template"** on **Docker Containers**. **Note:** running this template requires Docker to be running in the background, so make sure Docker is running!
|
||||
|
||||
1. Name your template:
|
||||
3. Name your template:
|
||||
- Name: `quickstart`
|
||||
- Display name: `quickstart doc template`
|
||||
- Description: `Provision Docker containers as Coder workspaces`
|
||||
|
||||
1. Click **"Save"**
|
||||
4. Select **Save**.
|
||||
|
||||

|
||||
|
||||
**What just happened?** You defined a template — a reusable blueprint for dev
|
||||
environments — in your Coder deployment. It's now stored in your organization's
|
||||
template list, where you and any teammates in the same org can create workspaces
|
||||
from it. Let's launch one.
|
||||
from it. Now it's time launch a workspace.
|
||||
|
||||
## Step 5: Launch your Workspace
|
||||
## Step 5: Launch your workspace
|
||||
|
||||
1. After the template is ready, select **Create Workspace**.
|
||||
1. After the template is ready, select **+ Create Workspace**.
|
||||
|
||||
1. Give the workspace a name and select **Create Workspace**.
|
||||
2. Give the workspace a name. If you need a suggestion for a workspace, you can select the automatically generated name next to the **Need a suggestion?** label.
|
||||
|
||||
1. Coder starts your new workspace:
|
||||
3. In this window are [parameters](../admin/templates/extending-templates/parameters.md) that customize the workspace's behavior. Set the following based on your needs:
|
||||
|
||||
_Workspace
|
||||
is running_
|
||||
- **Programming Languages**: the languages to pre-install in your workspace. You can use more than one if you want.
|
||||
- **IDEs & Editors**: the IDEs and editors you want to configure for quick access once the workspace is running. You can choose more than one if you want.
|
||||
- **Git Repository (Optional)**: the Git repository you want to clone into your workspace. Leave this field blank to skip it.
|
||||
|
||||
**Note:** If you use any of the JetBrains IDEs as your preferred IDE (such as PyCharm, GoLand, or RustRover), select **JetBrains IDEs** as the value. A new parameter will appear, with which you can choose your preferred JetBrains IDE.
|
||||
|
||||
4. Launch your workspace by selecting **Create workspace**.
|
||||
|
||||
After a short wait (10-15 seconds on most modern computers), Coder will start your new workspace:
|
||||
|
||||
_Workspace is running_
|
||||
|
||||
## Step 6: Connect your IDE
|
||||
|
||||
Select **VS Code Desktop** to install the Coder extension and connect to your
|
||||
Coder workspace.
|
||||
Each of the buttons in the workspace view is a different **agent app**
|
||||
(more on this in a later section). Select your preferred IDE from the
|
||||
list of agent apps. This guide assumes you'll use Visual Studio Code,
|
||||
but the process is similar for other IDEs and editors.
|
||||
|
||||
After VS Code loads the remote environment, you can select **Open Folder** to
|
||||
explore directories in the Docker container or work on something new.
|
||||
|
||||

|
||||
|
||||
To clone an existing repository:
|
||||
If you didn't clone an existing Git repository when you created your
|
||||
workspace, you can clone it manually if you want:
|
||||
|
||||
1. Select **Clone Repository** and enter the repository URL.
|
||||
|
||||
@@ -224,25 +231,25 @@ To clone an existing repository:
|
||||
Learn more about how to find the repository URL in the
|
||||
[GitHub documentation](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
|
||||
|
||||
1. Choose the folder to which VS Code should clone the repo. It will be in its
|
||||
2. Choose the folder to which VS Code should clone the repo. It will be in its
|
||||
own directory within this folder.
|
||||
|
||||
Note that you cannot create a new parent directory in this step.
|
||||
|
||||
1. After VS Code completes the clone, select **Open** to open the directory.
|
||||
3. After VS Code completes the clone, select **Open** to open the directory.
|
||||
|
||||
1. You are now using VS Code in your Coder environment!
|
||||
4. You are now using VS Code in your Coder environment!
|
||||
|
||||
## Success! You're Coding in Coder
|
||||
## Success! You're coding in Coder
|
||||
|
||||
You now have:
|
||||
|
||||
- **Coder server** running locally
|
||||
- **A template** defining your environment
|
||||
- **A workspace** running that environment
|
||||
- **IDE access** to code remotely
|
||||
- A Coder server running locally.
|
||||
- A template defining your environment.
|
||||
- A workspace running that environment.
|
||||
- IDE access to code remotely.
|
||||
|
||||
### What's Next?
|
||||
### What's next?
|
||||
|
||||
Now that you have your own workspace running, you can start exploring more
|
||||
advanced capabilities that Coder offers.
|
||||
|
||||
Reference in New Issue
Block a user