This PR changes template names and docs to follow the `<provider>-<os/whatever>` format for all templates. I've decided not to split this into multiple PRs because I'd have to edit rebase the other PRs once one of them gets merged, this should be relatively low-impact anyways. This aligns with our goals to make templates more user-friendly. Closes #15754
display_name, description, icon, maintainer_github, verified, tags
| display_name | description | icon | maintainer_github | verified | tags | |||
|---|---|---|---|---|---|---|---|---|
| DigitalOcean Droplet (Linux) | Provision DigitalOcean Droplets as Coder workspaces | ../../../site/static/icon/do.png | coder | true |
|
Remote Development on DigitalOcean Droplets
Provision DigitalOcean Droplets as Coder workspaces with this example template.
Prerequisites
To deploy workspaces as DigitalOcean Droplets, you'll need:
-
DigitalOcean personal access token (PAT)
-
DigitalOcean project ID (you can get your project information via the
doctlCLI by runningdoctl projects list) -
Remove the following sections from the
main.tffile if you don't want to associate your workspaces with a project:variable "step2_do_project_id"resource "digitalocean_project_resources" "project"
-
Optional: DigitalOcean SSH key ID (obtain via the
doctlCLI by runningdoctl compute ssh-key list) -
Note that this is only required for Fedora images to work.
Authentication
This template assumes that coderd is run in an environment that is authenticated
with Digital Ocean. Obtain a Digital Ocean Personal Access
Token and set the
environment variable DIGITALOCEAN_TOKEN to the access token before starting
coderd. For other ways to authenticate consult the Terraform docs.
Architecture
This template provisions the following resources:
- Azure VM (ephemeral, deleted on stop)
- Managed disk (persistent, mounted to
/home/coder)
This means, when the workspace restarts, any tools or files outside of the home directory are not persisted. To pre-bake tools into the workspace (e.g. python3), modify the VM image, or use a startup script.
Note
This template is designed to be a starting point! Edit the Terraform to extend the template to support your use case.