mirror of https://github.com/coder/coder.git
chore: separate install docs (#3859)
This commit is contained in:
parent
d38e645492
commit
3610f09c77
|
@ -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 deployment<sup>1</sup> with a single command:
|
||||
|
||||
|
|
15
coder.env
15
coder.env
|
@ -1,9 +1,18 @@
|
|||
# Run "coder server --help" for flag information.
|
||||
# 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.
|
||||
|
|
|
@ -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).
|
|
@ -0,0 +1,5 @@
|
|||
Get started with Coder administration:
|
||||
|
||||
<children>
|
||||
This page is rendered on https://coder.com/docs/coder-oss/admin. Refer to the other documents in the `admin/` directory.
|
||||
</children>
|
|
@ -10,7 +10,7 @@ This article walks you through how to upgrade your Coder server.
|
|||
</blockquote>
|
||||
|
||||
To upgrade your Coder server, simply reinstall Coder using your original method
|
||||
of [install](../install.md).
|
||||
of [install](../install).
|
||||
|
||||
## Via install.sh
|
||||
|
265
docs/install.md
265
docs/install.md
|
@ -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 <pod name>`. 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 <url> --access-url <url>
|
||||
```
|
||||
|
||||
## Up Next
|
||||
|
||||
- Learn how to [configure](./install/configure.md) Coder.
|
||||
- Learn about [upgrading](./install/upgrade.md) Coder.
|
|
@ -0,0 +1,34 @@
|
|||
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 <url> --access-url <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
|
||||
|
||||
- [Quickstart](../quickstart.md)
|
||||
- [Configuring Coder](../admin/configure.md)
|
||||
- [Templates](../templates.md)
|
|
@ -0,0 +1,84 @@
|
|||
You can install and run Coder using the official Docker images published on [GitHub Container Registry](https://github.com/coder/coder/pkgs/container/coder).
|
||||
|
||||
## Requirements
|
||||
|
||||
Docker is required. See the [official installation documentation](https://docs.docker.com/install/).
|
||||
|
||||
## Run Coder with built-in database and tunnel (quick)
|
||||
|
||||
For proof-of-concept deployments, you can run a complete Coder instance with
|
||||
with the following command:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Coder configuration is defined via environment variables.
|
||||
Learn more about Coder's [configuration options](../admin/configure.md).
|
||||
|
||||
## 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.
|
||||
Learn more about Coder's [configuration options](../admin/configure.md).
|
||||
|
||||
## Run Coder with docker-compose
|
||||
|
||||
Coder's publishes a [docker-compose example](../../docker-compose.yaml) which includes
|
||||
an PostgreSQL container and volume.
|
||||
|
||||
1. Install [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
2. Clone the `coder` repository:
|
||||
|
||||
```console
|
||||
git clone https://github.com/coder/coder.git
|
||||
```
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
> Without `CODER_ACCESS_URL` set, Coder will bind to `localhost:7080`. This will only work for Docker-based templates.
|
||||
|
||||
4. Follow the on-screen instructions log in and create your first template and workspace
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Docker-based workspace is stuck in "Connecting..."
|
||||
|
||||
Ensure you have an externally-reachable `CODER_ACCESS_URL` set. See [troubleshooting templates](../templates.md#creating-and-troubleshooting-templates) for more steps.
|
||||
|
||||
### Permission denied while trying to connect to the Docker daemon socket
|
||||
|
||||
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)
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Quickstart](../quickstart.md)
|
||||
- [Configuring Coder](../admin/configure.md)
|
||||
- [Templates](../templates.md)
|
|
@ -0,0 +1,5 @@
|
|||
There are a number of different methods to install Coder:
|
||||
|
||||
<children>
|
||||
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.
|
||||
</children>
|
|
@ -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)
|
|
@ -0,0 +1,161 @@
|
|||
## 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 coder-db 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 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:
|
||||
|
||||
```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.
|
||||
|
||||
```sh
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
You can view Coder's logs by getting the pod name from `kubectl get pods` and then running `kubectl logs <pod name>`. 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,
|
||||
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)
|
|
@ -0,0 +1,42 @@
|
|||
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
|
||||
```
|
||||
|
||||
> 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 <access-url>
|
||||
```
|
||||
|
||||
## Restarting Coder
|
||||
|
||||
After updating Coder or applying configuration changes, restart the server:
|
||||
|
||||
```sh
|
||||
sudo systemctl restart coder
|
||||
```
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Quickstart](../quickstart.md)
|
||||
- [Configuring Coder](../admin/configure.md)
|
||||
- [Templates](../templates.md)
|
|
@ -1,9 +1,5 @@
|
|||
{
|
||||
"versions": [
|
||||
"main",
|
||||
"v0.8.1",
|
||||
"v0.7.12"
|
||||
],
|
||||
"versions": ["main", "v0.8.1", "v0.7.12"],
|
||||
"routes": [
|
||||
{
|
||||
"title": "About",
|
||||
|
@ -23,22 +19,32 @@
|
|||
"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": "System packages",
|
||||
"description": "System packages for Debian, Ubuntu, Fedora, CentOS, RHEL, SUSE, and Alpine.",
|
||||
"path": "./install/packages.md"
|
||||
},
|
||||
{
|
||||
"title": "Upgrading",
|
||||
"description": "Learn how to upgrade Coder.",
|
||||
"path": "./install/upgrade.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 binaries for macOS, Windows, and Linux.",
|
||||
"path": "./install/binary.md"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -129,10 +135,33 @@
|
|||
"path": "./secrets.md"
|
||||
},
|
||||
{
|
||||
"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": "Administration",
|
||||
"description": "How to install and deploy Coder",
|
||||
"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.",
|
||||
"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": "Contributing",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue