Normalizes non-standard code-fence language tags across `docs/**` so a strict highlighter (Shiki, used by Fumadocs) won't fail the build on an unrecognized language, and unifies redundant synonym tags onto one canonical form per language. The current renderer (Speed-Highlight) detects the language from the code content, not the fence label, so this drift wasn't visible until now. ## Changes - `hcl` -> `tf` (199 fences, including indented ones nested in numbered/bulleted lists). Shiki ships `hcl` and `terraform` as two distinct grammars (not aliases); every `hcl`-tagged fence in `docs/**` is actually Terraform resource/data/provider syntax, so the more specific `terraform` grammar is correct for all of them. `tf` is Shiki's own alias for that grammar, and it's also what GitHub's own markdown renderer resolves to the same HCL/Terraform highlighting. - `pwsh`/`powershell` -> `ps1`. Both `ps` and `ps1` are registered PowerShell aliases in Shiki, but on GitHub's renderer only `.ps1` is a registered file extension (`.ps` isn't), so `ps1` renders identically to `powershell` there today while bare `ps` would silently lose highlighting. - `env` -> `dotenv` (a dedicated Shiki grammar for `KEY=VALUE` files) - `text`/`output`/`none`/`url` -> `txt`. Same built-in plain-text fallback either way, just shorter. - `Dockerfile` -> `dockerfile` (lowercase) - `bash`/`shell` -> `sh` (732 fences). Shiki and GitHub both alias all three to a single shell grammar; this was already the style guide's stated preference, just not enforced across the existing corpus until now. - `markdown` -> `md` (4 fences). Alias of the same grammar in both Shiki and GitHub. - `jsonc` -> `json` (1 fence). The block has no comments or trailing commas, so it doesn't need the comments-capable grammar. - `ts` -> `tsx` (2 fences, `docs/about/contributing/frontend.md`). Verified the actual content tokenizes identically under both grammars, and a sibling block in the same file already needs `tsx` for real JSX, so unifying to one tag is safe for this file. Documented a caveat: `tsx` mis-tokenizes the legacy angle-bracket type-assertion syntax (`<Type>value`), which is invalid in real `.tsx` files anyway, so use `value as Type` instead. - `yml` -> `yaml` (1 fence) - Updated `docs/.style/style-guide/formatting.md` to document all canonical tags `promql` (2 fences) and `caddyfile` (2 fences) are left as-is. Shiki doesn't bundle a grammar for either, so they need a custom grammar registration when the site adopts Shiki, rather than degrading to `txt`. Tracked as follow-up work under DOCS-118 and [DOCS-544](https://linear.app/codercom/issue/DOCS-544/vendor-a-local-promql-grammar-for-shiki-syntax-highlighting) (promql). Does not touch `offlinedocs/`. Linear: [DOCS-476](https://linear.app/codercom/issue/DOCS-476/normalize-docs-code-fence-languages-de-risk-shikifumadocs) <details> <summary>How the fence tags were verified</summary> Each tag was tested against a real `shiki@latest` highlighter instance (`codeToHtml`/`codeToTokens`) and cross-checked against GitHub's `@wooorm/starry-night` grammar sources (the renderer that actually displays these `.md` files today, in repo browsing and PR diffs), since that's what determines whether brevity is safe before Shiki adoption: ```text FAIL env -- Language `env` is not included in this bundle. FAIL Dockerfile -- Language `Dockerfile` is not included in this bundle. FAIL promql -- Language `promql` is not included in this bundle. FAIL caddyfile -- Language `caddyfile` is not included in this bundle. FAIL pwsh -- Language `pwsh` is not included in this bundle. FAIL output -- Language `output` is not included in this bundle. ``` `hcl` doesn't error in Shiki, since it's a real grammar, but that's exactly the trap: it was silently rendering every fence with the generic HCL grammar instead of the Terraform-specific one. Every `hcl`-tagged fence in `docs/**` was manually checked against `origin/main` and is genuinely Terraform content. For `ts`/`tsx`, tokenizing the actual doc content confirmed identical output under both grammars; a synthetic test with the legacy angle-bracket cast syntax confirmed `tsx` degrades on that specific construct, which the style guide now calls out. The first normalization pass only matched fence tags at column 0 (`^```tag$`), missing tags indented inside numbered/bulleted lists. A follow-up pass caught the remaining occurrences at any indentation level. </details> --- *This PR description and the underlying changes were prepared with Coder Agents assistance.*
5.1 KiB
Deploy Coder on Rancher
You can deploy Coder on Rancher as a Workload.
Requirements
- SUSE Rancher Manager running Kubernetes (K8s) 1.19+ with SUSE Rancher Prime distribution (Rancher Manager 2.10+)
- Helm 3.5+ installed
- Workload Kubernetes cluster for Coder
Overview
Installing Coder on Rancher involves four key steps:
- Create a namespace for Coder
- Set up PostgreSQL
- Create a database connection secret
- Install the Coder application via Rancher UI
Create a namespace
Create a namespace for the Coder control plane. In this tutorial, we call it coder:
kubectl create namespace coder
Set up PostgreSQL
Coder requires a PostgreSQL database to store deployment data. We recommend that you use a managed PostgreSQL service, but you can use an in-cluster PostgreSQL service for non-production deployments:
Managed PostgreSQL (Recommended)
For production deployments, we recommend using a managed PostgreSQL service:
- Google Cloud SQL
- AWS RDS for PostgreSQL
- Azure Database for PostgreSQL
- DigitalOcean Managed PostgreSQL
Ensure that your PostgreSQL service:
- Is running and accessible from your cluster
- Is in the same network/project as your cluster
- Has proper credentials and a database created for Coder
In-Cluster PostgreSQL (Development/PoC)
For proof-of-concept deployments, you can use Bitnami Helm chart to install PostgreSQL in your Kubernetes cluster:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install coder-db bitnami/postgresql \
--set image.repository=bitnamilegacy/postgresql \
--namespace coder \
--set auth.username=coder \
--set auth.password=coder \
--set auth.database=coder \
--set persistence.size=10Gi
After installation, the cluster-internal database URL will be:
postgres://coder:coder@coder-db-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable
For more advanced PostgreSQL management, consider using the Postgres operator.
Create the database connection secret
Create a Kubernetes secret with your PostgreSQL connection URL:
kubectl create secret generic coder-db-url -n coder \
--from-literal=url="postgres://coder:coder@coder-db-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable"
Important
If you're using a managed PostgreSQL service, replace the connection URL with your specific database credentials.
Install Coder through the Rancher UI
-
In the Rancher Manager console, select your target Kubernetes cluster for Coder.
-
Navigate to Apps > Charts
-
From the dropdown menu, select Partners and search for
Coder -
Select Coder, then Install
-
Select the
codernamespace you created earlier and check Customize Helm options before install.Select Next
-
On the configuration screen, select Edit YAML and enter your Coder configuration settings:
Example values.yaml configuration
coder: # Environment variables for Coder env: - name: CODER_PG_CONNECTION_URL valueFrom: secretKeyRef: name: coder-db-url key: url # For production, uncomment and set your access URL # - name: CODER_ACCESS_URL # value: "https://coder.example.com" # For TLS configuration (uncomment if needed) #tls: # secretNames: # - my-tls-secret-nameFor available configuration options, refer to the Helm chart documentation or values.yaml file.
-
Select a Coder version:
- Mainline:
2.35.2 - Stable:
2.34.6
Learn more about release channels in the Releases documentation.
- Mainline:
-
Select Next when your configuration is complete.
-
On the Supply additional deployment options screen:
- Accept the default settings
- Select Install
-
A Helm install output shell will be displayed and indicates the installation status.
Manage your Rancher Coder deployment
To update or manage your Coder deployment later:
- Navigate to Apps > Installed Apps in the Rancher UI.
- Find and select Coder.
- Use the options in the ⋮ menu for upgrade, rollback, or other operations.
