docs: nest the CLI reference by subcommand (#29956)

## Summary

Nests the CLI reference by subcommand so the Command Line sidebar
collapses from 156 flat entries to 49 top-level verbs.
Each page's URL follows the invocation, its page title is the full
command as inline code, and its sidebar label is only its own verb as
inline code.

| | Before | After |
| --- | --- | --- |
| File | `docs/reference/cli/oauth2-provider_dcr_disable.md` |
`docs/reference/cli/oauth2-provider/dcr/disable.md` |
| URL | `/reference/cli/oauth2-provider_dcr_disable` |
`/reference/cli/oauth2-provider/dcr/disable` |
| Page title (front matter) | `oauth2-provider dcr disable` | `` `coder
oauth2-provider dcr disable` `` |
| Sidebar label (manifest) | `oauth2-provider dcr disable` | ``
`disable` `` |

Resolves DOCS-140 (coder/coder half). Also fixes the Makefile part of
DOCS-1073 / DOCS-912, which this change depends on.

## Changes

- `scripts/clidocgen`: pages nest by command path. A command with
visible subcommands becomes its directory's `index.md`, so
`oauth2-provider/index.md` and `oauth2-provider/dcr/index.md` sit above
`oauth2-provider/dcr/disable.md`. Subcommand table links are relative to
the parent page.
- `scripts/clidocgen`: the manifest "Command Line" section is built from
the command tree (nested, sorted by name, hidden commands skipped)
instead of a flat list. The redundant `coder` child that pointed back at
`reference/cli/index.md` is gone.
- `Makefile`: the CLI rule now replaces `docs/reference/cli/` wholesale,
so stale pages get removed. The manifest rule now runs `clidocgen
-manifest-only` on top of the API staging manifest, so the CLI nav is
generated instead of edited by hand. As a result, the nine pages that
had no nav entry (`ai-gateway*`, `secret enable/disable`, `server
fix-oidc-links`) now have one.
- `scripts/configdocgen` and 48 prose pages: links point at the new
paths (for example `reference/cli/server.md` is now
`reference/cli/server/index.md`).

## How to review/QA this PR

- `docs/reference/cli/**/*` (approximately 190 pages): Each of these
pages are generated automatically. Some pages appear deleted, and some
pages appear new. Every deleted page corresponds to a new page somewhere
else, so no information is being deleted. The docs in this section
should adhere to the following, so a test in the build preview for each
of these items should be satisfactory:
- [ ] Each subcommand of a command gets nested as a child instead of
being displayed as a flat list.
  - [ ] Each parent command is stored in an `index.md` file.
- [ ] The title of each page inside the page should now feature the full
`coder XYZ` command.
- [ ] The title of each page inside the page should now be formatted as
inline code.
- [ ] The title of each page in the sidebar should be the most granular
subcommand of the whole command string (if the page's title is `coder
ai-gateway keys create`, the sidebar label is `create`).
- [ ] The title of each page in the sidebar should now be formatted as
inline code.
  - [ ] The page slug for each page is now the most granular subcommand.
  - [ ] All links now point to the correct page.
- `docs/manifest.json`: The changes here reflect the updated structure
of the `docs/reference/cli` section.
- `docs/**/*.md` outside of `docs/reference/cli/**/*` (approximately 50
pages): The extent of the changes in these pages are just updating the
paths to point to the new page locations.
- [ ] The links on the page all point to the correct new path in
`docs/reference/cli`.
- `scripts/clidocgen` (4 files): This is the Go code responsible for
generating everything inside of `docs/reference/cli/**/*`. A typical
code review here should be satisfactory.
- `scripts/configdocgen` (2 files): these two files just have updates to
the raw `.md` path used by `docs/admin/setup/configuration-reference.md`
and updates the tests to reflect that.
- `Makefile`: This updates the `make` targets for generating the CLI
docs to fit the new structure.

## Merge ordering

Without the renderer PRs deployed, both docs sites show literal
backticks in titles and sidebar labels. Without the redirects, the old
flat URLs return 404.

1. Deploy before merging this PR: coder/docs-engine#176 (beta-docs
renders these titles as inline code) and coder/coder.com#1111 (classic
docs renders them as inline code). Both are safe to ship first, because
titles without backticks render as before.
2. Merge this PR.
3. Merge coder/coder.com#1112 (redirects from the old flat URLs) only
once this content reaches the mainline release branch that serves
unversioned `/docs`.

## Testing

- `go test ./scripts/clidocgen/ ./scripts/configdocgen/
./scripts/docshtmlcheck/`: pass. New tests cover page paths, subcommand
links, the nested manifest, and front matter quoting.
- `make docs/reference/cli/index.md docs/manifest.json
docs/admin/setup/configuration-reference.md`, then a forced rerun: the
second run produced no diff.
- Checked the manifest: all 164 CLI entries resolve to a file, no page
is missing a nav entry, and everything outside "Command Line" is
byte-identical.
- Relative `.md` links across `docs/`: 0 broken, same as `main`.
- `make pre-commit` and `make pre-push`: pass. On earlier pre-push
attempts, different unrelated vitest files timed out under host load.
Those files pass when run alone, and the final push passed with
`PARALLEL_JOBS=1`.

<details>
<summary>Implementation plan and decision log</summary>

**Goal (from DOCS-140 and the requester):** URLs follow the command
hierarchy. Pages are titled with the full command, and sidebar entries
with the last verb only. Both are formatted as inline code.

**Contract with the renderers:** a title wrapped entirely in one pair of
backticks (``^`[^`]+`$``) renders as inline code. Plain-text consumers
(`<title>`, meta, search, llms corpus) strip the backticks. Page title
comes from front matter `title`, and the sidebar label from the manifest
node `title`.

**Decisions**

- A parent command is `dir/index.md` rather than a sibling `dir.md`. The
root CLI page is already `index.md`, and both docs-engine and the legacy
coder.com renderer map `x/index.md` to `/x`.
- The manifest is built from the command tree, not from the written
files, so ordering is deterministic and the nesting matches the pages
exactly.
- The manifest discard bug (DOCS-1073 item 1) is fixed here, because
without that fix the generated nested manifest would never reach the
tree. DOCS-1073 items 2 through 4 (a prose fix and a hidden-command
policy) are out of scope.
- `-manifest-only` keeps the existing parallel `make gen` layout: the
API rule still owns `_gen/manifest-staging.json`, and CLI regeneration
doesn't retrigger swag.
- The renderer and redirect work lives in the companion PRs in
coder/docs-engine and coder/coder.com. It is linked above and not
duplicated here.

</details>

---

> [!NOTE]
> Generated by Coder Agents on behalf of @nickvigilante.
This commit is contained in:
Nick Vigilante
2026-09-28 15:44:10 -04:00
committed by GitHub
parent 0733e8984c
commit d40e24cf7d
247 changed files with 2241 additions and 2000 deletions
+12 -8
View File
@@ -1355,9 +1355,10 @@ docs/reference/cli/index.md: node_modules/.installed examples/examples.gen.json
mkdir -p "$$tmpdir/docs/reference/cli" && \
cp docs/manifest.json "$$tmpdir/docs/manifest.json" && \
CI=true DOCS_DIR="$$tmpdir/docs" _gen/bin/clidocgen && \
pnpm exec markdownlint-cli2 --fix "$$tmpdir/docs/reference/cli/*.md" && \
pnpm exec markdown-table-formatter "$$tmpdir/docs/reference/cli/*.md" && \
for f in "$$tmpdir/docs/reference/cli/"*.md; do mv "$$f" "docs/reference/cli/$$(basename "$$f")"; done && \
pnpm exec markdownlint-cli2 --fix "$$tmpdir/docs/reference/cli/**/*.md" && \
pnpm exec markdown-table-formatter "$$tmpdir/docs/reference/cli/**/*.md" && \
rm -rf docs/reference/cli && \
mv "$$tmpdir/docs/reference/cli" docs/reference/cli && \
rm -rf "$$tmpdir"
docs/admin/security/audit-logs.md: node_modules/.installed coderd/database/querier.go scripts/auditdocgen/main.go enterprise/audit/table.go coderd/rbac/object_gen.go | _gen _gen/bin/auditdocgen
@@ -1404,11 +1405,14 @@ coderd/apidoc/.gen: \
rm -rf "$$tmpdir" "$$swagtmp"
touch "$@"
docs/manifest.json: site/node_modules/.installed coderd/apidoc/.gen docs/reference/cli/index.md | _gen
tmpdir=$$(mktemp -d -p _gen) && tmpfile=$$(realpath "$$tmpdir")/$(notdir $@) && \
cp _gen/manifest-staging.json "$$tmpfile" && \
./scripts/biome_format.sh "$$tmpfile" && \
mv "$$tmpfile" "$@" && rm -rf "$$tmpdir"
# The API doc rule stages the manifest with its section rebuilt; clidocgen then
# rebuilds the "Command Line" section on top of it so both land in the tree.
docs/manifest.json: site/node_modules/.installed coderd/apidoc/.gen docs/reference/cli/index.md _gen/bin/clidocgen | _gen
tmpdir=$$(mktemp -d -p _gen) && tmpdir=$$(realpath "$$tmpdir") && \
cp _gen/manifest-staging.json "$$tmpdir/manifest.json" && \
CI=true DOCS_DIR="$$tmpdir" _gen/bin/clidocgen -manifest-only && \
./scripts/biome_format.sh "$$tmpdir/manifest.json" && \
mv "$$tmpdir/manifest.json" "$@" && rm -rf "$$tmpdir"
coderd/apidoc/swagger.json: site/node_modules/.installed coderd/apidoc/.gen
touch "$@"
+1 -1
View File
@@ -88,7 +88,7 @@ Reference the documentation for your chosen provider for more information on how
### Workspace CLI
Use [`external-auth`](../../reference/cli/external-auth.md) in the Coder CLI to access a token within the workspace:
Use [`external-auth`](../../reference/cli/external-auth/index.md) in the Coder CLI to access a token within the workspace:
```sh
coder external-auth access-token <USER_DEFINED_ID>
@@ -32,7 +32,7 @@ choose a template from the
```
A list of available templates is shown in the
[templates_init](../../../../reference/cli/templates.md) reference.
[templates_init](../../../../reference/cli/templates/index.md) reference.
1. `cd` into the directory and push the template to your Coder deployment:
+2 -2
View File
@@ -39,7 +39,7 @@ coder users list --output json | \
jq -r '["username","email","created_at","status"], (.[] | [.username, .email, .created_at, .status]) | @csv' > users.csv
```
Visit the [users list](../../reference/cli/users_list.md) documentation for more options.
Visit the [users list](../../reference/cli/users/list.md) documentation for more options.
### API
@@ -85,6 +85,6 @@ After the attribute is uploaded, you'll have a Coder filter option within your D
## Related Resources
- [DX Data Cloud Documentation](https://docs.getdx.com/)
- [Coder CLI](../../reference/cli/users.md)
- [Coder CLI](../../reference/cli/users/index.md)
- [Coder API](../../reference/api/users.md)
- [PlatformX Integration](./platformx.md)
+2 -2
View File
@@ -91,7 +91,7 @@ for details.
Connection events are also dispatched as service logs and can be captured and
categorized using any log management tool such as [Splunk](https://splunk.com).
Example of a [JSON formatted](../../reference/cli/server.md#--log-json)
Example of a [JSON formatted](../../reference/cli/server/index.md#--log-json)
connection log entry, when an SSH connection is made:
```json
@@ -124,7 +124,7 @@ connection log entry, when an SSH connection is made:
}
```
Example of a [human readable](../../reference/cli/server.md#--log-human)
Example of a [human readable](../../reference/cli/server/index.md#--log-human)
connection log entry, when `code-server` is opened:
```console
+7 -7
View File
@@ -111,7 +111,7 @@ query fails.
#### Database Latency High
**Problem:** This code is returned if the median latency is higher than the
[configured threshold](../../reference/cli/server.md#--health-check-threshold-database).
[configured threshold](../../reference/cli/server/index.md#--health-check-threshold-database).
This may not be an error as such, but is an indication of a potential issue.
**Solution:** Investigate the sizing of the configured database with regard to
@@ -121,9 +121,9 @@ configured threshold to a higher value (this will not address the root cause).
> [!TIP]
> You can enable
> [detailed database metrics](../../reference/cli/server.md#--prometheus-collect-db-metrics)
> [detailed database metrics](../../reference/cli/server/index.md#--prometheus-collect-db-metrics)
> in Coder's Prometheus endpoint. If you have
> [tracing enabled](../../reference/cli/server.md#--trace), these traces may also
> [tracing enabled](../../reference/cli/server/index.md#--trace), these traces may also
> contain useful information regarding Coder's database activity.
## DERP
@@ -131,7 +131,7 @@ configured threshold to a higher value (this will not address the root cause).
Coder workspace agents may use
[DERP (Designated Encrypted Relay for Packets)](https://tailscale.com/blog/how-tailscale-works/#encrypted-tcp-relays-derp)
to communicate with Coder. This requires connectivity to a number of configured
[DERP servers](../../reference/cli/server.md#--derp-config-path) which are used
[DERP servers](../../reference/cli/server/index.md#--derp-config-path) which are used
to relay traffic between Coder and workspace agents. Coder periodically queries
the health of its configured DERP servers and may return one or more of the
following:
@@ -151,7 +151,7 @@ still be able to reach their workspaces, connection performance may be degraded.
> [!NOTE]
> This may also be shown if you have
> [forced websocket connections for DERP](../../reference/cli/server.md#--derp-force-websockets).
> [forced websocket connections for DERP](../../reference/cli/server/index.md#--derp-force-websockets).
**Solution:** ensure that any proxies you use allow connection upgrade with the
`Upgrade: derp` header.
@@ -203,7 +203,7 @@ to establish [direct connections](../networking/stun.md). Without at least one
working STUN server, direct connections may not be possible.
**Solution:** Ensure that the
[configured STUN severs](../../reference/cli/server.md#--derp-server-stun-addresses)
[configured STUN severs](../../reference/cli/server/index.md#--derp-server-stun-addresses)
are reachable from Coder and that UDP traffic can be sent/received on the
configured port.
@@ -317,7 +317,7 @@ be built until there is at least one provisioner daemon running.
If you are using
[External Provisioner Daemons](../../install/operate/provisioners/index.md), ensure
that they are able to successfully connect to Coder. Otherwise, ensure
[`--provisioner-daemons`](../../reference/cli/server.md#--provisioner-daemons)
[`--provisioner-daemons`](../../reference/cli/server/index.md#--provisioner-daemons)
is set to a value greater than 0.
> [!NOTE]
+4 -4
View File
@@ -15,11 +15,11 @@ on Kubernetes or `journalctl -u coder` if you deployed Coder on a host
machine/VM.
- To change the log format/location, you can set
[`CODER_LOGGING_HUMAN`](../../reference/cli/server.md#--log-human) and
[`CODER_LOGGING_JSON`](../../reference/cli/server.md#--log-json) server config.
[`CODER_LOGGING_HUMAN`](../../reference/cli/server/index.md#--log-human) and
[`CODER_LOGGING_JSON`](../../reference/cli/server/index.md#--log-json) server config.
options.
- To only display certain types of logs, use
the[`CODER_LOG_FILTER`](../../reference/cli/server.md#-l---log-filter) server
the[`CODER_LOG_FILTER`](../../reference/cli/server/index.md#-l---log-filter) server
config. Using `.*` will result in the `DEBUG` log level being used.
> [!NOTE]
@@ -33,7 +33,7 @@ Connect logs are all captured in the `coderd` logs.
## `provisionerd` Logs
Logs for [external provisioners](../../install/operate/provisioners/index.md) are structured
[and configured](../../reference/cli/provisioner_start.md#--log-human) similarly
[and configured](../../reference/cli/provisioner/start.md#--log-human) similarly
to `coderd` logs. Use these logs to troubleshoot and monitor the Terraform
operations behind workspaces and templates.
+5 -5
View File
@@ -67,10 +67,10 @@ OOM/OOD notifications can be delivered to users in VS Code.
You can configure:
- SMTP or webhooks globally with
[`CODER_NOTIFICATIONS_METHOD`](../../../reference/cli/server.md#--notifications-method)
[`CODER_NOTIFICATIONS_METHOD`](../../../reference/cli/server/index.md#--notifications-method)
(default: `smtp`).
- Coder dashboard Inbox with
[`CODER_NOTIFICATIONS_INBOX_ENABLED`](../../../reference/cli/server.md#--notifications-inbox-enabled)
[`CODER_NOTIFICATIONS_INBOX_ENABLED`](../../../reference/cli/server/index.md#--notifications-inbox-enabled)
(default: `true`).
Premium customers can configure which method to use for each of the supported
@@ -274,7 +274,7 @@ Custom notifications let you send an ad‑hoc notification to yourself using the
These are useful for surfacing the result of long-running tasks or important state changes.
At this time, custom notifications can only be sent to the user making the request.
To send a custom notification, execute [`coder notifications custom <title> <message>`](../../../reference/cli/notifications_custom.md).
To send a custom notification, execute [`coder notifications custom <title> <message>`](../../../reference/cli/notifications/custom.md).
<!-- TODO(ssncferreira): Update when sending custom notifications to multiple users/roles is supported.
Explain deduplication behaviour for multiple users/roles.
@@ -311,10 +311,10 @@ Administrators may wish to stop _all_ notifications across the deployment. We
support a killswitch in the CLI for these cases.
To pause sending notifications, execute
[`coder notifications pause`](../../../reference/cli/notifications_pause.md).
[`coder notifications pause`](../../../reference/cli/notifications/pause.md).
To resume sending notifications, execute
[`coder notifications resume`](../../../reference/cli/notifications_resume.md).
[`coder notifications resume`](../../../reference/cli/notifications/resume.md).
## Troubleshooting
+3 -3
View File
@@ -52,7 +52,7 @@ In order for clients to be able to establish direct connections:
communicate with each other using their locally assigned IP addresses, then a
direct connection can be established immediately. Otherwise, the client and
agent will contact
[the configured STUN servers](../../reference/cli/server.md#--derp-server-stun-addresses)
[the configured STUN servers](../../reference/cli/server/index.md#--derp-server-stun-addresses)
to try and determine which `ip:port` can be used to communicate with their
counterpart. See [STUN and NAT](./stun.md) for more details on how this
process works.
@@ -60,7 +60,7 @@ In order for clients to be able to establish direct connections:
**all ports** to each others' respective networks.
- To establish a direct connection, both agent and client use STUN. This
involves sending UDP packets outbound on `udp/3478` to the configured
[STUN server](../../reference/cli/server.md#--derp-server-stun-addresses).
[STUN server](../../reference/cli/server/index.md#--derp-server-stun-addresses).
If either the agent or the client are unable to send and receive UDP packets
to a STUN server, then direct connections will not be possible.
- Both agents and clients will then establish a
@@ -115,7 +115,7 @@ for more information on how this process works.
If a direct connection is not available (e.g. client or server is behind NAT),
Coder will use a relayed connection. By default,
[Coder uses Google's public STUN server](../../reference/cli/server.md#--derp-server-stun-addresses),
[Coder uses Google's public STUN server](../../reference/cli/server/index.md#--derp-server-stun-addresses),
but this can be disabled or changed for
[Air-gapped deployments](../../install/prepare/airgap.md).
+1 -1
View File
@@ -115,7 +115,7 @@ disable direct connections and relay all traffic via DERP instead, which
will not be affected by the low MTU.
To disable direct connections, set the
[`--block-direct-connections`](../../reference/cli/server.md#--block-direct-connections)
[`--block-direct-connections`](../../reference/cli/server/index.md#--block-direct-connections)
flag or `CODER_BLOCK_DIRECT` environment variable on the control plane.
## Throughput
+1 -1
View File
@@ -76,7 +76,7 @@ Use a reverse proxy to handle TLS termination with automatic certificate managem
If your reverse proxy rewrites the request `Host` and forwards the original
host in `X-Forwarded-Host`, configure
[`CODER_PROXY_TRUSTED_ORIGINS`](../../reference/cli/server.md#--proxy-trusted-origins)
[`CODER_PROXY_TRUSTED_ORIGINS`](../../reference/cli/server/index.md#--proxy-trusted-origins)
to trust that proxy's address. Otherwise Coder will ignore `X-Forwarded-Host`
for subdomain app routing.
+2 -2
View File
@@ -98,7 +98,7 @@ for details.
Audit trails are also dispatched as service logs and can be captured and
categorized using any log management tool such as [Splunk](https://splunk.com).
Example of a [JSON formatted](../../reference/cli/server.md#--log-json) audit
Example of a [JSON formatted](../../reference/cli/server/index.md#--log-json) audit
log entry:
```json
@@ -134,7 +134,7 @@ log entry:
}
```
Example of a [human readable](../../reference/cli/server.md#--log-human) audit
Example of a [human readable](../../reference/cli/server/index.md#--log-human) audit
log entry:
```console
+9 -9
View File
@@ -10,7 +10,7 @@ reading or misusing them.
## How it works
Coder allows administrators to specify
[external token encryption keys](../../reference/cli/server.md#--external-token-encryption-keys).
[external token encryption keys](../../reference/cli/server/index.md#--external-token-encryption-keys).
If configured, Coder will use these keys to encrypt external user tokens before
storing them in the database. The encryption algorithm used is AES-256-GCM with
a 32-byte key length.
@@ -59,7 +59,7 @@ values using that key to a new key.
- Ensure you have a valid backup of your database. **Do not skip this step.** If
you are using the built-in PostgreSQL database, you can run
[`coder server postgres-builtin-url`](../../reference/cli/server_postgres-builtin-url.md)
[`coder server postgres-builtin-url`](../../reference/cli/server/postgres-builtin-url.md)
to get the connection URL.
- Generate a 32-byte random key and base64-encode it. For example:
@@ -104,7 +104,7 @@ if you need to rotate keys, you can perform the following procedure:
- Generate a new encryption key following the same procedure as above.
- Add the above key to the list of
[external token encryption keys](../../reference/cli/server.md#--external-token-encryption-keys).
[external token encryption keys](../../reference/cli/server/index.md#--external-token-encryption-keys).
**The new key must appear first in the list**. For example, in the Kubernetes
secret created above:
@@ -124,13 +124,13 @@ data:
encrypted with the old key(s).
- To re-encrypt all encrypted database fields with the new key, run
[`coder server dbcrypt rotate`](../../reference/cli/server_dbcrypt_rotate.md).
[`coder server dbcrypt rotate`](../../reference/cli/server/dbcrypt/rotate.md).
This command will re-encrypt all tokens with the specified new encryption key.
We recommend performing this action during a maintenance window.
This command requires direct access to the database.
If you are using the built-in PostgreSQL database, you can run
[`coder server postgres-builtin-url`](../../reference/cli/server_postgres-builtin-url.md)
[`coder server postgres-builtin-url`](../../reference/cli/server/postgres-builtin-url.md)
to get the connection URL.
- Once the above command completes successfully, remove the old encryption key
@@ -149,7 +149,7 @@ To disable encryption, perform the following actions:
being written, which may cause the next step to fail.
- Run
[`coder server dbcrypt decrypt`](../../reference/cli/server_dbcrypt_decrypt.md).
[`coder server dbcrypt decrypt`](../../reference/cli/server/dbcrypt/decrypt.md).
This command will decrypt all encrypted user tokens and revoke all active
encryption keys.
@@ -160,7 +160,7 @@ To disable encryption, perform the following actions:
> to help prevent accidentally decrypting data.
- Remove all
[external token encryption keys](../../reference/cli/server.md#--external-token-encryption-keys)
[external token encryption keys](../../reference/cli/server/index.md#--external-token-encryption-keys)
from Coder's configuration.
- Start `coderd`. You can now safely delete the encryption keys from your secret
@@ -181,12 +181,12 @@ To delete all encrypted data from your database, perform the following actions:
being written.
- Run
[`coder server dbcrypt delete`](../../reference/cli/server_dbcrypt_delete.md).
[`coder server dbcrypt delete`](../../reference/cli/server/dbcrypt/delete.md).
This command will delete all encrypted user tokens and revoke all active
encryption keys.
- Remove all
[external token encryption keys](../../reference/cli/server.md#--external-token-encryption-keys)
[external token encryption keys](../../reference/cli/server/index.md#--external-token-encryption-keys)
from Coder's configuration.
- Start `coderd`. You can now safely delete the encryption keys from your secret
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -4,7 +4,7 @@ title: Configure control plane access
The control plane's primary configuration is done via environment variables. For
a full list of the options, run `coder server --help` or see our
[CLI documentation](../../reference/cli/server.md).
[CLI documentation](../../reference/cli/server/index.md).
> [!TIP]
> Need to look up an exact environment variable, CLI flag, or YAML key for a
@@ -65,8 +65,8 @@ If you are providing TLS certificates directly to the control plane, either
1. Configure multiple certificates and keys via
[`coder.tls.secretNames`](../../../helm/coder/values.yaml)
in the Helm Chart, or
[`--tls-cert-file`](../../reference/cli/server.md#--tls-cert-file) and
[`--tls-key-file`](../../reference/cli/server.md#--tls-key-file) command line
[`--tls-cert-file`](../../reference/cli/server/index.md#--tls-cert-file) and
[`--tls-key-file`](../../reference/cli/server/index.md#--tls-key-file) command line
options (these both take a comma separated list of files; list certificates
and their respective keys in the same order).
+4 -4
View File
@@ -102,7 +102,7 @@ The template builder's first step also links to alternative creation paths:
You can use the [Coder CLI](../../install/cli.md) to manage templates for Coder.
After [logging in](../../reference/cli/login.md) to your deployment, create a
After [logging in](../../reference/cli/login/index.md) to your deployment, create a
folder to store your templates:
```sh
@@ -111,7 +111,7 @@ mkdir $HOME/coder-templates
cd $HOME/coder-templates
```
Use the [`templates init`](../../reference/cli/templates_init.md) command to
Use the [`templates init`](../../reference/cli/templates/init.md) command to
pull a starter template:
```sh
@@ -128,7 +128,7 @@ cd universal-template
```
Next, push it to Coder with the
[`templates push`](../../reference/cli/templates_push.md) command:
[`templates push`](../../reference/cli/templates/push.md) command:
```sh
coder templates push
@@ -139,7 +139,7 @@ infrastructure in the given location. Learn how to configure
[provisioner authentication](../../install/operate/provisioners/index.md).
You can edit the metadata of the template such as the display name with the
[`templates edit`](../../reference/cli/templates_edit.md) command:
[`templates edit`](../../reference/cli/templates/edit.md) command:
```sh
coder templates edit universal-template \
@@ -17,7 +17,7 @@ All of these examples use
for the script declaration. With heredoc strings, you can script without messy
escape codes, just as if you were working in your terminal.
Some of the examples use the [`coder stat`](../../../reference/cli/stat.md)
Some of the examples use the [`coder stat`](../../../reference/cli/stat/index.md)
command. This is useful for determining CPU and memory usage of the VM or
container that the workspace is running in, which is more accurate than resource
usage about the workspace's host.
@@ -450,16 +450,16 @@ Because the condition evaluates based on the workspace owner, provisioning or de
#### Validation
To confirm that prebuild jobs are correctly routed to the new provisioner pool, use the Provisioner Jobs dashboard or the [`coder provisioner jobs list`](../../../reference/cli/provisioner_jobs_list.md) CLI command to inspect job metadata and tags.
To confirm that prebuild jobs are correctly routed to the new provisioner pool, use the Provisioner Jobs dashboard or the [`coder provisioner jobs list`](../../../reference/cli/provisioner/jobs/list.md) CLI command to inspect job metadata and tags.
Follow these steps:
1. Publish the new template version.
1. Validate the status of the prebuild provisioners.
Check the Provisioners page in the Coder dashboard or run the [`coder provisioner list`](../../../reference/cli/provisioner_list.md) CLI command to ensure all prebuild provisioners are up to date and the tags are properly set.
Check the Provisioners page in the Coder dashboard or run the [`coder provisioner list`](../../../reference/cli/provisioner/list.md) CLI command to ensure all prebuild provisioners are up to date and the tags are properly set.
1. Wait for the prebuilds reconciliation loop to run.
The loop frequency is controlled by the configuration value [`CODER_WORKSPACE_PREBUILDS_RECONCILIATION_INTERVAL`](../../../reference/cli/server.md#--workspace-prebuilds-reconciliation-interval).
The loop frequency is controlled by the configuration value [`CODER_WORKSPACE_PREBUILDS_RECONCILIATION_INTERVAL`](../../../reference/cli/server/index.md#--workspace-prebuilds-reconciliation-interval).
When the loop runs, it will provision prebuilds for the new template version and deprovision prebuilds for the previous version.
Both provisioning and deprovisioning jobs for prebuilds should display the tag `is_prebuild=true`.
@@ -216,7 +216,7 @@ module "jupyter" {
If you cannot enable a
[wildcard subdomain](../../../admin/setup/index.md#wildcard-access-url), you can
configure the template to run Jupyter on a path. There is however
[security risk](../../../reference/cli/server.md#--dangerous-allow-path-app-sharing)
[security risk](../../../reference/cli/server/index.md#--dangerous-allow-path-app-sharing)
running an app on a path and the template code is more complicated with coder
value substitution to recreate the path structure.
@@ -7,7 +7,7 @@ automating the creation of new versions in CI/CD pipelines.
These pipelines will require tokens for your deployment. To cap token lifetime
on creation,
[configure the control plane to set a shorter max token lifetime](../../../reference/cli/server.md#--max-token-lifetime).
[configure the control plane to set a shorter max token lifetime](../../../reference/cli/server/index.md#--max-token-lifetime).
## coderd Terraform Provider
@@ -100,6 +100,6 @@ for an example of how to test and publish Coder templates in a CI/CD pipeline.
### Next steps
- [Coder CLI Reference](../../../reference/cli/templates.md)
- [Coder CLI Reference](../../../reference/cli/templates/index.md)
- [Coderd Terraform Provider Reference](https://registry.terraform.io/providers/coder/coderd/latest/docs)
- [Coderd API Reference](../../../reference/index.md)
@@ -93,7 +93,7 @@ inside a folder containing the Terraform source code for a given template.
This will create a new file named `.terraform.lock.hcl` in the current
directory. When you next run
[`coder templates push`](../../../reference/cli/templates_push.md), the lock
[`coder templates push`](../../../reference/cli/templates/push.md), the lock
file will be stored alongside with the other template source code.
> [!NOTE]
@@ -108,7 +108,7 @@ stopped due to the policy at the start of the user's quiet hours.
![User schedule settings](../../../images/admin/templates/schedule/user-quiet-hours.png)
Admins can define the default quiet hours for all users with the
[CODER_QUIET_HOURS_DEFAULT_SCHEDULE](../../../reference/cli/server.md#--default-quiet-hours-schedule)
[CODER_QUIET_HOURS_DEFAULT_SCHEDULE](../../../reference/cli/server/index.md#--default-quiet-hours-schedule)
environment variable. The value should be a cron expression such as
`CRON_TZ=America/Chicago 30 2 * * *` which would set the default quiet hours to
2:30 AM in the America/Chicago timezone. The cron schedule can only have a
@@ -117,7 +117,7 @@ to set the default quiet hours to a time when most users are not expected to be
using Coder.
Admins can force users to use the default quiet hours with the
[CODER_ALLOW_CUSTOM_QUIET_HOURS](../../../reference/cli/server.md#--allow-custom-quiet-hours)
[CODER_ALLOW_CUSTOM_QUIET_HOURS](../../../reference/cli/server/index.md#--allow-custom-quiet-hours)
environment variable. Users will still be able to see the page, but will be
unable to set a custom time or timezone. If users have already set a custom
quiet hours schedule, it will be ignored and the default will be used instead.
@@ -121,7 +121,7 @@ Before rolling out to all users:
3. Verify all units reach "completed" status using `coder exp sync list`
4. Test workspace functionality
Once you're satisfied, [promote the new template version](../../../reference/cli/templates_versions_promote.md).
Once you're satisfied, [promote the new template version](../../../reference/cli/templates/versions/promote.md).
### Handle missing CLI gracefully
+2 -2
View File
@@ -49,7 +49,7 @@ To use the default configuration:
## Disable the Default GitHub App
You can disable the default GitHub app by [configuring your own app](#step-1-configure-the-oauth-application-in-github)
or by adding the following environment variable to your [control plane configuration](../../reference/cli/server.md#options):
or by adding the following environment variable to your [control plane configuration](../../reference/cli/server/index.md#options):
```sh
CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE=false
@@ -69,7 +69,7 @@ CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE=false
1. GitHub will ask you for the following Coder parameters:
- **Homepage URL**: Set to your Coder deployment's
[`CODER_ACCESS_URL`](../../reference/cli/server.md#--access-url) (e.g.
[`CODER_ACCESS_URL`](../../reference/cli/server/index.md#--access-url) (e.g.
`https://coder.domain.com`)
- **User Authorization Callback URL**: Set to `https://coder.domain.com`
+1 -1
View File
@@ -48,7 +48,7 @@ Refer to [Default member roles](./organizations.md#default-member-roles) for how
The preceding table describes a default deployment.
A deployment that sets `CODER_DISABLE_OWNER_WORKSPACE_ACCESS` removes the Owner role's SSH, application, and terminal access to other users' workspaces.
Owners keep that access to workspaces they own.
Refer to [`--disable-owner-workspace-access`](../../reference/cli/server.md#--disable-owner-workspace-access) for the flag, environment variable, and YAML forms.
Refer to [`--disable-owner-workspace-access`](../../reference/cli/server/index.md#--disable-owner-workspace-access) for the flag, environment variable, and YAML forms.
## Organization roles
+5 -5
View File
@@ -39,7 +39,7 @@ If your OpenID Connect provider supports group claims, you can configure Coder
to synchronize groups in your auth provider to groups within Coder. To enable
group sync, ensure that the `groups` claim is being sent by your OpenID
provider. You might need to request an additional
[scope](../../reference/cli/server.md#--oidc-scopes) or additional configuration
[scope](../../reference/cli/server/index.md#--oidc-scopes) or additional configuration
on the OpenID provider side.
If group sync is enabled, the user's groups will be controlled by the OIDC
@@ -151,7 +151,7 @@ Visit the Coder UI to confirm these changes:
> You can use the dashboard to configure group sync instead.
1. Configure the control plane to read groups from the claim name with the
[OIDC group field](../../reference/cli/server.md#--oidc-group-field) server
[OIDC group field](../../reference/cli/server/index.md#--oidc-group-field) server
flag:
- Environment variable:
@@ -172,7 +172,7 @@ Visit the Coder UI to confirm these changes:
1. For cases when an OIDC provider only returns group IDs or you want to have
different group names in Coder than in your OIDC provider, you can configure
mapping between the two with the
[OIDC group mapping](../../reference/cli/server.md#--oidc-group-mapping) server
[OIDC group mapping](../../reference/cli/server/index.md#--oidc-group-mapping) server
flag:
- Environment variable:
@@ -205,7 +205,7 @@ Visit the Coder UI to confirm these changes:
### Group allowlist
You can limit which groups from your identity provider can log in to Coder with
[CODER_OIDC_ALLOWED_GROUPS](../../reference/cli/server.md#--oidc-allowed-groups).
[CODER_OIDC_ALLOWED_GROUPS](../../reference/cli/server/index.md#--oidc-allowed-groups).
Users who are not in a matching group will see the following error:
<img height="412px" src="../../images/admin/group-allowlist.png" alt="Unauthorized group error" align="center" />
@@ -298,7 +298,7 @@ Visit the Coder UI to confirm these changes:
> You can use the dashboard to configure role sync instead.
1. Configure the control plane to read groups from the claim name with the
[OIDC role field](../../reference/cli/server.md#--oidc-user-role-field)
[OIDC role field](../../reference/cli/server/index.md#--oidc-user-role-field)
server flag:
1. Set the following in your control plane [configuration](../setup/index.md).
+1 -1
View File
@@ -250,7 +250,7 @@ coder users list --output json | \
jq -r '["username","email","created_at","status"], (.[] | [.username, .email, .created_at, .status]) | @csv' > users.csv
```
Visit the [users list](../../reference/cli/users_list.md) documentation for more options.
Visit the [users list](../../reference/cli/users/list.md) documentation for more options.
### API
+4 -4
View File
@@ -35,7 +35,7 @@ Go to the Azure Portal > **Azure Active Directory** > **App registrations** > Yo
- Verify a Client secret (or certificate) is valid.
Coder uses it to redeem refresh tokens.
1. In your [Coder configuration](../../../reference/cli/server.md#--oidc-auth-url-params), request the same scopes:
1. In your [Coder configuration](../../../reference/cli/server/index.md#--oidc-auth-url-params), request the same scopes:
```dotenv
CODER_OIDC_SCOPES=openid,profile,email,offline_access
@@ -60,7 +60,7 @@ To ensure Coder receives a refresh token when users authenticate with Google dir
in the auth URL parameters (`CODER_OIDC_AUTH_URL_PARAMS`).
Without this, users will be logged out when their access token expires.
In your [Coder configuration](../../../reference/cli/server.md#--oidc-auth-url-params):
In your [Coder configuration](../../../reference/cli/server/index.md#--oidc-auth-url-params):
```dotenv
CODER_OIDC_SCOPES=openid,profile,email
@@ -76,7 +76,7 @@ This means that when a user authenticates using OIDC, the application requests o
including the ability to refresh access tokens without requiring the user to reauthenticate.
Add the `offline_access` scope to enable refresh tokens in your
[Coder configuration](../../../reference/cli/server.md#--oidc-auth-url-params):
[Coder configuration](../../../reference/cli/server/index.md#--oidc-auth-url-params):
```dotenv
CODER_OIDC_SCOPES=openid,profile,email,offline_access
@@ -99,7 +99,7 @@ CODER_OIDC_AUTH_URL_PARAMS='{"access_type":"offline"}'
1. Save your changes in PingFederate.
1. In your [Coder configuration](../../../reference/cli/server.md#--oidc-scopes), add the `offline_access` scope:
1. In your [Coder configuration](../../../reference/cli/server/index.md#--oidc-scopes), add the `offline_access` scope:
```dotenv
CODER_OIDC_SCOPES=openid,profile,email,offline_access
+2 -2
View File
@@ -8,13 +8,13 @@ setup is a username/password account.
## Disable password authentication
To disable password authentication, use the
[`CODER_DISABLE_PASSWORD_AUTH`](../../reference/cli/server.md#--disable-password-auth)
[`CODER_DISABLE_PASSWORD_AUTH`](../../reference/cli/server/index.md#--disable-password-auth)
flag on the control plane.
## Restore the `Owner` user
If you remove the admin user account (or forget the password), you can run the
[`coder server create-admin-user`](../../reference/cli/server_create-admin-user.md)command
[`coder server create-admin-user`](../../reference/cli/server/create-admin-user.md)command
on your server.
> [!IMPORTANT]
+4 -4
View File
@@ -29,7 +29,7 @@ export CODER_SESSION_TOKEN=$(coder login token)
### Session Durations
By default, sessions last 24&nbsp;hours and are automatically refreshed.
You can configure [`CODER_SESSION_DURATION`](../../reference/cli/server.md#--session-duration) to change the duration and [`CODER_DISABLE_SESSION_EXPIRY_REFRESH`](../../reference/cli/server.md#--disable-session-expiry-refresh) to configure this behavior.
You can configure [`CODER_SESSION_DURATION`](../../reference/cli/server/index.md#--session-duration) to change the duration and [`CODER_DISABLE_SESSION_EXPIRY_REFRESH`](../../reference/cli/server/index.md#--disable-session-expiry-refresh) to configure this behavior.
## Long-Lived Tokens (API Tokens)
@@ -60,7 +60,7 @@ coder tokens create --name=my-token --lifetime=720h
```
See the help docs for
[`coder tokens create`](../../reference/cli/tokens_create.md) for more info.
[`coder tokens create`](../../reference/cli/tokens/create.md) for more info.
</div>
@@ -80,7 +80,7 @@ coder tokens create --name my-token --user <username>
```
See the full CLI reference for
[`coder tokens create`](../../reference/cli/tokens_create.md)
[`coder tokens create`](../../reference/cli/tokens/create.md)
#### API
@@ -92,7 +92,7 @@ Use our API reference for more information on how to
### Set max token length
You can use the
[`CODER_MAX_TOKEN_LIFETIME`](../../reference/cli/server.md#--max-token-lifetime)
[`CODER_MAX_TOKEN_LIFETIME`](../../reference/cli/server/index.md#--max-token-lifetime)
server flag to set the maximum duration for long-lived tokens in your
deployment.
+1 -1
View File
@@ -65,7 +65,7 @@ Coder generates one `hb_agent_runtime_v1` event for each UTC hour shortly after
In steady state, each hour's usage typically reaches Tallyman within about 25&nbsp;minutes of the hour closing.
You can monitor these requests in `coderd` logs.
A successful request produces a debug log similar to the following example when you enable debug logging with [`CODER_LOG_FILTER=.*`](../../reference/cli/server.md#-l---log-filter):
A successful request produces a debug log similar to the following example when you enable debug logging with [`CODER_LOG_FILTER=.*`](../../reference/cli/server/index.md#-l---log-filter):
```sh
[debu] published usage events to tallyman accepted=1 rejected=0
@@ -53,7 +53,7 @@ All other traffic is tunneled through without decryption.
### Proxy target
Intercepted requests are forwarded to the AI Gateway, configured via [`CODER_AI_GATEWAY_PROXY_TARGET`](../../../reference/cli/server.md#--ai-gateway-proxy-target).
Intercepted requests are forwarded to the AI Gateway, configured via [`CODER_AI_GATEWAY_PROXY_TARGET`](../../../reference/cli/server/index.md#--ai-gateway-proxy-target).
By default, this is the embedded AI Gateway at `<coderd-access-url>/api/v2/ai-gateway`, and no configuration is needed.
AI Gateway Proxy remains part of the `coderd` process when you [deploy AI Gateway as a standalone service](../standalone.md).
@@ -67,7 +67,7 @@ CODER_AI_GATEWAY_PROXY_TARGET=https://ai-gateway.example.com/
The target is used as-is: the proxy appends only the provider and request path to it, and the URL must not include query parameters.
For additional configuration options, see the [`coder server` configuration](../../../reference/cli/server.md#options).
For additional configuration options, see the [`coder server` configuration](../../../reference/cli/server/index.md#options).
## Security Considerations
@@ -98,7 +98,7 @@ The IP validation and TCP connect happen atomically, preventing DNS rebinding at
To prevent unauthorized use, restrict network access to the proxy so that only authorized clients can connect.
In case the AI Gateway [proxy target](#proxy-target) hostname (the Coder access URL by default) resolves to a private address, it is automatically exempt from this restriction so the proxy can always reach the configured AI Gateway.
If you need to allow access to additional internal networks via the proxy, use the Allowlist CIDRs option ([`CODER_AI_GATEWAY_PROXY_ALLOWED_PRIVATE_CIDRS`](../../../reference/cli/server.md#--ai-gateway-proxy-allowed-private-cidrs)):
If you need to allow access to additional internal networks via the proxy, use the Allowlist CIDRs option ([`CODER_AI_GATEWAY_PROXY_ALLOWED_PRIVATE_CIDRS`](../../../reference/cli/server/index.md#--ai-gateway-proxy-allowed-private-cidrs)):
```sh
CODER_AI_GATEWAY_PROXY_ALLOWED_PRIVATE_CIDRS=10.0.0.0/8,172.16.0.0/12
@@ -256,7 +256,7 @@ If your organization requires all outbound traffic to pass through a corporate p
### How it works
Tunneled requests (non-allowlisted domains) are forwarded to the upstream proxy configured via [`CODER_AI_GATEWAY_PROXY_UPSTREAM`](../../../reference/cli/server.md#--ai-gateway-proxy-upstream).
Tunneled requests (non-allowlisted domains) are forwarded to the upstream proxy configured via [`CODER_AI_GATEWAY_PROXY_UPSTREAM`](../../../reference/cli/server/index.md#--ai-gateway-proxy-upstream).
MITM'd requests (AI provider domains) are forwarded to AI Gateway, which then communicates with AI providers.
To ensure AI Gateway also routes requests through the upstream proxy, make sure to configure the proxy settings for the `coderd` process.
@@ -283,7 +283,7 @@ CODER_AI_GATEWAY_PROXY_UPSTREAM=https://<corporate-proxy-url>:8080
CODER_AI_GATEWAY_PROXY_UPSTREAM_CA=/path/to/corporate-ca.crt
```
If the system already trusts the upstream proxy's CA certificate, [`CODER_AI_GATEWAY_PROXY_UPSTREAM_CA`](../../../reference/cli/server.md#--ai-gateway-proxy-upstream-ca) is not required.
If the system already trusts the upstream proxy's CA certificate, [`CODER_AI_GATEWAY_PROXY_UPSTREAM_CA`](../../../reference/cli/server/index.md#--ai-gateway-proxy-upstream-ca) is not required.
## Client Configuration
+3 -3
View File
@@ -36,7 +36,7 @@ From the dashboard, go to **Account settings** > **Tokens** and create a new tok
For long-lived tokens, refer to [Sessions and API tokens](../../admin/users/sessions-tokens.md#generate-a-long-lived-api-token-on-behalf-of-yourself).
For headless or service-account use, refer to [Headless authentication](../../admin/users/headless-auth.md).
From the CLI, print your current session token with [`coder login token`](../../reference/cli/login_token.md):
From the CLI, print your current session token with [`coder login token`](../../reference/cli/login/token.md):
```sh
coder login token
@@ -52,7 +52,7 @@ Use short lifetimes for automation and CI to limit the blast radius if a token l
### Retrieve your session token
If you're logged in with the Coder CLI, retrieve your current session token with [`coder login token`](../../reference/cli/login_token.md):
If you're logged in with the Coder CLI, retrieve your current session token with [`coder login token`](../../reference/cli/login/token.md):
```sh
export ANTHROPIC_API_KEY=$(coder login token)
@@ -112,7 +112,7 @@ A replica records a heartbeat when its control connection is established, then r
The heartbeat reports control-connection liveness rather than client request volume.
Coder stores one timestamp per key, so replicas that share a key cannot be distinguished.
For usage and flags, refer to the generated CLI reference for [creating](../../reference/cli/ai-gateway_keys_create.md), [listing](../../reference/cli/ai-gateway_keys_list.md), and [deleting](../../reference/cli/ai-gateway_keys_delete.md) gateway keys.
For usage and flags, refer to the generated CLI reference for [creating](../../reference/cli/ai-gateway/keys/create.md), [listing](../../reference/cli/ai-gateway/keys/list.md), and [deleting](../../reference/cli/ai-gateway/keys/delete.md) gateway keys.
### Rotate a gateway key
+2 -2
View File
@@ -183,7 +183,7 @@ The startup probe is disabled by default.
Standalone replicas use the standard Coder logging options.
Configure them on every replica or through `coder.env` in the AI Gateway Helm chart.
Refer to the [`coder ai-gateway start` logging options](../../reference/cli/ai-gateway_start.md#-l---log-filter) for configuration details.
Refer to the [`coder ai-gateway start` logging options](../../reference/cli/ai-gateway/start.md#-l---log-filter) for configuration details.
### Structured interception logs
@@ -262,7 +262,7 @@ The exporter always dials without TLS, so an `https://` endpoint is still contac
Set only the Honeycomb key to export to Honeycomb alone, or set both to export to Honeycomb and an OTLP collector.
The embedded and standalone gateways support the same tracing configuration options, but each standalone replica must be configured separately.
Refer to the [`coder server` tracing options](../../reference/cli/server.md#--trace) for the embedded gateway and the [`coder ai-gateway start` tracing options](../../reference/cli/ai-gateway_start.md#--trace) for standalone replicas.
Refer to the [`coder server` tracing options](../../reference/cli/server/index.md#--trace) for the embedded gateway and the [`coder ai-gateway start` tracing options](../../reference/cli/ai-gateway/start.md#--trace) for standalone replicas.
Configure tracing on every standalone process or through `coder.env` in the AI Gateway Helm chart.
The following minimal configuration enables tracing and exports spans over OTLP/gRPC:
+2 -2
View File
@@ -141,8 +141,8 @@ ai_gateway:
These logs are written to the same output stream as all other `coderd` logs,
using the format configured by
[`--log-human`](../../reference/cli/server.md#--log-human) (default, writes to
stderr) or [`--log-json`](../../reference/cli/server.md#--log-json). For machine
[`--log-human`](../../reference/cli/server/index.md#--log-human) (default, writes to
stderr) or [`--log-json`](../../reference/cli/server/index.md#--log-json). For machine
ingestion, set `--log-json` to a file path or `/dev/stderr` so that records are
emitted as JSON.
+1 -1
View File
@@ -63,7 +63,7 @@ Configure at least one [AI provider](./providers.md) in Coder before sending pro
The listener uses HTTP by default.
Set both `CODER_AI_GATEWAY_TLS_CERT_FILE` and `CODER_AI_GATEWAY_TLS_KEY_FILE` to terminate TLS in the process.
For all command options, refer to [`coder ai-gateway start`](../../reference/cli/ai-gateway_start.md).
For all command options, refer to [`coder ai-gateway start`](../../reference/cli/ai-gateway/start.md).
## Run AI Gateway in Kubernetes
+1 -1
View File
@@ -115,7 +115,7 @@ CODER_EXPERIMENTS=mcp-server-http
```
For the YAML and Helm forms of the provider setting, refer to [Enable OAuth2 Provider](../admin/integrations/oauth2-provider/index.md#enable-oauth2-provider).
That page does not cover the experiment; set it with the top-level [`experiments`](../reference/cli/server.md#--experiments) YAML key.
That page does not cover the experiment; set it with the top-level [`experiments`](../reference/cli/server/index.md#--experiments) YAML key.
### MCP Registry
+7 -7
View File
@@ -3,7 +3,7 @@ title: External provisioners
---
By default, the control plane runs
[built-in provisioner daemons](../../../reference/cli/server.md#--provisioner-daemons),
[built-in provisioner daemons](../../../reference/cli/server/index.md#--provisioner-daemons),
which execute `terraform` during workspace and template builds. However, there
are often benefits to running external provisioner daemons:
@@ -30,7 +30,7 @@ For example, running 30 provisioner containers will allow 30 users to start
workspaces at the same time.
Provisioners are started with the
[`coder provisioner start`](../../../reference/cli/provisioner_start.md) command in
[`coder provisioner start`](../../../reference/cli/provisioner/start.md) command in
the [full Coder binary](https://github.com/coder/coder/releases). Keep reading
to learn how to start provisioners via Docker, Kubernetes, Systemd, etc.
@@ -114,7 +114,7 @@ Global pre-shared keys (PSK) make it difficult to rotate keys or isolate provisi
A deployment-wide PSK can be used to authenticate any provisioner. To use a
global PSK, set a
[provisioner daemon pre-shared key (PSK)](../../../reference/cli/server.md#--provisioner-daemon-psk)
[provisioner daemon pre-shared key (PSK)](../../../reference/cli/server/index.md#--provisioner-daemon-psk)
on the control plane.
Next, start the provisioner:
@@ -241,17 +241,17 @@ This is illustrated in the below table:
Provisioners can broadly be categorized by scope: `organization` or `user`. The
scope of a provisioner can be specified with
[`-tag=scope=<scope>`](../../../reference/cli/provisioner_start.md#-t---tag) when
[`-tag=scope=<scope>`](../../../reference/cli/provisioner/start.md#-t---tag) when
starting the provisioner daemon. Only users with at least the
[Template Admin](../../../admin/users/index.md#roles) role or higher may create
organization-scoped provisioner daemons.
There are two exceptions:
- [Built-in provisioners](../../../reference/cli/server.md#--provisioner-daemons) are
- [Built-in provisioners](../../../reference/cli/server/index.md#--provisioner-daemons) are
always organization-scoped.
- External provisioners started using a
[pre-shared key (PSK)](../../../reference/cli/provisioner_start.md#--psk) are always
[pre-shared key (PSK)](../../../reference/cli/provisioner/start.md#--psk) are always
organization-scoped.
### Organization-Scoped Provisioners
@@ -375,7 +375,7 @@ docker run --rm -it \
As mentioned above, the control plane will run built-in provisioners by default.
This can be disabled with a server-wide
[flag or environment variable](../../../reference/cli/server.md#--provisioner-daemons).
[flag or environment variable](../../../reference/cli/server/index.md#--provisioner-daemons).
```sh
coder server --provisioner-daemons=0
+1 -1
View File
@@ -95,7 +95,7 @@ external PostgreSQL 13+ database for production deployments.
A managed PostgreSQL database, with daily backups, is recommended:
- For AWS: Amazon RDS for PostgreSQL (preferably using
[RDS IAM authentication](../../reference/cli/server.md#--postgres-auth)).
[RDS IAM authentication](../../reference/cli/server/index.md#--postgres-auth)).
- For Azure: Azure Database for PostgreSQL
- Flexible Server For GCP: Cloud SQL for PostgreSQL
+1 -1
View File
@@ -389,7 +389,7 @@ could affect workspace users experience once the platform is live.
and identify the required values for deployment.
1. Create a `values.yaml` and add it to your version control system.
1. Determine the necessary environment variables. Here is the
[full list of supported server environment variables](../../../reference/cli/server.md).
[full list of supported server environment variables](../../../reference/cli/server/index.md).
1. Follow our documented
[steps for installing Coder via Helm](../../server/kubernetes/index.md).
+12 -12
View File
@@ -6,17 +6,17 @@ All Coder features are supported in air-gapped / behind firewalls / disconnected
This is a general comparison. Keep reading for a full tutorial running Coder
air-gapped with Kubernetes or Docker.
| | Public deployments | Air-gapped deployments |
|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](../../../provisioner/terraform/install.go#L27-L28) |
| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below |
| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../../reference/cli/server.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../../reference/cli/server.md#--derp-server-stun-addresses) |
| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../../admin/networking/index.md#custom-relays). |
| PostgreSQL | If no [PostgreSQL connection URL](../../reference/cli/server.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../../reference/cli/server.md#--postgres-url) |
| Telemetry | Telemetry is on by default, and [can be disabled](../../reference/cli/server.md#--telemetry) | Telemetry [can be disabled](../../reference/cli/server.md#--telemetry) |
| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../../reference/cli/server.md#--update-check) |
| License validation | License keys are validated locally using cryptographic signatures. No outbound connection to Coder is required | No changes needed. See [offline license validation](./licensing.md#offline-license-validation) |
| AI Governance Usage Count | By default, deployments with [AI Governance](../../ai-coder/ai-governance.md) report usage data | [Contact us](https://coder.com/contact) to request a license with usage reporting off. |
| | Public deployments | Air-gapped deployments |
|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Terraform binary | By default, Coder downloads Terraform binary from [releases.hashicorp.com](https://releases.hashicorp.com) | Terraform binary must be included in `PATH` for the VM or container image. [Supported versions](../../../provisioner/terraform/install.go#L27-L28) |
| Terraform registry | Coder templates will attempt to download providers from [registry.terraform.io](https://registry.terraform.io) or [custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) specified in each template | [Custom source addresses](https://developer.hashicorp.com/terraform/language/providers/requirements#source-addresses) can be specified in each Coder template, or a custom registry/mirror can be used. More details below |
| STUN | By default, Coder uses Google's public STUN server for direct workspace connections | STUN can be safely [disabled](../../reference/cli/server/index.md#--derp-server-stun-addresses) users can still connect via [relayed connections](../../admin/networking/index.md#-geo-distribution). Alternatively, you can set a [custom DERP server](../../reference/cli/server/index.md#--derp-server-stun-addresses) |
| DERP | By default, Coder's built-in DERP relay can be used, or [Tailscale's public relays](../../admin/networking/index.md#relayed-connections). | By default, Coder's built-in DERP relay can be used, or [custom relays](../../admin/networking/index.md#custom-relays). |
| PostgreSQL | If no [PostgreSQL connection URL](../../reference/cli/server/index.md#--postgres-url) is specified, Coder will download Postgres from [repo1.maven.org](https://repo1.maven.org) | An external database is required, you must specify a [PostgreSQL connection URL](../../reference/cli/server/index.md#--postgres-url) |
| Telemetry | Telemetry is on by default, and [can be disabled](../../reference/cli/server/index.md#--telemetry) | Telemetry [can be disabled](../../reference/cli/server/index.md#--telemetry) |
| Update check | By default, Coder checks for updates from [GitHub releases](https://github.com/coder/coder/releases) | Update checks [can be disabled](../../reference/cli/server/index.md#--update-check) |
| License validation | License keys are validated locally using cryptographic signatures. No outbound connection to Coder is required | No changes needed. See [offline license validation](./licensing.md#offline-license-validation) |
| AI Governance Usage Count | By default, deployments with [AI Governance](../../ai-coder/ai-governance.md) report usage data | [Contact us](https://coder.com/contact) to request a license with usage reporting off. |
## Air-gapped container images
@@ -229,7 +229,7 @@ server, as demonstrated in the example below:
3. Extract the file and move its contents to your server folder.
4. If you are using NodeJS, you can execute the following command:
`cd docs && npx http-server .`
5. Set the [CODER_DOCS_URL](../../reference/cli/server.md#--docs-url) environment
5. Set the [CODER_DOCS_URL](../../reference/cli/server/index.md#--docs-url) environment
variable to use the URL of your hosted docs. This way, the Coder UI will
reference the documentation from your specified URL.
+1 -1
View File
@@ -118,7 +118,7 @@ While the minimum requirements specify 1&nbsp;CPU core and 2&nbsp;GB of memory p
#### CPU and memory usage
Enabling
[agent stats collection](../../reference/cli/server.md#--prometheus-collect-agent-stats)
[agent stats collection](../../reference/cli/server/index.md#--prometheus-collect-agent-stats)
(optional) may increase memory consumption.
Enabling direct connections between users and workspace agents (apps or SSH
+718 -609
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: agent-firewall
title: "`coder agent-firewall`"
description: Network isolation tool for monitoring and restricting HTTP/HTTPS requests
---
-22
View File
@@ -1,22 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway
description: Manage AI Gateway
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage AI Gateway
## Usage
```console
coder ai-gateway
```
## Subcommands
| Name | Purpose |
|---------------------------------------------|------------------------------------|
| [<code>start</code>](./ai-gateway_start.md) | Run a standalone AI Gateway server |
| [<code>keys</code>](./ai-gateway_keys.md) | Manage AI Gateway keys |
+22
View File
@@ -0,0 +1,22 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder ai-gateway`"
description: Manage AI Gateway
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage AI Gateway
## Usage
```console
coder ai-gateway
```
## Subcommands
| Name | Purpose |
|--------------------------------------|------------------------------------|
| [<code>start</code>](./start.md) | Run a standalone AI Gateway server |
| [<code>keys</code>](./keys/index.md) | Manage AI Gateway keys |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway keys create
title: "`coder ai-gateway keys create`"
description: Create an AI Gateway key
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway keys delete
title: "`coder ai-gateway keys delete`"
description: Delete an AI Gateway key
---
@@ -0,0 +1,23 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder ai-gateway keys`"
description: Manage AI Gateway keys
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage AI Gateway keys
## Usage
```console
coder ai-gateway keys
```
## Subcommands
| Name | Purpose |
|------------------------------------|--------------------------|
| [<code>create</code>](./create.md) | Create an AI Gateway key |
| [<code>delete</code>](./delete.md) | Delete an AI Gateway key |
| [<code>list</code>](./list.md) | List AI Gateway keys |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway keys list
title: "`coder ai-gateway keys list`"
description: List AI Gateway keys
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway start
title: "`coder ai-gateway start`"
description: Run a standalone AI Gateway server
---
-23
View File
@@ -1,23 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: ai-gateway keys
description: Manage AI Gateway keys
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage AI Gateway keys
## Usage
```console
coder ai-gateway keys
```
## Subcommands
| Name | Purpose |
|----------------------------------------------------|--------------------------|
| [<code>create</code>](./ai-gateway_keys_create.md) | Create an AI Gateway key |
| [<code>delete</code>](./ai-gateway_keys_delete.md) | Delete an AI Gateway key |
| [<code>list</code>](./ai-gateway_keys_list.md) | List AI Gateway keys |
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: autoupdate
title: "`coder autoupdate`"
description: Toggle auto-update policy for a workspace
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: completion
title: "`coder completion`"
description: Install or update shell completion scripts for the detected or chosen shell.
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: config-ssh
title: "`coder config-ssh`"
description: "Add an SSH Host entry for your workspaces \"ssh workspace.coder\""
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: create
title: "`coder create`"
description: Create a workspace
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: delete
title: "`coder delete`"
description: Delete a workspace
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: dotfiles
title: "`coder dotfiles`"
description: Personalize your workspace by applying a canonical dotfiles repository
---
-27
View File
@@ -1,27 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-auth
description: Manage external authentication
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage external authentication
## Usage
```console
coder external-auth
```
## Description
```console
Authenticate with external services inside of a workspace.
```
## Subcommands
| Name | Purpose |
|--------------------------------------------------------------|-------------------------------------|
| [<code>access-token</code>](./external-auth_access-token.md) | Print auth for an external provider |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-auth access-token
title: "`coder external-auth access-token`"
description: Print auth for an external provider
---
+27
View File
@@ -0,0 +1,27 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder external-auth`"
description: Manage external authentication
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage external authentication
## Usage
```console
coder external-auth
```
## Description
```console
Authenticate with external services inside of a workspace.
```
## Subcommands
| Name | Purpose |
|------------------------------------------------|-------------------------------------|
| [<code>access-token</code>](./access-token.md) | Print auth for an external provider |
-34
View File
@@ -1,34 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-workspaces
description: Create or manage external workspaces
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Create or manage external workspaces
## Usage
```console
coder external-workspaces [flags] [subcommand]
```
## Subcommands
| Name | Purpose |
|--------------------------------------------------------------------------------|--------------------------------------------|
| [<code>create</code>](./external-workspaces_create.md) | Create a new external workspace |
| [<code>agent-instructions</code>](./external-workspaces_agent-instructions.md) | Get the instructions for an external agent |
| [<code>list</code>](./external-workspaces_list.md) | List external workspaces |
## Options
### -O, --org
| | |
|-------------|----------------------------------|
| Type | <code>string</code> |
| Environment | <code>$CODER_ORGANIZATION</code> |
Select which organization (uuid or name) to use.
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-workspaces agent-instructions
title: "`coder external-workspaces agent-instructions`"
description: Get the instructions for an external agent
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-workspaces create
title: "`coder external-workspaces create`"
description: Create a new external workspace
---
@@ -0,0 +1,34 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder external-workspaces`"
description: Create or manage external workspaces
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Create or manage external workspaces
## Usage
```console
coder external-workspaces [flags] [subcommand]
```
## Subcommands
| Name | Purpose |
|------------------------------------------------------------|--------------------------------------------|
| [<code>create</code>](./create.md) | Create a new external workspace |
| [<code>agent-instructions</code>](./agent-instructions.md) | Get the instructions for an external agent |
| [<code>list</code>](./list.md) | List external workspaces |
## Options
### -O, --org
| | |
|-------------|----------------------------------|
| Type | <code>string</code> |
| Environment | <code>$CODER_ORGANIZATION</code> |
Select which organization (uuid or name) to use.
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: external-workspaces list
title: "`coder external-workspaces list`"
description: List external workspaces
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: favorite
title: "`coder favorite`"
description: Add a workspace to your favorites
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: features
title: "`coder features`"
description: List Enterprise features
---
@@ -20,6 +20,6 @@ coder features
## Subcommands
| Name | Purpose |
|-----------------------------------------|---------|
| [<code>list</code>](./features_list.md) | |
| Name | Purpose |
|--------------------------------|---------|
| [<code>list</code>](./list.md) | |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: features list
title: "`coder features list`"
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
-28
View File
@@ -1,28 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: groups
description: Manage groups
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage groups
Aliases:
* group
## Usage
```console
coder groups
```
## Subcommands
| Name | Purpose |
|-------------------------------------------|---------------------|
| [<code>create</code>](./groups_create.md) | Create a user group |
| [<code>list</code>](./groups_list.md) | List user groups |
| [<code>edit</code>](./groups_edit.md) | Edit a user group |
| [<code>delete</code>](./groups_delete.md) | Delete a user group |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: groups create
title: "`coder groups create`"
description: Create a user group
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: groups delete
title: "`coder groups delete`"
description: Delete a user group
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: groups edit
title: "`coder groups edit`"
description: Edit a user group
---
+28
View File
@@ -0,0 +1,28 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder groups`"
description: Manage groups
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage groups
Aliases:
* group
## Usage
```console
coder groups
```
## Subcommands
| Name | Purpose |
|------------------------------------|---------------------|
| [<code>create</code>](./create.md) | Create a user group |
| [<code>list</code>](./list.md) | List user groups |
| [<code>edit</code>](./edit.md) | Edit a user group |
| [<code>delete</code>](./delete.md) | Delete a user group |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: groups list
title: "`coder groups list`"
description: List user groups
---
+51 -51
View File
@@ -28,57 +28,57 @@ Coder — A tool for provisioning self-hosted development environments with Terr
## Subcommands
| Name | Purpose |
|--------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| [<code>completion</code>](./completion.md) | Install or update shell completion scripts for the detected or chosen shell. |
| [<code>dotfiles</code>](./dotfiles.md) | Personalize your workspace by applying a canonical dotfiles repository |
| [<code>external-auth</code>](./external-auth.md) | Manage external authentication |
| [<code>login</code>](./login.md) | Authenticate with Coder deployment |
| [<code>logout</code>](./logout.md) | Unauthenticate your local session |
| [<code>netcheck</code>](./netcheck.md) | Print network debug information for DERP and STUN |
| [<code>notifications</code>](./notifications.md) | Manage Coder notifications |
| [<code>oauth2-provider</code>](./oauth2-provider.md) | Manage Coder OAuth2 provider settings |
| [<code>organizations</code>](./organizations.md) | Organization related commands |
| [<code>port-forward</code>](./port-forward.md) | Forward ports from a workspace to the local machine. For reverse port forwarding, use "coder ssh -R". |
| [<code>publickey</code>](./publickey.md) | Output your Coder public key used for Git operations |
| [<code>reset-password</code>](./reset-password.md) | Directly connect to the database to reset a user's password |
| [<code>secret</code>](./secret.md) | Manage secrets |
| [<code>state</code>](./state.md) | Manually manage Terraform state to fix broken workspaces |
| [<code>templates</code>](./templates.md) | Manage templates |
| [<code>tokens</code>](./tokens.md) | Manage personal access tokens |
| [<code>users</code>](./users.md) | Manage users |
| [<code>version</code>](./version.md) | Show coder version |
| [<code>autoupdate</code>](./autoupdate.md) | Toggle auto-update policy for a workspace |
| [<code>config-ssh</code>](./config-ssh.md) | Add an SSH Host entry for your workspaces "ssh workspace.coder" |
| [<code>create</code>](./create.md) | Create a workspace |
| [<code>delete</code>](./delete.md) | Delete a workspace |
| [<code>favorite</code>](./favorite.md) | Add a workspace to your favorites |
| [<code>list</code>](./list.md) | List workspaces |
| [<code>logs</code>](./logs.md) | View logs for a workspace |
| [<code>open</code>](./open.md) | Open a workspace |
| [<code>ping</code>](./ping.md) | Ping a workspace |
| [<code>rename</code>](./rename.md) | Rename a workspace |
| [<code>restart</code>](./restart.md) | Restart a workspace |
| [<code>schedule</code>](./schedule.md) | Schedule automated start and stop times for workspaces |
| [<code>show</code>](./show.md) | Display details of a workspace's resources and agents |
| [<code>speedtest</code>](./speedtest.md) | Run upload and download tests from your machine to a workspace |
| [<code>ssh</code>](./ssh.md) | Start a shell into a workspace or run a command |
| [<code>start</code>](./start.md) | Start a workspace |
| [<code>stat</code>](./stat.md) | Show resource usage for the current workspace. |
| [<code>stop</code>](./stop.md) | Stop a workspace |
| [<code>unfavorite</code>](./unfavorite.md) | Remove a workspace from your favorites |
| [<code>update</code>](./update.md) | Will update and start a given workspace if it is out of date. If the workspace is already running, it will be stopped first. |
| [<code>whoami</code>](./whoami.md) | Fetch authenticated user info for Coder deployment |
| [<code>support</code>](./support.md) | Commands for troubleshooting issues with a Coder deployment. |
| [<code>server</code>](./server.md) | Start a Coder server |
| [<code>provisioner</code>](./provisioner.md) | View and manage provisioner daemons and jobs |
| [<code>ai-gateway</code>](./ai-gateway.md) | Manage AI Gateway |
| [<code>agent-firewall</code>](./agent-firewall.md) | Network isolation tool for monitoring and restricting HTTP/HTTPS requests |
| [<code>features</code>](./features.md) | List Enterprise features |
| [<code>licenses</code>](./licenses.md) | Add, delete, and list licenses |
| [<code>groups</code>](./groups.md) | Manage groups |
| [<code>prebuilds</code>](./prebuilds.md) | Manage Coder prebuilds |
| [<code>external-workspaces</code>](./external-workspaces.md) | Create or manage external workspaces |
| Name | Purpose |
|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| [<code>completion</code>](./completion.md) | Install or update shell completion scripts for the detected or chosen shell. |
| [<code>dotfiles</code>](./dotfiles.md) | Personalize your workspace by applying a canonical dotfiles repository |
| [<code>external-auth</code>](./external-auth/index.md) | Manage external authentication |
| [<code>login</code>](./login/index.md) | Authenticate with Coder deployment |
| [<code>logout</code>](./logout.md) | Unauthenticate your local session |
| [<code>netcheck</code>](./netcheck.md) | Print network debug information for DERP and STUN |
| [<code>notifications</code>](./notifications/index.md) | Manage Coder notifications |
| [<code>oauth2-provider</code>](./oauth2-provider/index.md) | Manage Coder OAuth2 provider settings |
| [<code>organizations</code>](./organizations/index.md) | Organization related commands |
| [<code>port-forward</code>](./port-forward.md) | Forward ports from a workspace to the local machine. For reverse port forwarding, use "coder ssh -R". |
| [<code>publickey</code>](./publickey.md) | Output your Coder public key used for Git operations |
| [<code>reset-password</code>](./reset-password.md) | Directly connect to the database to reset a user's password |
| [<code>secret</code>](./secret/index.md) | Manage secrets |
| [<code>state</code>](./state/index.md) | Manually manage Terraform state to fix broken workspaces |
| [<code>templates</code>](./templates/index.md) | Manage templates |
| [<code>tokens</code>](./tokens/index.md) | Manage personal access tokens |
| [<code>users</code>](./users/index.md) | Manage users |
| [<code>version</code>](./version.md) | Show coder version |
| [<code>autoupdate</code>](./autoupdate.md) | Toggle auto-update policy for a workspace |
| [<code>config-ssh</code>](./config-ssh.md) | Add an SSH Host entry for your workspaces "ssh workspace.coder" |
| [<code>create</code>](./create.md) | Create a workspace |
| [<code>delete</code>](./delete.md) | Delete a workspace |
| [<code>favorite</code>](./favorite.md) | Add a workspace to your favorites |
| [<code>list</code>](./list.md) | List workspaces |
| [<code>logs</code>](./logs.md) | View logs for a workspace |
| [<code>open</code>](./open/index.md) | Open a workspace |
| [<code>ping</code>](./ping.md) | Ping a workspace |
| [<code>rename</code>](./rename.md) | Rename a workspace |
| [<code>restart</code>](./restart.md) | Restart a workspace |
| [<code>schedule</code>](./schedule/index.md) | Schedule automated start and stop times for workspaces |
| [<code>show</code>](./show.md) | Display details of a workspace's resources and agents |
| [<code>speedtest</code>](./speedtest.md) | Run upload and download tests from your machine to a workspace |
| [<code>ssh</code>](./ssh.md) | Start a shell into a workspace or run a command |
| [<code>start</code>](./start.md) | Start a workspace |
| [<code>stat</code>](./stat/index.md) | Show resource usage for the current workspace. |
| [<code>stop</code>](./stop.md) | Stop a workspace |
| [<code>unfavorite</code>](./unfavorite.md) | Remove a workspace from your favorites |
| [<code>update</code>](./update.md) | Will update and start a given workspace if it is out of date. If the workspace is already running, it will be stopped first. |
| [<code>whoami</code>](./whoami.md) | Fetch authenticated user info for Coder deployment |
| [<code>support</code>](./support/index.md) | Commands for troubleshooting issues with a Coder deployment. |
| [<code>server</code>](./server/index.md) | Start a Coder server |
| [<code>provisioner</code>](./provisioner/index.md) | View and manage provisioner daemons and jobs |
| [<code>ai-gateway</code>](./ai-gateway/index.md) | Manage AI Gateway |
| [<code>agent-firewall</code>](./agent-firewall.md) | Network isolation tool for monitoring and restricting HTTP/HTTPS requests |
| [<code>features</code>](./features/index.md) | List Enterprise features |
| [<code>licenses</code>](./licenses/index.md) | Add, delete, and list licenses |
| [<code>groups</code>](./groups/index.md) | Manage groups |
| [<code>prebuilds</code>](./prebuilds/index.md) | Manage Coder prebuilds |
| [<code>external-workspaces</code>](./external-workspaces/index.md) | Create or manage external workspaces |
## Options
-27
View File
@@ -1,27 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: licenses
description: "Add, delete, and list licenses"
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Add, delete, and list licenses
Aliases:
* license
## Usage
```console
coder licenses
```
## Subcommands
| Name | Purpose |
|---------------------------------------------|-----------------------------------|
| [<code>add</code>](./licenses_add.md) | Add license to Coder deployment |
| [<code>list</code>](./licenses_list.md) | List licenses (including expired) |
| [<code>delete</code>](./licenses_delete.md) | Delete license by ID |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: licenses add
title: "`coder licenses add`"
description: Add license to Coder deployment
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: licenses delete
title: "`coder licenses delete`"
description: Delete license by ID
---
+27
View File
@@ -0,0 +1,27 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder licenses`"
description: "Add, delete, and list licenses"
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Add, delete, and list licenses
Aliases:
* license
## Usage
```console
coder licenses
```
## Subcommands
| Name | Purpose |
|------------------------------------|-----------------------------------|
| [<code>add</code>](./add.md) | Add license to Coder deployment |
| [<code>list</code>](./list.md) | List licenses (including expired) |
| [<code>delete</code>](./delete.md) | Delete license by ID |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: licenses list
title: "`coder licenses list`"
description: "List licenses (including expired)"
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: list
title: "`coder list`"
description: List workspaces
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: login
title: "`coder login`"
description: Authenticate with Coder deployment
---
@@ -22,9 +22,9 @@ By default, the session token is stored in the operating system keyring on macOS
## Subcommands
| Name | Purpose |
|----------------------------------------|---------------------------------|
| [<code>token</code>](./login_token.md) | Print the current session token |
| Name | Purpose |
|----------------------------------|---------------------------------|
| [<code>token</code>](./token.md) | Print the current session token |
## Options
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: login token
title: "`coder login token`"
description: Print the current session token
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: logout
title: "`coder logout`"
description: Unauthenticate your local session
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: logs
title: "`coder logs`"
description: View logs for a workspace
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: netcheck
title: "`coder netcheck`"
description: Print network debug information for DERP and STUN
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: notifications custom
title: "`coder notifications custom`"
description: Send a custom notification
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: notifications
title: "`coder notifications`"
description: Manage Coder notifications
---
@@ -45,9 +45,9 @@ targeting other users or groups is currently not supported:
## Subcommands
| Name | Purpose |
|--------------------------------------------------|----------------------------|
| [<code>pause</code>](./notifications_pause.md) | Pause notifications |
| [<code>resume</code>](./notifications_resume.md) | Resume notifications |
| [<code>test</code>](./notifications_test.md) | Send a test notification |
| [<code>custom</code>](./notifications_custom.md) | Send a custom notification |
| Name | Purpose |
|------------------------------------|----------------------------|
| [<code>pause</code>](./pause.md) | Pause notifications |
| [<code>resume</code>](./resume.md) | Resume notifications |
| [<code>test</code>](./test.md) | Send a test notification |
| [<code>custom</code>](./custom.md) | Send a custom notification |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: notifications pause
title: "`coder notifications pause`"
description: Pause notifications
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: notifications resume
title: "`coder notifications resume`"
description: Resume notifications
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: notifications test
title: "`coder notifications test`"
description: Send a test notification
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: oauth2-provider dcr disable
title: "`coder oauth2-provider dcr disable`"
description: Disable OAuth2 dynamic client registration
---
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: oauth2-provider dcr enable
title: "`coder oauth2-provider dcr enable`"
description: Enable OAuth2 dynamic client registration
---
@@ -0,0 +1,22 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder oauth2-provider dcr`"
description: "Manage OAuth2 dynamic client registration (RFC 7591)"
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage OAuth2 dynamic client registration (RFC 7591)
## Usage
```console
coder oauth2-provider dcr
```
## Subcommands
| Name | Purpose |
|--------------------------------------|--------------------------------------------|
| [<code>enable</code>](./enable.md) | Enable OAuth2 dynamic client registration |
| [<code>disable</code>](./disable.md) | Disable OAuth2 dynamic client registration |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: oauth2-provider
title: "`coder oauth2-provider`"
description: Manage Coder OAuth2 provider settings
---
@@ -31,6 +31,6 @@ unaffected; only new self-registration attempts are rejected:
## Subcommands
| Name | Purpose |
|----------------------------------------------|------------------------------------------------------|
| [<code>dcr</code>](./oauth2-provider_dcr.md) | Manage OAuth2 dynamic client registration (RFC 7591) |
| Name | Purpose |
|------------------------------------|------------------------------------------------------|
| [<code>dcr</code>](./dcr/index.md) | Manage OAuth2 dynamic client registration (RFC 7591) |
-22
View File
@@ -1,22 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: oauth2-provider dcr
description: "Manage OAuth2 dynamic client registration (RFC 7591)"
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Manage OAuth2 dynamic client registration (RFC 7591)
## Usage
```console
coder oauth2-provider dcr
```
## Subcommands
| Name | Purpose |
|----------------------------------------------------------|--------------------------------------------|
| [<code>enable</code>](./oauth2-provider_dcr_enable.md) | Enable OAuth2 dynamic client registration |
| [<code>disable</code>](./oauth2-provider_dcr_disable.md) | Disable OAuth2 dynamic client registration |
-22
View File
@@ -1,22 +0,0 @@
---
# Code generated by make gen. DO NOT EDIT.
title: open
description: Open a workspace
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Open a workspace
## Usage
```console
coder open
```
## Subcommands
| Name | Purpose |
|-----------------------------------------|-------------------------------------|
| [<code>vscode</code>](./open_vscode.md) | Open a workspace in VS Code Desktop |
| [<code>app</code>](./open_app.md) | Open a workspace application. |
@@ -1,6 +1,6 @@
---
# Code generated by make gen. DO NOT EDIT.
title: open app
title: "`coder open app`"
description: Open a workspace application.
---
+22
View File
@@ -0,0 +1,22 @@
---
# Code generated by make gen. DO NOT EDIT.
title: "`coder open`"
description: Open a workspace
---
<!-- DO NOT EDIT | GENERATED CONTENT -->
Open a workspace
## Usage
```console
coder open
```
## Subcommands
| Name | Purpose |
|------------------------------------|-------------------------------------|
| [<code>vscode</code>](./vscode.md) | Open a workspace in VS Code Desktop |
| [<code>app</code>](./app.md) | Open a workspace application. |

Some files were not shown because too many files have changed in this diff Show More