mirror of
https://github.com/coder/coder.git
synced 2026-06-05 22:18:20 +00:00
b06d833012
- [x] TODO: verify and expand [What is an image, template, devcontainer, or workspace](https://coder.com/docs/@bp-dev-containers/admin#what-is-an-image-template-devcontainer-or-workspace) - [x] TODO: verify and expand `## Add a devcontainer template to Coder` - [x] TODO: verify and expand `## Layer and image caching` - [x] TODO: link to and edit [dotfiles](https://coder.com/docs/user-guides/workspace-dotfiles) doc - [x] TODO: https://github.com/coder/coder/pull/15458/files#diff-be0dd9ff983020129c7a94c628a0fc4a397a9bbc8b5eec92ec38f4b8c83fe167R10 [preview](https://coder.com/docs/@bp-dev-containers/admin/templates/managing-templates/devcontainers) --------- Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Co-authored-by: Cian Johnston <cian@coder.com> Co-authored-by: Ben Potter <ben@coder.com> Co-authored-by: Edward Angert <2408959-EdwardAngert@users.noreply.gitlab.com> Co-authored-by: Muhammad Atif Ali <atif@coder.com>
63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# Template
|
|
|
|
Templates are written in
|
|
[Terraform](https://developer.hashicorp.com/terraform/intro) and define the
|
|
underlying infrastructure that all Coder workspaces run on.
|
|
|
|

|
|
|
|
<small>The "Starter Templates" page within the Coder dashboard.</small>
|
|
|
|
## Learn the concepts
|
|
|
|
While templates are written in standard Terraform, it's important to learn the
|
|
Coder-specific concepts behind templates. The best way to learn the concepts is
|
|
by
|
|
[creating a basic template from scratch](../../tutorials/template-from-scratch.md).
|
|
If you are unfamiliar with Terraform, see
|
|
[Hashicorp's Tutorials](https://developer.hashicorp.com/terraform/tutorials) for
|
|
common cloud providers.
|
|
|
|
## Starter templates
|
|
|
|
After learning the basics, use starter templates to import a template with
|
|
sensible defaults for popular platforms (e.g. AWS, Kubernetes, Docker, etc).
|
|
Docs:
|
|
[Create a template from a starter template](./creating-templates.md#from-a-starter-template).
|
|
|
|
## Extending templates
|
|
|
|
It's often necessary to extend the template to make it generally useful to end
|
|
users. Common modifications are:
|
|
|
|
- Your image(s) (e.g. a Docker image with languages and tools installed). Docs:
|
|
[Image management](./managing-templates/image-management.md).
|
|
- Additional parameters (e.g. disk size, instance type, or region). Docs:
|
|
[Template parameters](./extending-templates/parameters.md).
|
|
- Additional IDEs (e.g. JetBrains) or features (e.g. dotfiles, RDP). Docs:
|
|
[Adding IDEs and features](./extending-templates/index.md).
|
|
|
|
Learn more about the various ways you can
|
|
[extend your templates](./extending-templates/index.md).
|
|
|
|
## Best Practices
|
|
|
|
We recommend starting with a universal template that can be used for basic
|
|
tasks. As your Coder deployment grows, you can create more templates to meet the
|
|
needs of different teams.
|
|
|
|
- [Image management](./managing-templates/image-management.md): Learn how to
|
|
create and publish images for use within Coder workspaces & templates.
|
|
- [Dev Container support](./managing-templates/devcontainers/index.md): Enable
|
|
dev containers to allow teams to bring their own tools into Coder workspaces.
|
|
- [Template hardening](./extending-templates/resource-persistence.md#-bulletproofing):
|
|
Configure your template to prevent certain resources from being destroyed
|
|
(e.g. user disks).
|
|
- [Manage templates with Ci/Cd pipelines](./managing-templates/change-management.md):
|
|
Learn how to source control your templates and use GitOps to ensure template
|
|
changes are reviewed and tested.
|
|
- [Permissions and Policies](./template-permissions.md): Control who may access
|
|
and modify your template.
|
|
|
|
<children></children>
|