From 5de57568f2003d752fe666b89b6e058e0b2f874f Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 1 Sep 2022 16:35:55 +0000 Subject: [PATCH 01/13] move around some stuff --- coder.env | 6 ++- docs/{install => admin}/auth.md | 0 docs/{install => admin}/configure.md | 0 docs/admin/index.md | 0 docs/{install => admin}/upgrade.md | 0 docs/install/docker.md | 77 ++++++++++++++++++++++++++++ docs/install/index.md | 3 ++ docs/install/install.sh.md | 27 ++++++++++ docs/install/manual.md | 0 docs/install/packages.md | 30 +++++++++++ docs/manifest.json | 48 +++++++++++++---- 11 files changed, 180 insertions(+), 11 deletions(-) rename docs/{install => admin}/auth.md (100%) rename docs/{install => admin}/configure.md (100%) create mode 100644 docs/admin/index.md rename docs/{install => admin}/upgrade.md (100%) create mode 100644 docs/install/docker.md create mode 100644 docs/install/index.md create mode 100644 docs/install/install.sh.md create mode 100644 docs/install/manual.md create mode 100644 docs/install/packages.md diff --git a/coder.env b/coder.env index 5a2982822f621..0955b1ca21e6b 100644 --- a/coder.env +++ b/coder.env @@ -1,4 +1,6 @@ -# Run "coder server --help" for flag information. +# Coder must be reachable from an external URL for users and workspaces to connect. +# Enable CODER_TUNNEL (easy) or set CODER_ACCESS_URL + CODER_ACCESS_URL= CODER_ADDRESS= CODER_PG_CONNECTION_URL= @@ -7,3 +9,5 @@ CODER_TLS_ENABLE= CODER_TLS_KEY_FILE= # Generate a unique *.try.coder.app access URL CODER_TUNNEL=false + +# Run "coder server --help" for flag information. diff --git a/docs/install/auth.md b/docs/admin/auth.md similarity index 100% rename from docs/install/auth.md rename to docs/admin/auth.md diff --git a/docs/install/configure.md b/docs/admin/configure.md similarity index 100% rename from docs/install/configure.md rename to docs/admin/configure.md diff --git a/docs/admin/index.md b/docs/admin/index.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/install/upgrade.md b/docs/admin/upgrade.md similarity index 100% rename from docs/install/upgrade.md rename to docs/admin/upgrade.md diff --git a/docs/install/docker.md b/docs/install/docker.md new file mode 100644 index 0000000000000..72fce611e3e5f --- /dev/null +++ b/docs/install/docker.md @@ -0,0 +1,77 @@ +Coder publishes containerized images + +## Standalone container + +Requirements: + +- Docker +- + + sudo rm -r ~/coder-stuff2/ + mkdir ~/coder-stuff2/ + docker run --rm -it \ + -e CODER_TUNNEL=true \ + -e CODER_CONFIG_DIR=/opt/coder-data \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v $HOME/coder-stuff2/:/opt/coder-data/ \ + ghcr.io/coder/coder:latest + +1. Clone the `coder` repository: + + ```console + git clone https://github.com/coder/coder.git + ``` + +2. Navigate into the `coder` folder and run `docker-compose up`: + + ```console + cd coder + # Coder will bind to localhost:7080. + # You may use localhost:7080 as your access URL + # when using Docker workspaces exclusively. + # CODER_ACCESS_URL=http://localhost:7080 + # Otherwise, an internet accessible access URL + # is required. + CODER_ACCESS_URL=https://coder.mydomain.com + docker-compose up + ``` + + Otherwise, you can start the service: + + ```console + cd coder + docker-compose up + ``` + + docker run --rm -it \ + -e CODER_TUNNEL=true \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v ~/idk:/home/coder \ + ghcr.io/coder/coder:latest + + Alternatively, if you would like to start a **temporary deployment**: + + ```console + docker run --rm -it \ + -e CODER_DEV_MODE=true \ + -v /var/run/docker.sock:/var/run/docker.sock \ + ghcr.io/coder/coder:v0.5.10 + ``` + +3. Follow the on-screen instructions to create your first template and workspace + +If the user is not in the Docker group, you will see the following error: + +```sh +Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket +``` + +The default docker socket only permits connections from `root` or members of the `docker` +group. Remedy like this: + +```sh +# replace "coder" with user running coderd +sudo usermod -aG docker coder +grep /etc/group -e "docker" +sudo systemctl restart coder.service +``` diff --git a/docs/install/index.md b/docs/install/index.md new file mode 100644 index 0000000000000..6d1b56ff3a330 --- /dev/null +++ b/docs/install/index.md @@ -0,0 +1,3 @@ +There are a number of different ways to install Coder + + diff --git a/docs/install/install.sh.md b/docs/install/install.sh.md new file mode 100644 index 0000000000000..5ed142af48710 --- /dev/null +++ b/docs/install/install.sh.md @@ -0,0 +1,27 @@ +The easiest way to install Coder is to use our [install script](https://github.com/coder/coder/blob/main/install.sh) for Linux and macOS. + +To install, run: + +```bash +curl -fsSL https://coder.com/install.sh | sh +``` + +You can preview what occurs during the install process: + +```bash +curl -fsSL https://coder.com/install.sh | sh -s -- --dry-run +``` + +You can modify the installation process by including flags. Run the help command for reference: + +```bash +curl -fsSL https://coder.com/install.sh | sh -s -- --help +``` + +After installing, use the instructions in your terminal to start the Coder server and create your first account. + +## Next steps + +- [Quickstart](../quickstart.md) +- [Configuring Coder](../admin/configure.md) +- [Templates](../templates.md) diff --git a/docs/install/manual.md b/docs/install/manual.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/install/packages.md b/docs/install/packages.md new file mode 100644 index 0000000000000..ae5e1e4908b86 --- /dev/null +++ b/docs/install/packages.md @@ -0,0 +1,30 @@ +Coder publishes the following system packages [in GitHub releases](https://github.com/coder/coder/releases): + +- .deb (Debian, Ubuntu) +- .rpm (Fedora, CentOS, RHEL, SUSE) +- .apk (Alpine) + +Once installed, you can run Coder as a system service. + +```sh +# Set up an access URL or enable CODER_TUNNEL +sudo vim /etc/coder.d/coder.env + +# To systemd to start Coder now and on reboot +sudo systemctl enable --now coder + +# View the logs to see Coder's URL and ensure a successful start +journalctl -u coder.service -b +``` + +Visit the Coder URL in the logs to set up your first account, or use the CLI: + +```sh +coder login +``` + +## Next steps + +- [Quickstart](../quickstart.md) +- [Configuring Coder](../admin/configure.md) +- [Templates](../templates.md) diff --git a/docs/manifest.json b/docs/manifest.json index 5dfd490029ee0..572081062078e 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -23,22 +23,27 @@ "title": "Installation", "description": "How to install and deploy Coder", "icon_path": "./images/icons/wrench.svg", - "path": "./install.md", + "path": "./install/index.md", "children": [ { - "title": "Authentication", - "description": "Learn how to set up authentication using GitHub or OpenID Connect.", - "path": "./install/auth.md" + "title": "Install script", + "description": "One-line install script for macOS and Linux.", + "path": "./install/install.sh.md" }, { - "title": "Configuration", - "description": "Learn how to configure Coder", - "path": "./install/configure.md" + "title": "Docker", + "description": "Install Coder with Docker / docker-compose", + "path": "./install/docker.md" }, { - "title": "Upgrading", - "description": "Learn how to upgrade Coder.", - "path": "./install/upgrade.md" + "title": "System packages", + "description": "System packages for Debian, Ubuntu, Fedora, CentOS, RHEL, SUSE, and Alpine.", + "path": "./install/packages.md" + }, + { + "title": "Standalone binaries", + "description": "Download the binary for Mac, Windows, or Linux.", + "path": "./install/manual.md" } ] }, @@ -128,6 +133,29 @@ "icon_path": "./images/icons/secrets.svg", "path": "./secrets.md" }, + { + "title": "Administration", + "description": "How to install and deploy Coder", + "icon_path": "./images/icons/wrench.svg", + "path": "./admin/index.md", + "children": [ + { + "title": "Authentication", + "description": "Learn how to set up authentication using GitHub or OpenID Connect.", + "path": "./admin/auth.md" + }, + { + "title": "Configuration", + "description": "Learn how to configure Coder", + "path": "./admin/configure.md" + }, + { + "title": "Upgrading", + "description": "Learn how to upgrade Coder.", + "path": "./admin/upgrade.md" + } + ] + }, { "title": "Users", "description": "Learn about user roles available in Coder and how to create and manage users", From f346b6b16a8932caa4ec3ac04f0b80e3ca6246f6 Mon Sep 17 00:00:00 2001 From: Ben Date: Fri, 2 Sep 2022 14:23:27 +0000 Subject: [PATCH 02/13] add Docker --- docs/install/docker.md | 113 ++++++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 53 deletions(-) diff --git a/docs/install/docker.md b/docs/install/docker.md index 72fce611e3e5f..56701925eba4f 100644 --- a/docs/install/docker.md +++ b/docs/install/docker.md @@ -1,77 +1,84 @@ -Coder publishes containerized images +You can install and run Coder using the official Docker images published on [GitHub Container Registry](https://github.com/coder/coder/pkgs/container/coder). -## Standalone container +## Requirements -Requirements: +Docker is required. See the [official installation documentation](https://docs.docker.com/install/). -- Docker -- +## Run Coder with built-in database and tunnel (quick) - sudo rm -r ~/coder-stuff2/ - mkdir ~/coder-stuff2/ - docker run --rm -it \ - -e CODER_TUNNEL=true \ - -e CODER_CONFIG_DIR=/opt/coder-data \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v $HOME/coder-stuff2/:/opt/coder-data/ \ - ghcr.io/coder/coder:latest +For proof-of-concept deployments, you can run a complete Coder instance with +with the following command: -1. Clone the `coder` repository: +```sh +export CODER_DATA=$HOME/.config/coderv2-docker +mkdir -p $CODER_DATA +docker run --rm -it \ + -e CODER_TUNNEL=true \ + -v $CODER_DATA:/home/coder/.config \ + -v /var/run/docker.sock:/var/run/docker.sock \ + ghcr.io/coder/coder:latest +``` - ```console - git clone https://github.com/coder/coder.git - ``` +Coder configuration is defined via environment variables. +See [configuring Coder](../admin/configure.md) for details. + +## Run Coder with access URL and external PostgreSQL (recommended) + +For production deployments, we recommend using an external PostgreSQL database. +Set `ACCESS_URL` to the external URL that users and workspaces will use to +connect to Coder. + +```sh +docker run --rm -it \ + -e CODER_ACCESS_URL="https://coder.example.com" \ + -e CODER_PG_CONNECTION_URL="postgresql://username:password@database/coder" \ + -v /var/run/docker.sock:/var/run/docker.sock \ + ghcr.io/coder/coder:latest +``` + +Coder configuration is defined via environment variables. +See [configuring Coder](../admin/configure.md) for details. + +## Run Coder with docker-compose + +Coder's publishes a [docker-compose example](../../docker-compose.yaml) which includes +an PostgreSQL container and volume. -2. Navigate into the `coder` folder and run `docker-compose up`: +1. Install [Docker Compose](https://docs.docker.com/compose/install/) + +2. Clone the `coder` repository: ```console - cd coder - # Coder will bind to localhost:7080. - # You may use localhost:7080 as your access URL - # when using Docker workspaces exclusively. - # CODER_ACCESS_URL=http://localhost:7080 - # Otherwise, an internet accessible access URL - # is required. - CODER_ACCESS_URL=https://coder.mydomain.com - docker-compose up + git clone https://github.com/coder/coder.git ``` - Otherwise, you can start the service: +3. Start Coder with `docker-compose up`: + + In order to use cloud-based templates (e.g. Kubernetes, AWS), you must set `CODER_ACCESS_URL` to the external URL that users and workspaces will use to connect to Coder. ```console cd coder + + CODER_ACCESS_URL=https://coder.example.com docker-compose up ``` - docker run --rm -it \ - -e CODER_TUNNEL=true \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v ~/idk:/home/coder \ - ghcr.io/coder/coder:latest + > Without `CODER_ACCESS_URL` set, Coder will bind to `localhost:7080`. This will only work for Docker-based templates. - Alternatively, if you would like to start a **temporary deployment**: +4. Follow the on-screen instructions log in and create your first template and workspace - ```console - docker run --rm -it \ - -e CODER_DEV_MODE=true \ - -v /var/run/docker.sock:/var/run/docker.sock \ - ghcr.io/coder/coder:v0.5.10 - ``` +## Troubleshooting -3. Follow the on-screen instructions to create your first template and workspace +### Docker-based workspace is stuck in "Connecting..." -If the user is not in the Docker group, you will see the following error: +Ensure you have an externally-reachable `CODER_ACCESS_URL` set. See [troubleshooting templates](../templates.md#creating-and-troubleshooting-templates) for more steps. -```sh -Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket -``` +### Permission denied while trying to connect to the Docker daemon socket -The default docker socket only permits connections from `root` or members of the `docker` -group. Remedy like this: +See Docker's official documentation to [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user) -```sh -# replace "coder" with user running coderd -sudo usermod -aG docker coder -grep /etc/group -e "docker" -sudo systemctl restart coder.service -``` +## Next steps + +- [Quickstart](../quickstart.md) +- [Configuring Coder](../admin/configure.md) +- [Templates](../templates.md) From c395cd3f9484b1212e616d2c202bca845cdb6859 Mon Sep 17 00:00:00 2001 From: Ben Date: Fri, 2 Sep 2022 14:23:32 +0000 Subject: [PATCH 03/13] wip for Kubernetes --- docs/install/kubernetes.md | 127 +++++++++++++++++++++++++++++++++++++ docs/manifest.json | 15 +++-- helm/README.md | 4 +- 3 files changed, 139 insertions(+), 7 deletions(-) create mode 100644 docs/install/kubernetes.md diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md new file mode 100644 index 0000000000000..b9e32f7235775 --- /dev/null +++ b/docs/install/kubernetes.md @@ -0,0 +1,127 @@ +## Requirements + +Before proceeding, please ensure that you have both Helm 3.5+ and the +[latest version of Coder](https://github.com/coder/coder/releases) installed. +You will also need to have a Kubernetes cluster running K8s 1.19+. + +## Install Coder with Helm + +> **Warning**: Helm support is new and not yet complete. There may be changes +> to the Helm chart between releases which require manual values updates. Please +> file an issue if you run into any issues. + +1. Create a namespace for Coder, such as `coder`: + + ```console + $ kubectl create namespace coder + ``` + +1. Create a PostgreSQL deployment. Coder does not manage a database server for + you. + + - If you're in a public cloud such as + [Google Cloud](https://cloud.google.com/sql/docs/postgres/), + [AWS](https://aws.amazon.com/rds/postgresql/), + [Azure](https://docs.microsoft.com/en-us/azure/postgresql/), or + [DigitalOcean](https://www.digitalocean.com/products/managed-databases-postgresql), + you can use the managed PostgreSQL offerings they provide. Make sure that + the PostgreSQL service is running and accessible from your cluster. It + should be in the same network, same project, etc. + + - You can install Postgres manually on your cluster using the + [Bitnami PostgreSQL Helm chart](https://github.com/bitnami/charts/tree/master/bitnami/postgresql#readme). There are some + [helpful guides](https://phoenixnap.com/kb/postgresql-kubernetes) on the + internet that explain sensible configurations for this chart. Example: + + ```sh + # Install PostgreSQL + helm repo add bitnami https://charts.bitnami.com/bitnami + helm install postgres bitnami/postgresql \ + --namespace coder \ + --set auth.username=coder \ + --set auth.password=coder \ + --set auth.database=coder \ + --set persistence.size=10Gi + + # Add the secret to Coder + ``` + + The cluster-internal DB URL for the above database is: + + ``` + postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable + ``` + + > Ensure you set up periodic backups so you don't lose data. + + - You can use + [Postgres operator](https://github.com/zalando/postgres-operator) to + manage PostgreSQL deployments on your Kubernetes cluster. + +1. Download the latest `coder_helm` package from + [GitHub releases](https://github.com/coder/coder/releases). + +1. Create a `values.yaml` with the configuration settings you'd like for your + deployment. For example: + + ```yaml + coder: + # You can specify any environment variables you'd like to pass to Coder + # here. Coder consumes environment variables listed in + # `coder server --help`, and these environment variables are also passed + # to the workspace provisioner (so you can consume them in your Terraform + # templates for auth keys etc.). + # + # Please keep in mind that you should not set `CODER_ADDRESS`, + # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as + # they are already set by the Helm chart and will cause conflicts. + env: + - name: CODER_ACCESS_URL + value: "https://coder.example.com" + - name: CODER_PG_CONNECTION_URL + valueFrom: + secretKeyRef: + # You'll need to create a secret called coder-db-url with your + # Postgres connection URL like: + # postgres://coder:password@postgres:5432/coder?sslmode=disable + name: coder-db-url + key: url + + # This env variable controls whether or not to auto-import the + # "kubernetes" template on first startup. This will not work unless + # coder.serviceAccount.workspacePerms is true. + - name: CODER_TEMPLATE_AUTOIMPORT + value: "kubernetes" + + tls: + secretName: my-tls-secret-name + ``` + + > You can view our + > [Helm README](https://github.com/coder/coder/blob/main/helm#readme) for + > details on the values that are available, or you can view the + > [values.yaml](https://github.com/coder/coder/blob/main/helm/values.yaml) + > file directly. + +1. Run the following commands to install the chart in your cluster. + + ```console + $ helm install coder ./coder_helm_x.y.z.tgz \ + --namespace coder \ + --values values.yaml + ``` + +You can watch Coder start up by running `kubectl get pods`. Once Coder has +started, the `coder-*` pods should enter the `Running` state. + +You can view Coder's logs by getting the pod name from `kubectl get pods` and +then running `kubectl logs `. You can also view these logs in your +Cloud's log management system if you are using managed Kubernetes. + +To upgrade Coder in the future, you can run the following command with a new `coder_helm_x.y.z.tgz` file from GitHub releases: + +```console +$ helm upgrade coder ./coder_helm_x.y.z.tgz \ + --namespace coder \ + -f values.yaml +``` diff --git a/docs/manifest.json b/docs/manifest.json index 572081062078e..7f8dc079b307f 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -30,16 +30,21 @@ "description": "One-line install script for macOS and Linux.", "path": "./install/install.sh.md" }, - { - "title": "Docker", - "description": "Install Coder with Docker / docker-compose", - "path": "./install/docker.md" - }, { "title": "System packages", "description": "System packages for Debian, Ubuntu, Fedora, CentOS, RHEL, SUSE, and Alpine.", "path": "./install/packages.md" }, + { + "title": "Kubernetes", + "description": "Install Coder with Kubernetes via Helm", + "path": "./install/kubernetes.md" + }, + { + "title": "Docker", + "description": "Install Coder with Docker / docker-compose", + "path": "./install/docker.md" + }, { "title": "Standalone binaries", "description": "Download the binary for Mac, Windows, or Linux.", diff --git a/helm/README.md b/helm/README.md index 3f51582e16a77..b8ef788a7de59 100644 --- a/helm/README.md +++ b/helm/README.md @@ -6,12 +6,12 @@ and notably (compared to Coder Classic) does not include a database server. ## Getting Started -> ⚠️ **Warning**: The main branch in this repository does not represent the +> **Warning**: The main branch in this repository does not represent the > latest release of Coder. Please reference our installation docs for > instructions on a tagged release. View -[our docs](https://coder.com/docs/coder-oss/latest/install#kubernetes-via-helm) +[our docs](https://coder.com/docs/coder-oss/latest/install/kubernetes) for detailed installation instructions. ## Values From 95821db470fbf97f1808338be97ea75ee56c7d0d Mon Sep 17 00:00:00 2001 From: Ben Date: Fri, 2 Sep 2022 14:50:01 +0000 Subject: [PATCH 04/13] add k8s --- docs/install/kubernetes.md | 41 ++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md index b9e32f7235775..e13c0a04c3861 100644 --- a/docs/install/kubernetes.md +++ b/docs/install/kubernetes.md @@ -36,14 +36,12 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. ```sh # Install PostgreSQL helm repo add bitnami https://charts.bitnami.com/bitnami - helm install postgres bitnami/postgresql \ + helm install coder-db bitnami/postgresql \ --namespace coder \ --set auth.username=coder \ --set auth.password=coder \ --set auth.database=coder \ --set persistence.size=10Gi - - # Add the secret to Coder ``` The cluster-internal DB URL for the above database is: @@ -61,6 +59,15 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. 1. Download the latest `coder_helm` package from [GitHub releases](https://github.com/coder/coder/releases). +1. Create a secret with the database URL: + + ```sh + # uses Bitnami PostgreSQL example. If you have another database, + # change to the proper URL. + kubectl create secret generic coder-db-url -n coder \ + --from-literal=url=postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable + ``` + 1. Create a `values.yaml` with the configuration settings you'd like for your deployment. For example: @@ -93,8 +100,8 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. - name: CODER_TEMPLATE_AUTOIMPORT value: "kubernetes" - tls: - secretName: my-tls-secret-name + #tls: + # secretName: my-tls-secret-name ``` > You can view our @@ -105,8 +112,8 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. 1. Run the following commands to install the chart in your cluster. - ```console - $ helm install coder ./coder_helm_x.y.z.tgz \ + ```sh + helm install coder ./coder_helm_x.y.z.tgz \ --namespace coder \ --values values.yaml ``` @@ -118,10 +125,28 @@ You can view Coder's logs by getting the pod name from `kubectl get pods` and then running `kubectl logs `. You can also view these logs in your Cloud's log management system if you are using managed Kubernetes. -To upgrade Coder in the future, you can run the following command with a new `coder_helm_x.y.z.tgz` file from GitHub releases: +## Upgrading Coder via Helm + +To upgrade Coder in the future or change values, +you can run the following command with a new `coder_helm_x.y.z.tgz` file from GitHub releases: ```console $ helm upgrade coder ./coder_helm_x.y.z.tgz \ --namespace coder \ -f values.yaml ``` + +## Troubleshooting + +### Kubernetes-based workspace is stuck in "Connecting..." + +Ensure you have an externally-reachable `CODER_ACCESS_URL` set in your helm chart. If you do not have a domain set up, +this should be the IP address of Coder's LoadBalancer (`kubectl get svc -n coder`). + +See [troubleshooting templates](../templates.md#creating-and-troubleshooting-templates) for more steps. + +## Next steps + +- [Quickstart](../quickstart.md) +- [Configuring Coder](../admin/configure.md) +- [Templates](../templates.md) From 3cc6aed12bf3dcc47dc08b1d6708aa0067e875ff Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 22:18:00 +0000 Subject: [PATCH 05/13] add standalone install and --- docs/install/index.md | 6 ++++-- docs/install/manual.md | 30 ++++++++++++++++++++++++++++++ docs/manifest.json | 8 ++------ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/docs/install/index.md b/docs/install/index.md index 6d1b56ff3a330..f301b41bec8f2 100644 --- a/docs/install/index.md +++ b/docs/install/index.md @@ -1,3 +1,5 @@ -There are a number of different ways to install Coder +There are a number of different methods to install Coder: - + + This page is rendered on https://coder.com/docs/coder-oss/install. Refer to the other documents in the `install/` directory for per-platform instructions. + diff --git a/docs/install/manual.md b/docs/install/manual.md index e69de29bb2d1d..0caa2a1ff9300 100644 --- a/docs/install/manual.md +++ b/docs/install/manual.md @@ -0,0 +1,30 @@ +Coder publishes self-contained .zip and .tar.gz archives in [GitHub releases](https://github.com/coder/coder/releases). The archives bundle `coder` binary. + +1. Download the [release archive](https://github.com/coder/coder/releases) appropriate for your operating system + +1. Unzip the folder you just downloaded, and move the `coder` executable to a location that's on your `PATH` + + ```sh + # ex. macOS and Linux + mv coder /usr/local/bin + ``` + + > Windows users: see [this guide](https://answers.microsoft.com/en-us/windows/forum/all/adding-path-variable/97300613-20cb-4d85-8d0e-cc9d3549ba23) for adding folders to `PATH`. + +1. Start a Coder server + + ```sh + # Automatically sets up an external access URL on *.try.coder.app + coder server --tunnel + + # Requires a PostgreSQL instance and external access URL + coder server --postgres-url --access-url + ``` + +1. Visit the Coder URL in the logs to set up your first account, or use the CLI. + +## Next steps + +- [Quickstart](../quickstart.md) +- [Configuring Coder](../admin/configure.md) +- [Templates](../templates.md) diff --git a/docs/manifest.json b/docs/manifest.json index 7f8dc079b307f..45593bc682c03 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1,9 +1,5 @@ { - "versions": [ - "main", - "v0.8.1", - "v0.7.12" - ], + "versions": ["main", "v0.8.1", "v0.7.12"], "routes": [ { "title": "About", @@ -47,7 +43,7 @@ }, { "title": "Standalone binaries", - "description": "Download the binary for Mac, Windows, or Linux.", + "description": "Download binaries for macOS, Windows, and Linux.", "path": "./install/manual.md" } ] From 564c619f2193a815ef858cdbdb758c14a2135f71 Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 22:18:30 +0000 Subject: [PATCH 06/13] remove install.md --- docs/install.md | 265 ------------------------------------------------ 1 file changed, 265 deletions(-) delete mode 100644 docs/install.md diff --git a/docs/install.md b/docs/install.md deleted file mode 100644 index 1bc5d9181dc27..0000000000000 --- a/docs/install.md +++ /dev/null @@ -1,265 +0,0 @@ -# Install - -## install.sh - -The easiest way to install Coder is to use our [install script](https://github.com/coder/coder/blob/main/install.sh) for Linux and macOS. - -To install, run: - -```bash -curl -fsSL https://coder.com/install.sh | sh -``` - -You can preview what occurs during the install process: - -```bash -curl -fsSL https://coder.com/install.sh | sh -s -- --dry-run -``` - -You can modify the installation process by including flags. Run the help command for reference: - -```bash -curl -fsSL https://coder.com/install.sh | sh -s -- --help -``` - -## System packages - -Coder publishes the following system packages [in GitHub releases](https://github.com/coder/coder/releases): - -- .deb (Debian, Ubuntu) -- .rpm (Fedora, CentOS, RHEL, SUSE) -- .apk (Alpine) - -Once installed, you can run Coder as a system service: - -```sh - # Set up an external access URL or enable CODER_TUNNEL -sudo vim /etc/coder.d/coder.env -# Use systemd to start Coder now and on reboot -sudo systemctl enable --now coder -# View the logs to ensure a successful start -journalctl -u coder.service -b -``` - -## docker-compose - -Before proceeding, please ensure that you have both Docker and the [latest version of -Coder](https://github.com/coder/coder/releases) installed. - -> See our [docker-compose](https://github.com/coder/coder/blob/main/docker-compose.yaml) file -> for additional information. - -1. Clone the `coder` repository: - - ```console - git clone https://github.com/coder/coder.git - ``` - -2. Navigate into the `coder` folder and run `docker-compose up`: - - ```console - cd coder - # Coder will bind to localhost:7080. - # You may use localhost:7080 as your access URL - # when using Docker workspaces exclusively. - # CODER_ACCESS_URL=http://localhost:7080 - # Otherwise, an internet accessible access URL - # is required. - CODER_ACCESS_URL=https://coder.mydomain.com - docker-compose up - ``` - - Otherwise, you can start the service: - - ```console - cd coder - docker-compose up - ``` - - Alternatively, if you would like to start a **temporary deployment**: - - ```console - docker run --rm -it \ - -e CODER_DEV_MODE=true \ - -v /var/run/docker.sock:/var/run/docker.sock \ - ghcr.io/coder/coder:v0.5.10 - ``` - -3. Follow the on-screen instructions to create your first template and workspace - -If the user is not in the Docker group, you will see the following error: - -```sh -Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket -``` - -The default docker socket only permits connections from `root` or members of the `docker` -group. Remedy like this: - -```sh -# replace "coder" with user running coderd -sudo usermod -aG docker coder -grep /etc/group -e "docker" -sudo systemctl restart coder.service -``` - -## Kubernetes via Helm - -Before proceeding, please ensure that you have both Helm 3.5+ and the -[latest version of Coder](https://github.com/coder/coder/releases) installed. -You will also need to have a Kubernetes cluster running K8s 1.19+. - -> See our [Helm README](https://github.com/coder/coder/blob/main/helm#readme) -> file for additional information. Check the -> [values.yaml](https://github.com/coder/coder/blob/main/helm/values.yaml) file -> for a list of supported Helm values and their defaults. - -> ⚠️ **Warning**: Helm support is new and not yet complete. There may be changes -> to the Helm chart between releases which require manual values updates. Please -> file an issue if you run into any issues. -> -> Additionally, the Helm chart does not currently automatically configure a -> Service Account and workspace template for use in Coder. See -> [#3265](https://github.com/coder/coder/issues/3265). - -1. Create a namespace for Coder, such as `coder`: - - ```console - $ kubectl create namespace coder - ``` - -1. Create a PostgreSQL deployment. Coder does not manage a database server for - you. - - - If you're in a public cloud such as - [Google Cloud](https://cloud.google.com/sql/docs/postgres/), - [AWS](https://aws.amazon.com/rds/postgresql/), - [Azure](https://docs.microsoft.com/en-us/azure/postgresql/), or - [DigitalOcean](https://www.digitalocean.com/products/managed-databases-postgresql), - you can use the managed PostgreSQL offerings they provide. Make sure that - the PostgreSQL service is running and accessible from your cluster. It - should be in the same network, same project, etc. - - - You can install Postgres manually on your cluster using the - [Bitnami PostgreSQL Helm chart](https://github.com/bitnami/charts/tree/master/bitnami/postgresql#readme). There are some - [helpful guides](https://phoenixnap.com/kb/postgresql-kubernetes) on the - internet that explain sensible configurations for this chart. Example: - - ```console - $ helm repo add bitnami https://charts.bitnami.com/bitnami - $ helm install postgres bitnami/postgresql \ - --namespace coder \ - --set auth.username=coder \ - --set auth.password=coder \ - --set auth.database=coder \ - --set persistence.size=10Gi - ``` - - The cluster-internal DB URL for the above database is: - ``` - postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable - ``` - - > Ensure you set up periodic backups so you don't lose data. - - - You can use - [Postgres operator](https://github.com/zalando/postgres-operator) to - manage PostgreSQL deployments on your Kubernetes cluster. - -1. Download the latest `coder_helm` package from - [GitHub releases](https://github.com/coder/coder/releases). - -1. Create a `values.yaml` with the configuration settings you'd like for your - deployment. For example: - - ```yaml - coder: - # You can specify any environment variables you'd like to pass to Coder - # here. Coder consumes environment variables listed in - # `coder server --help`, and these environment variables are also passed - # to the workspace provisioner (so you can consume them in your Terraform - # templates for auth keys etc.). - # - # Please keep in mind that you should not set `CODER_ADDRESS`, - # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as - # they are already set by the Helm chart and will cause conflicts. - env: - - name: CODER_ACCESS_URL - value: "https://coder.example.com" - - name: CODER_PG_CONNECTION_URL - valueFrom: - secretKeyRef: - # You'll need to create a secret called coder-db-url with your - # Postgres connection URL like: - # postgres://coder:password@postgres:5432/coder?sslmode=disable - name: coder-db-url - key: url - - # This env variable controls whether or not to auto-import the - # "kubernetes" template on first startup. This will not work unless - # coder.serviceAccount.workspacePerms is true. - - name: CODER_TEMPLATE_AUTOIMPORT - value: "kubernetes" - - tls: - secretName: my-tls-secret-name - ``` - - > You can view our - > [Helm README](https://github.com/coder/coder/blob/main/helm#readme) for - > details on the values that are available, or you can view the - > [values.yaml](https://github.com/coder/coder/blob/main/helm/values.yaml) - > file directly. - -1. Run the following commands to install the chart in your cluster. - - ```console - $ helm install coder ./coder_helm_x.y.z.tgz \ - --namespace coder \ - --values values.yaml - ``` - -You can watch Coder start up by running `kubectl get pods`. Once Coder has -started, the `coder-*` pods should enter the `Running` state. - -You can view Coder's logs by getting the pod name from `kubectl get pods` and -then running `kubectl logs `. You can also view these logs in your -Cloud's log management system if you are using managed Kubernetes. - -To upgrade Coder in the future, you can run the following command with a new `coder_helm_x.y.z.tgz` file from GitHub releases: - -```console -$ helm upgrade coder ./coder_helm_x.y.z.tgz \ - --namespace coder \ - -f values.yaml -``` - -## Manual - -We publish self-contained .zip and .tar.gz archives in [GitHub releases](https://github.com/coder/coder/releases). The archives bundle `coder` binary. - -1. Download the [release archive](https://github.com/coder/coder/releases) appropriate for your operating system - -1. Unzip the folder you just downloaded, and move the `coder` executable to a location that's on your `PATH` - - ```sh - # ex. macOS and Linux - mv coder /usr/local/bin - ``` - - > Windows users: see [this guide](https://answers.microsoft.com/en-us/windows/forum/all/adding-path-variable/97300613-20cb-4d85-8d0e-cc9d3549ba23) for adding folders to `PATH`. - -1. Start a Coder server - - ```sh - # Automatically sets up an external access URL on *.try.coder.app - coder server --tunnel - - # Requires a PostgreSQL instance and external access URL - coder server --postgres-url --access-url - ``` - -## Up Next - -- Learn how to [configure](./install/configure.md) Coder. -- Learn about [upgrading](./install/upgrade.md) Coder. From 40e63518f94eb3fb95321de4861caa9039051e0f Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 23:13:49 +0000 Subject: [PATCH 07/13] add admin and configuring docs --- docs/admin/configure.md | 38 +++++++++++++++++++++++++++++-------- docs/admin/index.md | 5 +++++ docs/install/docker.md | 4 ++-- docs/install/manual.md | 4 ++++ docs/install/packages.md | 12 ++++++++++++ docs/{ => install}/users.md | 0 docs/manifest.json | 12 ++++++------ 7 files changed, 59 insertions(+), 16 deletions(-) rename docs/{ => install}/users.md (100%) diff --git a/docs/admin/configure.md b/docs/admin/configure.md index ff69cef90d9b9..b6dc217cda8f7 100644 --- a/docs/admin/configure.md +++ b/docs/admin/configure.md @@ -1,10 +1,27 @@ -# Configure - -This article documents the Coder server's primary configuration variables. For a full list +Coder server's primary configuration is done via environment variables. For a full list of the options, run `coder server --help` on the host. -Once you've [installed](../install.md) Coder, you can configure the server by setting the following -variables in `/etc/coder.d/coder.env`: +## Tunnel + +For proof-of-concept deployments, you can set `CODER_TUNNEL=true` to run Coder on a unique `*.try.coder.app` URL. +This is a quick way to allow users and workspaces outside your LAN to connect to Coder. + +## Access URL + +`CODER_ACCESS_URL` is required if you are not using the tunnel. Set this to the external URL +that users and workspaces use to connect to Coder (e.g. https://coder.example.com). This +should not be localhost. + +## PostgreSQL Database + +Coder uses a PostgreSQL database to store users, workspace metadata, and other deployment information. +Use `CODER_PG_CONNECTION_URL` to set the database that Coder connects to. If unset, PostgreSQL binaries will be +downloaded from Maven (https://repo1.maven.org/maven2) and store all data in the config root. + +## System packages + +If you've installed Coder via a [system package](../install/packages.md) Coder, you can +configure the server by setting the following variables in `/etc/coder.d/coder.env`: ```sh # String. Specifies the external URL (HTTP/S) to access Coder. @@ -32,17 +49,22 @@ CODER_TLS_CERT_FILE= CODER_TLS_KEY_FILE= ``` -## Run Coder - -Now, run Coder as a system service on the host: +To run Coder as a system service on the host: ```sh # Use systemd to start Coder now and on reboot sudo systemctl enable --now coder + # View the logs to ensure a successful start journalctl -u coder.service -b ``` +To restart Coder after applying system changes: + +```sh +sudo systemctl restart Coder +``` + ## Up Next - [Get started using Coder](../quickstart.md). diff --git a/docs/admin/index.md b/docs/admin/index.md index e69de29bb2d1d..9a7ca1bf45be9 100644 --- a/docs/admin/index.md +++ b/docs/admin/index.md @@ -0,0 +1,5 @@ +Get started with Coder administration: + + + This page is rendered on https://coder.com/docs/coder-oss/admin. Refer to the other documents in the `admin/` directory. + diff --git a/docs/install/docker.md b/docs/install/docker.md index 56701925eba4f..4a90c3ce8f47c 100644 --- a/docs/install/docker.md +++ b/docs/install/docker.md @@ -20,7 +20,7 @@ docker run --rm -it \ ``` Coder configuration is defined via environment variables. -See [configuring Coder](../admin/configure.md) for details. +Learn more about Coder's [configuration options](../admin/configure.md). ## Run Coder with access URL and external PostgreSQL (recommended) @@ -37,7 +37,7 @@ docker run --rm -it \ ``` Coder configuration is defined via environment variables. -See [configuring Coder](../admin/configure.md) for details. +Learn more about Coder's [configuration options](../admin/configure.md). ## Run Coder with docker-compose diff --git a/docs/install/manual.md b/docs/install/manual.md index 0caa2a1ff9300..fe360f1b0c0a5 100644 --- a/docs/install/manual.md +++ b/docs/install/manual.md @@ -21,6 +21,10 @@ Coder publishes self-contained .zip and .tar.gz archives in [GitHub releases](ht coder server --postgres-url --access-url ``` + > Set `CODER_ACCESS_URL` to the external URL that users and workspaces will use to + > connect to Coder. This is not required if you are using the tunnel. Learn more + > about Coder's [configuration options](../admin/configure.md). + 1. Visit the Coder URL in the logs to set up your first account, or use the CLI. ## Next steps diff --git a/docs/install/packages.md b/docs/install/packages.md index ae5e1e4908b86..972dd9908aef4 100644 --- a/docs/install/packages.md +++ b/docs/install/packages.md @@ -17,12 +17,24 @@ sudo systemctl enable --now coder journalctl -u coder.service -b ``` +> Set `CODER_ACCESS_URL` to the external URL that users and workspaces will use to +> connect to Coder. This is not required if you are using the tunnel. Learn more +> about Coder's [configuration options](../admin/configure.md). + Visit the Coder URL in the logs to set up your first account, or use the CLI: ```sh coder login ``` +## Restarting Coder + +After updating Coder or applying configuration changes, restart the server: + +```sh +sudo systemctl restart coder +``` + ## Next steps - [Quickstart](../quickstart.md) diff --git a/docs/users.md b/docs/install/users.md similarity index 100% rename from docs/users.md rename to docs/install/users.md diff --git a/docs/manifest.json b/docs/manifest.json index 45593bc682c03..dc7a445a14a88 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -140,6 +140,12 @@ "icon_path": "./images/icons/wrench.svg", "path": "./admin/index.md", "children": [ + { + "title": "Users", + "description": "Learn about user roles available in Coder and how to create and manage users", + "icon_path": "./images/icons/users.svg", + "path": "./admin/users.md" + }, { "title": "Authentication", "description": "Learn how to set up authentication using GitHub or OpenID Connect.", @@ -157,12 +163,6 @@ } ] }, - { - "title": "Users", - "description": "Learn about user roles available in Coder and how to create and manage users", - "icon_path": "./images/icons/users.svg", - "path": "./users.md" - }, { "title": "Contributing", "description": "Learn how to contribute to Coder", From eb9f5161031d25c833fe16ea4a78a968eed27b8c Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 23:14:33 +0000 Subject: [PATCH 08/13] change install links --- README.md | 2 +- docs/admin/upgrade.md | 2 +- docs/quickstart.md | 2 +- docs/quickstart/docker.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6abd1296fff6d..8e54094e3d455 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ You can modify the installation process by including flags. Run the help command curl -L https://coder.com/install.sh | sh -s -- --help ``` -> See [install](docs/install.md) for additional methods. +> See [install](docs/install) for additional methods. Once installed, you can start a production deployment1 with a single command: diff --git a/docs/admin/upgrade.md b/docs/admin/upgrade.md index 1d553645c7e05..4f5ae6e982a18 100644 --- a/docs/admin/upgrade.md +++ b/docs/admin/upgrade.md @@ -10,7 +10,7 @@ This article walks you through how to upgrade your Coder server. To upgrade your Coder server, simply reinstall Coder using your original method -of [install](../install.md). +of [install](../install). ## Via install.sh diff --git a/docs/quickstart.md b/docs/quickstart.md index 43e83fe8ae126..40c0de39840e8 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -5,7 +5,7 @@ possible way to use Coder. ## Generic Quickstart -Please [install Coder](../install.md) before proceeding with the steps below. +Please [install Coder](../install) before proceeding with the steps below. ## First time owner user setup diff --git a/docs/quickstart/docker.md b/docs/quickstart/docker.md index 36d0d3506ddf3..c9d659ce938b1 100644 --- a/docs/quickstart/docker.md +++ b/docs/quickstart/docker.md @@ -13,7 +13,7 @@ Coder with Docker has the following advantages: ## Instructions -1. [Install and launch Coder](../install.md) +1. [Install and launch Coder](../install) You will specify `CODER_ACCESS_URL=http://localhost:7080` since we're using local Docker workspaces exclusively. `CODER_ACCESS_URL` is the external URL From af4cf2cbd89cb61921c8132939873486931ce600 Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 23:15:19 +0000 Subject: [PATCH 09/13] move file --- docs/{install => admin}/users.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{install => admin}/users.md (100%) diff --git a/docs/install/users.md b/docs/admin/users.md similarity index 100% rename from docs/install/users.md rename to docs/admin/users.md From 960a3aeab44a0a481317e0f8edc0b8714432eab7 Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 3 Sep 2022 23:17:56 +0000 Subject: [PATCH 10/13] fix typo --- docs/install/kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md index e13c0a04c3861..c445e9963c772 100644 --- a/docs/install/kubernetes.md +++ b/docs/install/kubernetes.md @@ -62,7 +62,7 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. 1. Create a secret with the database URL: ```sh - # uses Bitnami PostgreSQL example. If you have another database, + # Uses Bitnami PostgreSQL example. If you have another database, # change to the proper URL. kubectl create secret generic coder-db-url -n coder \ --from-literal=url=postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable From 24afb084291b7a9dc27a09f94d8943312031b334 Mon Sep 17 00:00:00 2001 From: Ben Date: Tue, 6 Sep 2022 21:59:50 +0000 Subject: [PATCH 11/13] fixes from ammario feedback --- coder.env | 13 +++++++++---- docs/install/{manual.md => binary.md} | 0 docs/manifest.json | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) rename docs/install/{manual.md => binary.md} (100%) diff --git a/coder.env b/coder.env index 0955b1ca21e6b..c7c880eb57f64 100644 --- a/coder.env +++ b/coder.env @@ -1,13 +1,18 @@ -# Coder must be reachable from an external URL for users and workspaces to connect. -# Enable CODER_TUNNEL (easy) or set CODER_ACCESS_URL +# Coder must be reachable from an external URL +# for users and workspaces to connect. +# Option 1) Enable CODER_TUNNEL to generate a +# unique *. try.coder.com access URL +CODER_TUNNEL=false + +# Option 2) Set an access URL +# e.g. https://coder.example.com CODER_ACCESS_URL= + CODER_ADDRESS= CODER_PG_CONNECTION_URL= CODER_TLS_CERT_FILE= CODER_TLS_ENABLE= CODER_TLS_KEY_FILE= -# Generate a unique *.try.coder.app access URL -CODER_TUNNEL=false # Run "coder server --help" for flag information. diff --git a/docs/install/manual.md b/docs/install/binary.md similarity index 100% rename from docs/install/manual.md rename to docs/install/binary.md diff --git a/docs/manifest.json b/docs/manifest.json index dc7a445a14a88..dff5d2d009ec6 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -44,7 +44,7 @@ { "title": "Standalone binaries", "description": "Download binaries for macOS, Windows, and Linux.", - "path": "./install/manual.md" + "path": "./install/binary.md" } ] }, From 551fdc932b62b5cb9821665c980d888dc79b8998 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 7 Sep 2022 20:58:38 +0000 Subject: [PATCH 12/13] changes from mtm feedback --- docs/install/kubernetes.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md index c445e9963c772..5227ef4e55680 100644 --- a/docs/install/kubernetes.md +++ b/docs/install/kubernetes.md @@ -118,12 +118,17 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. --values values.yaml ``` -You can watch Coder start up by running `kubectl get pods`. Once Coder has -started, the `coder-*` pods should enter the `Running` state. + You can watch Coder start up by running `kubectl get pods`. Once Coder has + started, the `coder-*` pods should enter the `Running` state. -You can view Coder's logs by getting the pod name from `kubectl get pods` and -then running `kubectl logs `. You can also view these logs in your -Cloud's log management system if you are using managed Kubernetes. +1. Log in to Coder + + Use `kubectl get svc -n coder` to get the IP address of the + LoadBalancer. Visit this in the browser to set up your first account. + + If you do not have a domain, you should set `CODER_ACCESS_URL` + to this URL in the Helm chart and upgrade Coder (see below). + This allows workspaces to connect to the proper Coder URL. ## Upgrading Coder via Helm @@ -138,6 +143,10 @@ $ helm upgrade coder ./coder_helm_x.y.z.tgz \ ## Troubleshooting +You can view Coder's logs by getting the pod name from `kubectl get pods` and then running `kubectl logs `. You can also +view these logs in your +Cloud's log management system if you are using managed Kubernetes. + ### Kubernetes-based workspace is stuck in "Connecting..." Ensure you have an externally-reachable `CODER_ACCESS_URL` set in your helm chart. If you do not have a domain set up, From 58fe68900593cb50011e4c82fa9d1c3feca1ca9c Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 7 Sep 2022 20:59:13 +0000 Subject: [PATCH 13/13] changes from dean feedback --- docs/install/kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/kubernetes.md b/docs/install/kubernetes.md index 5227ef4e55680..637f622ec2e9c 100644 --- a/docs/install/kubernetes.md +++ b/docs/install/kubernetes.md @@ -65,7 +65,7 @@ You will also need to have a Kubernetes cluster running K8s 1.19+. # Uses Bitnami PostgreSQL example. If you have another database, # change to the proper URL. kubectl create secret generic coder-db-url -n coder \ - --from-literal=url=postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable + --from-literal=url="postgres://coder:coder@postgres-postgresql.coder.svc.cluster.local:5432/coder?sslmode=disable" ``` 1. Create a `values.yaml` with the configuration settings you'd like for your