Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 59 additions & 64 deletions docs/self-hosting/methods/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,70 +48,65 @@ When configuring the PLANE_VERSION environment variable, **do not** set it to `s
helm repo add plane https://helm.plane.so/
```

4. Use one of the following ways to deploy Plane: - **Quick setup**:
This is the fastest way to deploy Plane with the default settings. This will create stateful deployments for Postgres, Redis/Valkey, and Minio with a persistent volume claim using the `longhorn` storage class. This also sets up the Ingress routes for you using `nginx` ingress class. To customize these settings, see the [Custom ingress routes](#custom-ingress-routes).

Run the following command to deploy Plane:

```bash
helm upgrade --install plane-app plane/plane-enterprise \
--create-namespace \
--namespace plane \
--set license.licenseDomain=${DOMAIN_NAME} \
--set license.licenseServer=https://prime.plane.so \
--set planeVersion=${PLANE_VERSION} \
--set ingress.enabled=true \
--set ingress.ingressClass=nginx \
--set env.storageClass=longhorn \
--timeout 10m \
--wait \
--wait-for-jobs
```

::: info
This is the minimum required to set up Plane Commercial edition. You can change the default namespace from `plane`, the default app name from `plane-app`, the default storage class from `longhorn`, and the default ingress class from `nginx` to whatever you would like to.<br/> <br/>
To use a custom StorageClass, add `--set env.storageClass=<your-storageclass-name>` to the command above.<br/> <br/>
You can also pass other settings referring to the **Configuration Settings** toggle section below.
:::

- **Advanced setup**:
::: warning
When self-hosting Plane for production use, it is strongly recommended to configure [external database and storage](/self-hosting/methods/kubernetes#configuration-settings). This ensures that your data remains secure and accessible even if the local machine crashes or encounters hardware issues. Relying solely on local storage for these components increases the risk of data loss and service disruption.
:::

For more control over your setup, follow the steps below:

i. Run the script below to download the `values.yaml` file and and edit using any editor like Vim or Nano.

Make sure you set the required environment variables listed below:
- `planeVersion: v2.3.1`
- `license.licenseDomain: <The domain you have specified to host Plane>`
- `license.licenseServer: https://prime.plane.so`
- `ingress.enabled: <true | false>`
- `ingress.ingressClass: <nginx or any other ingress class configured in your cluster>`
- `env.storageClass: <longhorn or any other storage class configured in your cluster>`

Make sure you set the required environment variables listed below:
- `planeVersion: v2.2.1`
- `license.licenseDomain: <The domain you have specified to host Plane>`
- `license.licenseServer: https://prime.plane.so`
- `ingress.enabled: <true | false>`
- `ingress.ingressClass: <nginx or any other ingress class configured in your cluster>`
- `env.storageClass: <longhorn or any other storage class configured in your cluster>`

See the **Configuration settings** toggle section for more details.

```bash
helm upgrade --install plane-app plane/plane-enterprise \
--create-namespace \
--namespace plane \
-f values.yaml \
--timeout 10m \
--wait \
--wait-for-jobs
```

iii. If you've purchased a paid plan, [activate your license key](/self-hosting/manage/manage-licenses/activate-pro-and-business#activate-your-license) to unlock premium features.
4. Use one of the following ways to deploy Plane:

- **Quick setup**:
This is the fastest way to deploy Plane with the default settings. This will create stateful deployments for Postgres, Redis/Valkey, and Minio with a persistent volume claim using the `longhorn` storage class. This also sets up the Ingress routes for you using `nginx` ingress class. To customize these settings, see the [Custom ingress routes](#custom-ingress-routes).

Run the following command to deploy Plane:

```
helm upgrade --install plane-app plane/plane-enterprise \
--create-namespace \
--namespace plane \
--set license.licenseDomain=${DOMAIN_NAME} \
--set license.licenseServer=https://prime.plane.so \
--set planeVersion=${PLANE_VERSION} \
--set ingress.enabled=true \
--set ingress.ingressClass=nginx \
--set env.storageClass=longhorn \
--timeout 10m \
--wait \
--wait-for-jobs
```
Comment on lines +58 to +71
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language identifier to the fenced code block.

The code fence at this line has no language tag, which suppresses syntax highlighting and triggers a markdownlint MD040 warning. Every other code block in this file uses bash.

✏️ Proposed fix
-      ```
+      ```bash
       helm upgrade --install plane-app plane/plane-enterprise \
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
helm upgrade --install plane-app plane/plane-enterprise \
--create-namespace \
--namespace plane \
--set license.licenseDomain=${DOMAIN_NAME} \
--set license.licenseServer=https://prime.plane.so \
--set planeVersion=${PLANE_VERSION} \
--set ingress.enabled=true \
--set ingress.ingressClass=nginx \
--set env.storageClass=longhorn \
--timeout 10m \
--wait \
--wait-for-jobs
```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 58-58: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/methods/kubernetes.md` around lines 58 - 71, The fenced
code block containing the helm upgrade command is missing a language tag; update
the opening fence to specify bash (i.e., change the triple backticks that
precede the helm command to ```bash) so the block matches other examples and
resolves the MD040 warning; locate the fenced block around the helm upgrade
sequence in kubernetes.md and add the bash identifier to the opening ``` fence.


::: info
This is the minimum required to set up Plane Commercial edition. You can change the default namespace from `plane`, the default app name from `plane-app`, the default storage class from `longhorn`, and the default ingress class from `nginx` to whatever you would like to.<br/> <br/>
To use a custom StorageClass, add `--set env.storageClass=<your-storageclass-name>` to the command above.<br/> <br/>
You can also pass other settings referring to the **Configuration Settings** toggle section below.
:::

- **Advanced setup**:

::: warning
When self-hosting Plane for production use, it is strongly recommended to configure [external database and storage](/self-hosting/methods/kubernetes#configuration-settings). This ensures that your data remains secure and accessible even if the local machine crashes or encounters hardware issues. Relying solely on local storage for these components increases the risk of data loss and service disruption.
:::

For more control over your setup, follow the steps below:

i. Run the script below to download the `values.yaml` file and edit using any editor like Vim or Nano.

Make sure you set the required environment variables listed below:
- `planeVersion: v2.3.1`
- `license.licenseDomain: <The domain you have specified to host Plane>`
- `license.licenseServer: https://prime.plane.so`
- `ingress.enabled: <true | false>`
- `ingress.ingressClass: <nginx or any other ingress class configured in your cluster>`
- `env.storageClass: <longhorn or any other storage class configured in your cluster>`

See the **Configuration settings** toggle section for more details.

```bash
helm upgrade --install plane-app plane/plane-enterprise \
--create-namespace \
--namespace plane \
-f values.yaml \
--timeout 10m \
--wait \
--wait-for-jobs
```

ii. If you've purchased a paid plan, [activate your license key](/self-hosting/manage/manage-licenses/activate-pro-and-business#activate-your-license) to unlock premium features.
Comment on lines +87 to +109
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Missing helm show values download command in Advanced setup.

Line 87 reads "Run the script below to download the values.yaml file and edit using any editor…", but no download command follows — the content jumps straight to the list of required env vars. Users following the Advanced setup path have no way to obtain values.yaml.

The Community Edition section (Line 675) shows the expected pattern:

helm show values plane/plane-enterprise > values.yaml
vi values.yaml

This step should be inserted between line 87 and the env-var list.

✏️ Proposed fix
       i. Run the script below to download the `values.yaml` file and edit using any editor like Vim or Nano.
 
+      ```bash
+      helm show values plane/plane-enterprise > values.yaml
+      vi values.yaml
+      ```
+
       Make sure you set the required environment variables listed below:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/methods/kubernetes.md` around lines 87 - 109, Insert a step
before the environment variable list that shows how to download and open the
default values file: run "helm show values plane/plane-enterprise > values.yaml"
and then open it with an editor (e.g., "vi values.yaml"), making sure this
appears as a bash code block right before the paragraph that begins "Make sure
you set the required environment variables..." so users can edit values.yaml
prior to running the helm upgrade command that references -f values.yaml.


## Configuration settings

Expand Down
Loading