mirror of
https://github.com/coder/coder.git
synced 2026-06-03 04:58:23 +00:00
369a191972
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.
display_name, description, icon, maintainer_github, verified, tags
| display_name | description | icon | maintainer_github | verified | tags | ||
|---|---|---|---|---|---|---|---|
| Coder Quickstart | Get started with Coder by picking your languages, editors, and a repo | ../../../site/static/icon/coder.svg | coder | true |
|
Coder Quickstart
Get up and running with Coder in minutes. Choose your programming languages, pick your preferred editors, optionally clone a Git repository, and start coding.
How It Works
When you create a workspace from this template, you select:
- Languages to pre-install (Python, Node.js, Go, Rust, Java, C/C++)
- Editors to connect (VS Code in the browser, VS Code Desktop, Cursor, JetBrains, Zed, Windsurf)
- A Git repository to clone (optional)
Coder provisions a workspace with your selections and you can start developing immediately.
Prerequisites
The host running Coder must have a Docker daemon accessible to the coder user:
# Add coder user to Docker group
sudo adduser coder docker
# Restart Coder server
sudo systemctl restart coder
# Verify access
sudo -u coder docker ps
Architecture
This template provisions:
- Docker container (ephemeral) running Ubuntu with the Coder agent
- Docker volume (persistent) mounted at
/home/coder
Files in your home directory persist across workspace restarts. Selected languages are installed on first start and cached for subsequent starts.
Presets
Select a preset to auto-fill languages and editors for common workflows:
| Preset | Languages | Editors |
|---|---|---|
| Web Development | Python, Node.js | VS Code (Browser) |
| Backend (Go) | Go | VS Code (Browser), JetBrains GoLand |
| Data Science | Python | VS Code (Browser) |
| Full Stack | Python, Node.js, Go | VS Code (Browser), Cursor |
IDE Notes
- VS Code (Browser): Opens directly in your browser with no local install required.
- VS Code Desktop, Cursor, Windsurf: Require the desktop application installed on your local machine. Coder opens them via protocol handler.
- JetBrains IDEs: Filtered by your language selection (e.g. PyCharm for Python, GoLand for Go). Requires JetBrains Toolbox or Gateway on your local machine.
- Zed: Connects over SSH. Requires Zed installed on your local machine.