diff --git a/ADOPTERS.md b/ADOPTERS.md
index 67be347cf0a0a..89efa5c2d12e8 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -1,4 +1,5 @@
-# Adopters
+# Adopters
+
[](https://coder.com/chat?utm_source=github.com/coder/coder&utm_medium=github&utm_campaign=adopters.md) [](https://twitter.com/coderhq)
@@ -7,6 +8,6 @@ Follow](https://img.shields.io/twitter/follow/coderhq?label=%40coderhq&style=soc
> 👋 _If you are considering using Coder in your organization please introduce yourself via https://coder.com/demo_ 🙇🏻‍♂️
-| Organization | Contact | Description of Use |
-| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Coder](https://www.coder.com) | [@coderhq](https://twitter.com/coderhq) | Coder builds coder with Coder. |
+| Organization | Contact | Description of Use |
+| ------------------------------ | --------------------------------------- | ------------------------------ |
+| [Coder](https://www.coder.com) | [@coderhq](https://twitter.com/coderhq) | Coder builds coder with Coder. |
diff --git a/Makefile b/Makefile
index 0aae5984cc342..1ed609911ac49 100644
--- a/Makefile
+++ b/Makefile
@@ -359,9 +359,9 @@ fmt/prettier:
cd site
# Avoid writing files in CI to reduce file write activity
ifdef CI
- yarn run format:check
+ yarn run format:check . ../*.md ../docs
else
- yarn run format:write
+ yarn run format:write . ../*.md ../docs
endif
.PHONY: fmt/prettier
@@ -452,11 +452,7 @@ site/src/api/typesGenerated.ts: scripts/apitypings/main.go $(shell find codersdk
docs/admin/prometheus.md: scripts/metricsdocgen/main.go scripts/metricsdocgen/metrics
go run scripts/metricsdocgen/main.go
cd site
-ifdef CI
- yarn run format:check
-else
- yarn run format:write
-endif
+ yarn run format:write ../docs/admin/prometheus.md
update-golden-files: cli/testdata/.gen-golden
.PHONY: update-golden-files
diff --git a/README.md b/README.md
index 1965338e36d28..5bac9516cbdec 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,6 @@ Software development on your infrastructure. Offload your team's development fro
> "By leveraging Terraform, Coder lets developers run any IDE on any compute platform including on-prem, AWS, Azure, GCP, DigitalOcean, Kubernetes, Docker, and more, with workspaces running on Linux, Windows, or Mac." - **Kevin Fishner Chief of Staff at [HashiCorp](https://hashicorp.com/)**
-
@@ -96,7 +95,7 @@ Please file [an issue](https://github.com/coder/coder/issues/new) if any informa
| [Coder](https://github.com/coder/coder) | Platform | OSS + Self-Managed | Pay your cloud | All [Terraform](https://www.terraform.io/registry/providers) resources, all clouds, multi-architecture: Linux, Mac, Windows, containers, VMs, amd64, arm64 |
| [code-server](https://github.com/cdr/code-server) | Web IDE | OSS + Self-Managed | Pay your cloud | Linux, Mac, Windows, containers, VMs, amd64, arm64 |
| [Coder (Classic)](https://coder.com/docs) | Platform | Self-Managed | Pay your cloud + license fees | Kubernetes Linux Containers |
-| [GitHub Codespaces](https://github.com/features/codespaces) | Platform | SaaS | 2x Azure Compute | Linux Virtual Machines |
+| [GitHub Codespaces](https://github.com/features/codespaces) | Platform | SaaS | 2x Azure Compute | Linux Virtual Machines |
---
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 6a1543597d4a2..2f8b2713b293a 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -39,6 +39,7 @@ direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +HOST_PATH +IN_NIX_SHELL +LD +NIX_
```
Alternatively if you do not want to use nix then you'll need to install the need the following tools by hand:
+
- Go 1.18+
- on macOS, run `brew install go`
- Node 14+
@@ -63,7 +64,6 @@ Alternatively if you do not want to use nix then you'll need to install the need
- [`pandoc`]()
- on macOS, run `brew install pandocomatic`
-
### Development workflow
Use the following `make` commands and scripts in development:
@@ -143,7 +143,6 @@ $ git ls-files v0.12.2 -- coderd/database/migrations/*.up.sql
This helps in naming the dump (e.g. `000069` above).
-
## Styling
### Documentation
diff --git a/docs/README.md b/docs/README.md
index 3ece092629e13..81e9924b8714b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -92,6 +92,6 @@ Azure, Google Cloud, Kubernetes, and more.
- Coder is not a SaaS/fully-managed offering. You must host
Coder on a cloud service (AWS, Azure, GCP) or your private data center.
-
## Up next
+
- Learn about [Templates](./templates.md)
diff --git a/docs/admin/git-providers.md b/docs/admin/git-providers.md
index a457ac717ede9..0a930f6a20fec 100644
--- a/docs/admin/git-providers.md
+++ b/docs/admin/git-providers.md
@@ -4,7 +4,7 @@ Coder integrates with git providers so developers can authenticate with reposito
## How it works
-When developers use `git` inside their workspace, they are first prompted to authenticate. After that, Coder will store/refresh tokens for future operations.
+When developers use `git` inside their workspace, they are first prompted to authenticate. After that, Coder will store/refresh tokens for future operations.
diff --git a/docs/admin/groups.md b/docs/admin/groups.md
index a06fcf2e55d75..c0b5dca594dad 100644
--- a/docs/admin/groups.md
+++ b/docs/admin/groups.md
@@ -7,4 +7,3 @@ Groups can be used with [template RBAC](./rbac.md) to give groups of users acces
## Enabling this feature
This feature is only available with an enterprise license. [Learn more](../enterprise.md)
-
diff --git a/docs/admin/prometheus.md b/docs/admin/prometheus.md
index 91812880d443b..87f135b195f67 100644
--- a/docs/admin/prometheus.md
+++ b/docs/admin/prometheus.md
@@ -29,45 +29,45 @@ The environment variable `CODER_PROMETHEUS_ENABLE` will be enabled automatically
-| Name | Type | Description | Labels |
-| - | - | - | - |
-| `coderd_api_active_users_duration_hour` | gauge | The number of users that have been active within the last hour. | |
-| `coderd_api_concurrent_requests` | gauge | The number of concurrent API requests | |
-| `coderd_api_concurrent_websockets` | gauge | The total number of concurrent API websockets | |
-| `coderd_api_request_latencies_ms` | histogram | Latency distribution of requests in milliseconds | `method` `path` |
-| `coderd_api_requests_processed_total` | counter | The total number of processed API requests | `code` `method` `path` |
-| `coderd_api_websocket_durations_ms` | histogram | Websocket duration distribution of requests in milliseconds | `path` |
-| `coderd_api_workspace_latest_build_total` | gauge | The latest workspace builds with a status. | `status` |
-| `coderd_provisionerd_job_timings_ms` | histogram | The provisioner job time duration. | `provisioner` `status` |
-| `coderd_provisionerd_jobs_current` | gauge | The number of currently running provisioner jobs. | `provisioner` |
-| `go_gc_duration_seconds` | summary | A summary of the pause duration of garbage collection cycles. | |
-| `go_goroutines` | gauge | Number of goroutines that currently exist. | |
-| `go_info` | gauge | Information about the Go environment. | `version` |
-| `go_memstats_alloc_bytes` | gauge | Number of bytes allocated and still in use. | |
-| `go_memstats_alloc_bytes_total` | counter | Total number of bytes allocated, even if freed. | |
-| `go_memstats_buck_hash_sys_bytes` | gauge | Number of bytes used by the profiling bucket hash table. | |
-| `go_memstats_frees_total` | counter | Total number of frees. | |
-| `go_memstats_gc_sys_bytes` | gauge | Number of bytes used for garbage collection system metadata. | |
-| `go_memstats_heap_alloc_bytes` | gauge | Number of heap bytes allocated and still in use. | |
-| `go_memstats_heap_idle_bytes` | gauge | Number of heap bytes waiting to be used. | |
-| `go_memstats_heap_inuse_bytes` | gauge | Number of heap bytes that are in use. | |
-| `go_memstats_heap_objects` | gauge | Number of allocated objects. | |
-| `go_memstats_heap_released_bytes` | gauge | Number of heap bytes released to OS. | |
-| `go_memstats_heap_sys_bytes` | gauge | Number of heap bytes obtained from system. | |
-| `go_memstats_last_gc_time_seconds` | gauge | Number of seconds since 1970 of last garbage collection. | |
-| `go_memstats_lookups_total` | counter | Total number of pointer lookups. | |
-| `go_memstats_mallocs_total` | counter | Total number of mallocs. | |
-| `go_memstats_mcache_inuse_bytes` | gauge | Number of bytes in use by mcache structures. | |
-| `go_memstats_mcache_sys_bytes` | gauge | Number of bytes used for mcache structures obtained from system. | |
-| `go_memstats_mspan_inuse_bytes` | gauge | Number of bytes in use by mspan structures. | |
-| `go_memstats_mspan_sys_bytes` | gauge | Number of bytes used for mspan structures obtained from system. | |
-| `go_memstats_next_gc_bytes` | gauge | Number of heap bytes when next garbage collection will take place. | |
-| `go_memstats_other_sys_bytes` | gauge | Number of bytes used for other system allocations. | |
-| `go_memstats_stack_inuse_bytes` | gauge | Number of bytes in use by the stack allocator. | |
-| `go_memstats_stack_sys_bytes` | gauge | Number of bytes obtained from system for stack allocator. | |
-| `go_memstats_sys_bytes` | gauge | Number of bytes obtained from system. | |
-| `go_threads` | gauge | Number of OS threads created. | |
-| `promhttp_metric_handler_requests_in_flight` | gauge | Current number of scrapes being served. | |
-| `promhttp_metric_handler_requests_total` | counter | Total number of scrapes by HTTP status code. | `code` |
+| Name | Type | Description | Labels |
+| -------------------------------------------- | --------- | ------------------------------------------------------------------ | ---------------------- |
+| `coderd_api_active_users_duration_hour` | gauge | The number of users that have been active within the last hour. | |
+| `coderd_api_concurrent_requests` | gauge | The number of concurrent API requests | |
+| `coderd_api_concurrent_websockets` | gauge | The total number of concurrent API websockets | |
+| `coderd_api_request_latencies_ms` | histogram | Latency distribution of requests in milliseconds | `method` `path` |
+| `coderd_api_requests_processed_total` | counter | The total number of processed API requests | `code` `method` `path` |
+| `coderd_api_websocket_durations_ms` | histogram | Websocket duration distribution of requests in milliseconds | `path` |
+| `coderd_api_workspace_latest_build_total` | gauge | The latest workspace builds with a status. | `status` |
+| `coderd_provisionerd_job_timings_ms` | histogram | The provisioner job time duration. | `provisioner` `status` |
+| `coderd_provisionerd_jobs_current` | gauge | The number of currently running provisioner jobs. | `provisioner` |
+| `go_gc_duration_seconds` | summary | A summary of the pause duration of garbage collection cycles. | |
+| `go_goroutines` | gauge | Number of goroutines that currently exist. | |
+| `go_info` | gauge | Information about the Go environment. | `version` |
+| `go_memstats_alloc_bytes` | gauge | Number of bytes allocated and still in use. | |
+| `go_memstats_alloc_bytes_total` | counter | Total number of bytes allocated, even if freed. | |
+| `go_memstats_buck_hash_sys_bytes` | gauge | Number of bytes used by the profiling bucket hash table. | |
+| `go_memstats_frees_total` | counter | Total number of frees. | |
+| `go_memstats_gc_sys_bytes` | gauge | Number of bytes used for garbage collection system metadata. | |
+| `go_memstats_heap_alloc_bytes` | gauge | Number of heap bytes allocated and still in use. | |
+| `go_memstats_heap_idle_bytes` | gauge | Number of heap bytes waiting to be used. | |
+| `go_memstats_heap_inuse_bytes` | gauge | Number of heap bytes that are in use. | |
+| `go_memstats_heap_objects` | gauge | Number of allocated objects. | |
+| `go_memstats_heap_released_bytes` | gauge | Number of heap bytes released to OS. | |
+| `go_memstats_heap_sys_bytes` | gauge | Number of heap bytes obtained from system. | |
+| `go_memstats_last_gc_time_seconds` | gauge | Number of seconds since 1970 of last garbage collection. | |
+| `go_memstats_lookups_total` | counter | Total number of pointer lookups. | |
+| `go_memstats_mallocs_total` | counter | Total number of mallocs. | |
+| `go_memstats_mcache_inuse_bytes` | gauge | Number of bytes in use by mcache structures. | |
+| `go_memstats_mcache_sys_bytes` | gauge | Number of bytes used for mcache structures obtained from system. | |
+| `go_memstats_mspan_inuse_bytes` | gauge | Number of bytes in use by mspan structures. | |
+| `go_memstats_mspan_sys_bytes` | gauge | Number of bytes used for mspan structures obtained from system. | |
+| `go_memstats_next_gc_bytes` | gauge | Number of heap bytes when next garbage collection will take place. | |
+| `go_memstats_other_sys_bytes` | gauge | Number of bytes used for other system allocations. | |
+| `go_memstats_stack_inuse_bytes` | gauge | Number of bytes in use by the stack allocator. | |
+| `go_memstats_stack_sys_bytes` | gauge | Number of bytes obtained from system for stack allocator. | |
+| `go_memstats_sys_bytes` | gauge | Number of bytes obtained from system. | |
+| `go_threads` | gauge | Number of OS threads created. | |
+| `promhttp_metric_handler_requests_in_flight` | gauge | Current number of scrapes being served. | |
+| `promhttp_metric_handler_requests_total` | counter | Total number of scrapes by HTTP status code. | `code` |
diff --git a/docs/admin/quotas.md b/docs/admin/quotas.md
index 708fb96ca7a5d..84ca425f4014f 100644
--- a/docs/admin/quotas.md
+++ b/docs/admin/quotas.md
@@ -5,7 +5,7 @@ templates and assigning budgets to users. Users that exceed their budget will be
blocked from launching more workspaces until they either delete their other workspaces
or get their budget extended.
-For example: A template is configured with a cost of 5 credits per day, and the user is
+For example: A template is configured with a cost of 5 credits per day, and the user is
granted a budget of 15 credits per day. This budget limits the user to 3 concurrent workspaces.
Quotas are licensed with [Groups](./groups.md).
@@ -48,18 +48,18 @@ resource "docker_container" "workspace" {
}
resource "coder_metadata" "workspace" {
- count = data.coder_workspace.me.start_count
+ count = data.coder_workspace.me.start_count
resource_id = docker_container.workspace.id
daily_cost = 20
}
```
-When the workspace above is shut down, the `docker_container` and
+When the workspace above is shut down, the `docker_container` and
`coder_metadata` both get deleted. This reduces the cost from 30 credits to
-10 credits.
+10 credits.
-Resources without a `daily_cost` value are considered to cost 0. If the cost
-was removed on the `docker_volume` above, the template would consume 0 credits when
+Resources without a `daily_cost` value are considered to cost 0. If the cost
+was removed on the `docker_volume` above, the template would consume 0 credits when
it's offline. This technique is good for incentivizing users to shut down their
unused workspaces and freeing up compute in the cluster.
diff --git a/docs/admin/telemetry.md b/docs/admin/telemetry.md
index 72e8b4170239a..f7d586b690bd1 100644
--- a/docs/admin/telemetry.md
+++ b/docs/admin/telemetry.md
@@ -8,7 +8,7 @@ First of all, we do not collect any information that could threaten the security
You can find a full list of the data we collect in the source code [here](https://github.com/coder/coder/blob/main/coderd/telemetry/telemetry.go).
-Telemetry can be configured with the `CODER_TELEMETRY=x` environment variable.
+Telemetry can be configured with the `CODER_TELEMETRY=x` environment variable.
For example, telemetry can be disabled with `CODER_TELEMETRY=false`.
diff --git a/docs/contributing/documentation.md b/docs/contributing/documentation.md
index 31ef540a06c91..94eba6a3b8068 100644
--- a/docs/contributing/documentation.md
+++ b/docs/contributing/documentation.md
@@ -1,14 +1,13 @@
-# Documentation
-
-This style guide is primarily for use with authoring documentation.
+# Documentation
+This style guide is primarily for use with authoring documentation.
## General guidelines
- Use sentence case, even in titles (do not punctuate the title, though)
- Use the second person
- Use the active voice
-- Use plural nouns and pronouns (*they*, *their*, or *them*), especially when
+- Use plural nouns and pronouns (_they_, _their_, or _them_), especially when
the specific number is uncertain (i.e., "Set up your environments" even though
you don't know if the user will have one or many environments)
- When writing documentation titles, use the noun form, not the gerund form (e.g., "Environment
@@ -17,7 +16,7 @@ This style guide is primarily for use with authoring documentation.
example, ["A Job creates one or more
Pods..."](https://kubernetes.io/docs/concepts/workloads/controllers/job/) is
correct when writing about Kubernetes. However, in other contexts, neither
- *job* nor *pods* would be capitalized. Please follow the conventions set forth
+ _job_ nor _pods_ would be capitalized. Please follow the conventions set forth
by the relevant companies and open source communities.
## Third-party references
@@ -25,11 +24,11 @@ This style guide is primarily for use with authoring documentation.
If you have questions that aren't explicitly covered by this guide, consult the
following third-party references:
-| **Type of guidance** | **Third-party reference** |
-| - | - |
-| Spelling | [Merriam-Webster.com](https://www.merriam-webster.com/) |
-| Style - nontechnical | [The Chicago Manual of Style](https://www.chicagomanualofstyle.org/home.html) |
-| Style - technical | [Microsoft Writing Style Guide](https://docs.microsoft.com/en-us/style-guide/welcome/) |
+| **Type of guidance** | **Third-party reference** |
+| -------------------- | -------------------------------------------------------------------------------------- |
+| Spelling | [Merriam-Webster.com](https://www.merriam-webster.com/) |
+| Style - nontechnical | [The Chicago Manual of Style](https://www.chicagomanualofstyle.org/home.html) |
+| Style - technical | [Microsoft Writing Style Guide](https://docs.microsoft.com/en-us/style-guide/welcome/) |
## Tools
@@ -50,14 +49,14 @@ Use **bold** formatting when referring to UI elements.
### Italics
-Use *italics* for:
+Use _italics_ for:
- Parameter names
- Mathematical and version variables
### Code font
-Use *code font* for:
+Use _code font_ for:
- User text input
- Command-line utility names
@@ -68,7 +67,7 @@ Use *code font* for:
- HTTP verbs, status codes, and content-type values
- Placeholder variables
-Use *code blocks* for code samples and other blocks of code. Be sure to indicate
+Use _code blocks_ for code samples and other blocks of code. Be sure to indicate
the language your using to apply the proper syntax highlighting.
```text
@@ -80,10 +79,10 @@ For code that you want users to enter via a command-line interface, use
### Punctuation
-Do not use the ampersand (&) as a shorthand for *and* unless you're referring to a
-UI element or the name of something that uses *&*.
+Do not use the ampersand (&) as a shorthand for _and_ unless you're referring to a
+UI element or the name of something that uses _&_.
-You can use the symbol `~` in place of the word *approximately*.
+You can use the symbol `~` in place of the word _approximately_.
### UI elements
@@ -147,4 +146,3 @@ We also do not capitalize the names of user roles:
## Standardized spellings
- WiFi
-
diff --git a/docs/dotfiles.md b/docs/dotfiles.md
index 91eaf42950c6b..15332229d3c07 100644
--- a/docs/dotfiles.md
+++ b/docs/dotfiles.md
@@ -1,10 +1,12 @@
# Dotfiles
+
Coder offers the `coder dotfiles ` command which simplifies workspace
personalization. Our behavior is consistent with Codespaces, so
[their documentation](https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account#dotfiles)
explains how it loads your repo.
+
You can read more on dotfiles best practices [here](https://dotfiles.github.io).
diff --git a/docs/enterprise.md b/docs/enterprise.md
index 53ade3693d2eb..a616d11f6f8d3 100644
--- a/docs/enterprise.md
+++ b/docs/enterprise.md
@@ -4,15 +4,18 @@ Coder is free to use and includes some features that are only accessible with a
Contact sales@coder.com to obtain a license.
### User Management
+
- [Groups](./admin/groups.md)
- [Template RBAC](./admin/rbac.md)
- [SCIM](./admin/auth.md#scim)
### Networking & Deployment
+
- [High Availability](./admin/high-availability.md)
- [Browser Only Connections](./networking.md#browser-only-connections)
### Other
+
- [Audit Logging](./admin/audit-logs.md)
- [Quotas](./admin/quotas.md)
diff --git a/docs/ides/web-ides.md b/docs/ides/web-ides.md
index 411989e458048..e2b975e880b18 100644
--- a/docs/ides/web-ides.md
+++ b/docs/ides/web-ides.md
@@ -168,7 +168,6 @@ resource "coder_app" "jupyter" {

-
### RStudio
Configure your agent and `coder_app` like so to use RStudio. Notice the
diff --git a/docs/manifest.json b/docs/manifest.json
index 433571a3cb668..c9df2463e0ddc 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -1,9 +1,5 @@
{
- "versions": [
- "main",
- "v0.8.1",
- "v0.7.12"
- ],
+ "versions": ["main", "v0.8.1", "v0.7.12"],
"routes": [
{
"title": "About",
diff --git a/docs/quickstart/docker.md b/docs/quickstart/docker.md
index edcde4224de2b..19e8f084a4f1c 100644
--- a/docs/quickstart/docker.md
+++ b/docs/quickstart/docker.md
@@ -15,58 +15,57 @@ Coder with Docker has the following advantages:
1. Run Coder with Docker.
- ```shell
- export CODER_DATA=$HOME/.config/coderv2-docker
- export DOCKER_GROUP=$(getent group docker | cut -d: -f3)
- mkdir -p $CODER_DATA
- docker run --rm -it \
- -v $CODER_DATA:/home/coder/.config \
- -v /var/run/docker.sock:/var/run/docker.sock \
- --group-add $DOCKER_GROUP \
- ghcr.io/coder/coder:latest
- ```
-
- > This will use Coder's tunnel and built-in database. See our [Docker documentation](../install/docker.md) for other configuration options such as running on localhost, using docker-compose, and external PostgreSQL.
+ ```shell
+ export CODER_DATA=$HOME/.config/coderv2-docker
+ export DOCKER_GROUP=$(getent group docker | cut -d: -f3)
+ mkdir -p $CODER_DATA
+ docker run --rm -it \
+ -v $CODER_DATA:/home/coder/.config \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ --group-add $DOCKER_GROUP \
+ ghcr.io/coder/coder:latest
+ ```
+ > This will use Coder's tunnel and built-in database. See our [Docker documentation](../install/docker.md) for other configuration options such as running on localhost, using docker-compose, and external PostgreSQL.
-1. In new terminal, [install Coder](../install/) in order to connect to your deployment through the CLI.
+1. In new terminal, [install Coder](../install/) in order to connect to your deployment through the CLI.
- ```shell
- curl -L https://coder.com/install.sh | sh
- ```
+ ```shell
+ curl -L https://coder.com/install.sh | sh
+ ```
-1. Run `coder login ` and follow the
- interactive instructions to create your user.
+1. Run `coder login ` and follow the
+ interactive instructions to create your user.
-1. Pull the "Docker" example template using the interactive `coder templates init`:
+1. Pull the "Docker" example template using the interactive `coder templates init`:
- ```shell
- coder templates init
- cd docker
- ```
+ ```shell
+ coder templates init
+ cd docker
+ ```
-1. Push up the template with `coder templates create`
+1. Push up the template with `coder templates create`
-1. Open the dashboard in your browser to create your
- first workspace:
+1. Open the dashboard in your browser to create your
+ first workspace:
-
+
- Then navigate to `Templates > docker > Create workspace`
+ Then navigate to `Templates > docker > Create workspace`
-
+
- Now wait a few moments for the workspace to build... After the first build,
- the image is cached and subsequent builds will take a few seconds.
+ Now wait a few moments for the workspace to build... After the first build,
+ the image is cached and subsequent builds will take a few seconds.
-1. Your workspace is ready to go!
+1. Your workspace is ready to go!
-
+
- Open up a web application or [SSH in](../ides.md#ssh-configuration).
+ Open up a web application or [SSH in](../ides.md#ssh-configuration).
-1. If you want to modify the Docker image or template, edit the files in the
- previously created `./docker` directory, then run `coder templates push`.
+1. If you want to modify the Docker image or template, edit the files in the
+ previously created `./docker` directory, then run `coder templates push`.
## Troubleshooting
diff --git a/docs/quickstart/google-cloud-platform.md b/docs/quickstart/google-cloud-platform.md
index 2da7320459b4e..e9f563dfc5971 100644
--- a/docs/quickstart/google-cloud-platform.md
+++ b/docs/quickstart/google-cloud-platform.md
@@ -1,12 +1,12 @@
# Google Cloud Platform
-In this quickstart, you will learn how to deploy the Coder control plane instance and your first template.
+In this quickstart, you will learn how to deploy the Coder control plane instance and your first template.
## Requirements
-This quickstart assumes you have `roles/compute.instanceAdmin.v1` access to your Google Cloud Platform project.
+This quickstart assumes you have `roles/compute.instanceAdmin.v1` access to your Google Cloud Platform project.
-## Setting Up your VM
+## Setting Up your VM
If this is the first time you’re creating a VM on this project, you will need to enable the `Compute Engine API`. On the Compute Engine API page, click `enable` and wait for the service to finish connecting.
@@ -34,10 +34,10 @@ This will give you a terminal into the VM that we will use to install Coder.
## Install Coder
-In the terminal, run the following command
+In the terminal, run the following command
```sh
-curl -fsSL https://coder.com/install.sh | sh
+curl -fsSL https://coder.com/install.sh | sh
```
## Run Coder
@@ -46,9 +46,9 @@ For this tutorial, we will run Coder as a `systemd` service. You can run Coder i
First, edit the `coder.env` file to enable `CODER_TUNNEL` by setting the value to true with the following command:
-``` sh
+```sh
sudo vim /etc/coder.d/coder.env
-```
+```
@@ -56,17 +56,17 @@ Exit vim and run the following command to start Coder as a system service:
```sh
sudo systemctl enable --now coder
-```
+```
-The following command shows the Coder service's logs, including the Access URL. The Access URL will be used to access the Coder control plane.
+The following command shows the Coder service's logs, including the Access URL. The Access URL will be used to access the Coder control plane.
```sh
-journalctl -u coder.service -b
-```
+journalctl -u coder.service -b
+```
-In this instance, Coder can be accessed at the URL `https://fcca2f3bfc9d2e3bf1b9feb50e723448.pit-1.try.coder.app`.
+In this instance, Coder can be accessed at the URL `https://fcca2f3bfc9d2e3bf1b9feb50e723448.pit-1.try.coder.app`.
Copy the URL and run the following command to create the workspace admin:
@@ -74,37 +74,37 @@ Copy the URL and run the following command to create the workspace admin:
coder login
```
-Fill out the prompts and be sure to save use email and password. This is your admin login. Now, you can now access Coder from your local machine by navigating to the `***.try.coder.app` URL and logging in with that same username and password.
+Fill out the prompts and be sure to save use email and password. This is your admin login. Now, you can now access Coder from your local machine by navigating to the `***.try.coder.app` URL and logging in with that same username and password.
## Creating and Uploading your First Template
-First, run `coder template init` to create your first template. You’ll be given a list of prefabricated templates. This tutorial shows you how to create a Linux based template on GCP.
+First, run `coder template init` to create your first template. You’ll be given a list of prefabricated templates. This tutorial shows you how to create a Linux based template on GCP.
-Select the `Develop in Linux on Google Cloud`, then `cd ./gcp-linux`.
+Select the `Develop in Linux on Google Cloud`, then `cd ./gcp-linux`.
-Run the following command:
+Run the following command:
```sh
coder templates create
```
-It will ask for your `project-id`, which you can find on the home page of your GCP Dashboard.
+It will ask for your `project-id`, which you can find on the home page of your GCP Dashboard.
Given it’s your first time setting up Coder, it may give an error that will look like the following:
-In the error message will be a link. In this case, the URL is `https://console.developes.google.com/apis/api/iam.googles.com/overview:?project=1073148106645`. Copy the respective URL from your error message, and visit it via your browser. It may ask you to enable `Identity and Access Management (IAM) API`.
+In the error message will be a link. In this case, the URL is `https://console.developes.google.com/apis/api/iam.googles.com/overview:?project=1073148106645`. Copy the respective URL from your error message, and visit it via your browser. It may ask you to enable `Identity and Access Management (IAM) API`.
-Click `enable` and wait as the API initializes for your account.
+Click `enable` and wait as the API initializes for your account.
Once initialized, click create credentials in the upper right-hand corner. Select the `Compute Engine API` from the dropdown, and select `Application Data` under `What data will you be accessing?`. In addition, select `Yes, I’m using one or more` under `Are you planning on using this API with Compute Engine, Kubernetes Engine, App Engine, or Cloud Functions?`.
-Back in your GCP terminal, run the `coder templates create` one more time.
+Back in your GCP terminal, run the `coder templates create` one more time.
Congrats! You can now create new Linux-based workspaces that use Google Cloud Platform. Go onto your Coder dashboard, build your workspace, and get started coding!
diff --git a/docs/templates.md b/docs/templates.md
index 7ea7f7165096b..3bb2f2ead67f0 100644
--- a/docs/templates.md
+++ b/docs/templates.md
@@ -343,7 +343,7 @@ Template permissions can be used to give users and groups access to specific tem
## Community Templates
-You can see a list of community templates by our users [here](https://github.com/coder/coder/blob/main/examples/templates/community-templates.md).
+You can see a list of community templates by our users [here](https://github.com/coder/coder/blob/main/examples/templates/community-templates.md).
## Next Steps
diff --git a/docs/templates/resource-persistence.md b/docs/templates/resource-persistence.md
index 44ab17977ea22..e6a3cfaa451f7 100644
--- a/docs/templates/resource-persistence.md
+++ b/docs/templates/resource-persistence.md
@@ -1,6 +1,6 @@
# Resource Persistence
-Coder templates have full control over workspace ephemerality. In a
+Coder templates have full control over workspace ephemerality. In a
completely ephemeral workspace, there are zero resources in the On state. In
a completely persistent workspace, there is no difference between the Off and
On states.
@@ -46,11 +46,12 @@ resource "docker_volume" "home_volume" {
Because we depend on `coder_workspace.me.owner`, if the owner changes their
username, Terraform would recreate the volume (wiping its data!) the next
-time the workspace restarts.
+time the workspace restarts.
Therefore, persistent resource names must only depend on immutable IDs such as:
-* `coder_workspace.me.owner_id`
-* `coder_workspace.me.id`
+
+- `coder_workspace.me.owner_id`
+- `coder_workspace.me.id`
```hcl
data "coder_workspace" "me" {
@@ -64,6 +65,7 @@ resource "docker_volume" "home_volume" {
```
## 🛡 Bulletproofing
+
Even if our persistent resource depends exclusively on static IDs, a change to
the `name` format or other attributes would cause Terraform to rebuild the resource.
diff --git a/docs/workspaces.md b/docs/workspaces.md
index 858ec2e67eabc..ec05178e1d299 100644
--- a/docs/workspaces.md
+++ b/docs/workspaces.md
@@ -92,5 +92,6 @@ Coder stores macOS and Linux logs at the following locations:
---
## Up next
+
- Learn about how to personalize your workspace with [Dotfiles](./dotfiles.md)
- Learn about using [IDEs](./ides.md)