Skip to content

Added pages for Prime portal#200

Merged
sriramveeraghanta merged 6 commits intomasterfrom
prime-portal-pages
Feb 5, 2026
Merged

Added pages for Prime portal#200
sriramveeraghanta merged 6 commits intomasterfrom
prime-portal-pages

Conversation

@danciaclara
Copy link
Collaborator

@danciaclara danciaclara commented Feb 2, 2026

Summary by CodeRabbit

  • Documentation
    • Added a Docker Compose deployment guide for self-hosted Plane: prerequisites, step-by-step install flow with interactive prompts (domain and edition), production notes on external database/storage, and post-install/license activation guidance.
    • Added a comprehensive Kubernetes/Helm production deployment guide: prerequisites, quick and advanced Helm workflows, per-service configuration, ingress/SSL setup, environment and secret guidance, and advanced customization recommendations.

@vercel
Copy link

vercel bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-docs Ready Ready Preview, Comment Feb 5, 2026 3:39pm

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

Added two commercial self-hosting installation guides: a Docker Compose step-by-step installer and an extensive Kubernetes (Helm) deployment guide detailing values, components, and production recommendations.

Changes

Cohort / File(s) Summary
Self-hosting: Docker Compose doc
docs/self-hosting/methods/install-methods-commercial/docker-compose.md
New file: step-by-step Docker Compose installation guide covering prerequisites, install script flow, domain/edition prompts, production notes about external DB/storage, and license activation for paid plans.
Self-hosting: Kubernetes Helm doc
docs/self-hosting/methods/install-methods-commercial/kubernetes.md
New file: comprehensive Helm-based Kubernetes deployment guide for commercial/enterprise editions, including prerequisites, env vars, quick/advanced workflows, per-component Helm values (DB, Redis/Valkey, Minio/S3, Web/Admin/API/Silo/Workers/etc.), ingress/SSL, extra env settings, and custom routes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped through pages, docs in paw,
Wrote compose steps and Helm with awe,
Domains, charts, and values set to sing,
Servers hum and deployments spring,
A tiny rabbit celebrating things ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'Added pages for Prime portal' is vague and does not accurately describe the actual changes, which are Docker Compose and Kubernetes deployment documentation for self-hosted Plane instances. Revise the title to reflect the actual changes, such as 'Add Docker Compose and Kubernetes deployment guides for self-hosted Plane' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch prime-portal-pages

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

🤖 Fix all issues with AI agents
In `@docs/self-hosting/methods/install-methods-commercial/docker-compose.md`:
- Around line 33-35: Update the fenced code block that contains the curl command
"curl -fsSL https://prime.plane.so/install/ | sh -" to include a language
identifier by changing the opening fence from ``` to ```bash so markdownlint
passes and syntax highlighting is enabled.

In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md`:
- Line 20: Fix the duplicated word in the sentence shown in the diff: replace
"Ensure you use use the latest Helm chart version." with "Ensure you use the
latest Helm chart version." so the duplicated "use" is removed; locate the exact
phrase "Ensure you use use the latest Helm chart version." in the Kubernetes
install docs and update it to the corrected wording.
- Around line 110-116: The "License" section uses an H4 heading (#### License)
which causes a heading-level jump; change it to an H3 (### License) so it
follows the previous H2/H3 hierarchy consistently, and ensure the surrounding
heading levels remain sequential (adjust any neighboring headings if needed) so
the table under the "License" heading stays nested correctly.
- Line 410: The table row for env.email_service_envs.smtp_domain has too many
cells causing an extra empty columns; edit the Markdown table row containing
"env.email_service_envs.smtp_domain" so it has exactly 4 pipe-separated columns
(e.g., Parameter | Type | Required | Description) by removing the trailing empty
pipe cells and ensuring the description ("The SMTP Domain to be used with email
service") occupies the fourth column; verify the header matches 4 columns and
adjust any neighboring rows if needed.
- Line 567: The ingress table row for "plane-mq.example.com | `/` |
`<http://plane-app-rabbitmq.plane:15672>` | (Optional) if using local setup,
this will enable management console access" has an extra column; remove the
fourth column and either append the optional note to the Service column (the
cell containing `<http://plane-app-rabbitmq.plane:15672>`) or place that
optional sentence in a separate paragraph immediately after the table so the
table only includes Host, Path, and Service columns and the note remains
visible.
- Line 157: The table entry for services.redis.nodeSelector currently shows a
default of "0" but should be an empty map "{}"; update the documentation row for
services.redis.nodeSelector to use {} as the default value (matching other
nodeSelector fields and the Kubernetes map type) and verify consistency across
the same configuration table so all nodeSelector defaults use {} rather than
numeric zeros.
- Around line 138-143: The table has a duplicated services.postgres.nodeSelector
row and several swapped/mismatched descriptions; remove the duplicate
nodeSelector entry and correct the descriptions so:
services.postgres.assign_cluster_ip -> "Set it to `true` if you want to assign
`ClusterIP` to the service", services.postgres.nodeSelector -> "This key allows
you to set the node selector for the stateful deployment of postgres. Useful to
run the deployment on specific nodes", services.postgres.labels -> "This key
allows you to set custom labels for the stateful deployment of postgres. Useful
for organizing and selecting resources", and keep services.postgres.tolerations
and services.postgres.affinity as their current descriptions.
🧹 Nitpick comments (1)
docs/self-hosting/methods/install-methods-commercial/kubernetes.md (1)

26-33: Consider simpler placeholders instead of env vars in the quickstart.

Docs in this repo have leaned toward inline placeholder values for readability. You could replace the env-var setup with placeholders in the helm command (or provide both).

Based on learnings: “In documentation files for makeplane/developer-docs, the maintainers prefer to keep code examples simple with placeholder values (like hardcoded credentials) rather than using environment variables or complex setup, as it makes the documentation more readable and easier to understand for users learning the API.”

- `kubectl` and `helm` on the client system that you will use to install our Helm charts

::: info
Ensure you use use the latest Helm chart version.
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

Fix the duplicated word.

“use use” should be “use”.

🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` at line
20, Fix the duplicated word in the sentence shown in the diff: replace "Ensure
you use use the latest Helm chart version." with "Ensure you use the latest Helm
chart version." so the duplicated "use" is removed; locate the exact phrase
"Ensure you use use the latest Helm chart version." in the Kubernetes install
docs and update it to the corrected wording.

Comment on lines 110 to 116
#### License

| Setting | Default | Required | Description |
|---|:---:|:---:|---|
| planeVersion | v2.2.1 | Yes | Specifies the version of Plane to be deployed. Copy this from `prime.plane.so.` |
| license.licenseDomain | 'plane.example.com' | Yes | The fully-qualified domain name (FQDN) in the format `sudomain.domain.tld` or `domain.tld` that the license is bound to. It is also attached to your `ingress` host to access Plane. |

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

Heading level jumps from H2 to H4.

Use ### for “License” to keep the hierarchy consistent.

Suggested fix
-#### License
+### License
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 110-110: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)

🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` around
lines 110 - 116, The "License" section uses an H4 heading (#### License) which
causes a heading-level jump; change it to an H3 (### License) so it follows the
previous H2/H3 hierarchy consistently, and ensure the surrounding heading levels
remain sequential (adjust any neighboring headings if needed) so the table under
the "License" heading stays nested correctly.

Comment on lines 138 to 143
| services.postgres.assign_cluster_ip | false | | This key allows you to set the node selector for the stateful deployment of postgres. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster.|
| services.postgres.nodeSelector | {} | | Set it to `true` if you want to assign `ClusterIP` to the service |
| services.postgres.tolerations | [] | | This key allows you to set the tolerations for the stateful deployment of postgres. This is useful when you want to run the deployment on nodes with specific taints in your Kubernetes cluster.|
| services.postgres.affinity | {} | | This key allows you to set the affinity rules for the stateful deployment of postgres. This is useful when you want to control how pods are scheduled on nodes in your Kubernetes cluster. |
| services.postgres.labels | {} | | Set it to `true` if you want to assign `ClusterIP` to the service |
| services.postgres.nodeSelector | {} | | This key allows you to set custom labels for the stateful deployment of postgres. This is useful for organizing and selecting resources in your Kubernetes cluster.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cd /tmp && find . -name "kubernetes.md" -type f 2>/dev/null | head -5

Repository: makeplane/developer-docs

Length of output: 50


🏁 Script executed:

git ls-files | grep -i kubernetes | head -20

Repository: makeplane/developer-docs

Length of output: 279


🏁 Script executed:

git ls-files | grep -E "(values|helm)" | head -20

Repository: makeplane/developer-docs

Length of output: 301


🏁 Script executed:

cat -n docs/self-hosting/methods/install-methods-commercial/kubernetes.md | sed -n '130,150p'

Repository: makeplane/developer-docs

Length of output: 3624


🏁 Script executed:

# Search for any Helm values files that might contain the correct postgres configuration
find . -name "values.yaml" -o -name "values*.yaml" | grep -v node_modules | head -20

Repository: makeplane/developer-docs

Length of output: 50


Fix duplicate services.postgres.nodeSelector key and mismatched descriptions in postgres configuration table.

Lines 138–143 contain a duplicated services.postgres.nodeSelector key (lines 139 and 143) and the descriptions for assign_cluster_ip, nodeSelector, and labels are incorrectly swapped. This will mislead operators configuring the Helm chart.

Suggested fix
-| services.postgres.assign_cluster_ip | false |  | This key allows you to set the node selector for the stateful deployment of postgres. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster.|
-| services.postgres.nodeSelector | {} |  | Set it to `true` if you want to assign `ClusterIP` to the service |
+| services.postgres.assign_cluster_ip | false |  | Set it to `true` if you want to assign `ClusterIP` to the service |
+| services.postgres.nodeSelector | {} |  | This key allows you to set the node selector for the stateful deployment of postgres. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
 ...
-| services.postgres.labels | {} |  | Set it to `true` if you want to assign `ClusterIP` to the service |
-| services.postgres.nodeSelector | {} |  | This key allows you to set custom labels for the stateful deployment of postgres. This is useful for organizing and selecting resources in your Kubernetes cluster.
+| services.postgres.labels | {} |  | This key allows you to set custom labels for the stateful deployment of postgres. This is useful for organizing and selecting resources in your Kubernetes cluster. |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 143-143: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe

(MD055, table-pipe-style)

🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` around
lines 138 - 143, The table has a duplicated services.postgres.nodeSelector row
and several swapped/mismatched descriptions; remove the duplicate nodeSelector
entry and correct the descriptions so: services.postgres.assign_cluster_ip ->
"Set it to `true` if you want to assign `ClusterIP` to the service",
services.postgres.nodeSelector -> "This key allows you to set the node selector
for the stateful deployment of postgres. Useful to run the deployment on
specific nodes", services.postgres.labels -> "This key allows you to set custom
labels for the stateful deployment of postgres. Useful for organizing and
selecting resources", and keep services.postgres.tolerations and
services.postgres.affinity as their current descriptions.

| services.redis.servicePort | 6379 | | This key sets the default port number to be used while setting up stateful deployment of `redis`. |
| services.redis.volumeSize | 500Mi | | While setting up the stateful deployment, while creating the persistant volume, volume allocation size need to be provided. This key helps you set the volume allocation size. Unit of this value must be in Mi (megabyte) or Gi (gigabyte) |
| services.redis.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service |
| services.redis.nodeSelector | 0 | | This key allows you to set the node selector for the stateful deployment of redis. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
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

🧩 Analysis chain

🏁 Script executed:

find . -name "values.yaml" -o -name "values.yml" | head -20

Repository: makeplane/developer-docs

Length of output: 50


🏁 Script executed:

rg "services\.redis" . --context 5

Repository: makeplane/developer-docs

Length of output: 10427


🏁 Script executed:

rg -i "helm|chart|github\.com|plane" docs/self-hosting/methods/install-methods-commercial/kubernetes.md -B 5 -A 5

Repository: makeplane/developer-docs

Length of output: 42814


Fix services.redis.nodeSelector default from 0 to {}.

The value is listed as 0 but should be {} to match all other nodeSelector fields in the configuration table and align with Kubernetes conventions (nodeSelector is a map type, not an integer).

Suggested fix
-| services.redis.nodeSelector | 0 |  | This key allows you to set the node selector for the stateful deployment of redis. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
+| services.redis.nodeSelector | {} |  | This key allows you to set the node selector for the stateful deployment of redis. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
📝 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
| services.redis.nodeSelector | 0 | | This key allows you to set the node selector for the stateful deployment of redis. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
| services.redis.nodeSelector | {} | | This key allows you to set the node selector for the stateful deployment of redis. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` at line
157, The table entry for services.redis.nodeSelector currently shows a default
of "0" but should be an empty map "{}"; update the documentation row for
services.redis.nodeSelector to use {} as the default value (matching other
nodeSelector fields and the Kubernetes map type) and verify consistency across
the same configuration table so all nodeSelector defaults use {} rather than
numeric zeros.

| services.email_service.affinity | {} | | This key allows you to set the affinity rules for the deployment of `email_service`. This is useful when you want to control how pods are scheduled on nodes in your Kubernetes cluster. |
| services.email_service.labels | {} | | Custom labels to add to the email service deployment |
| services.email_service.annotations | {} | | Custom annotations to add to the email service deployment |
| env.email_service_envs.smtp_domain | | Yes | The SMTP Domain to be used with email service | | | |
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

Fix table column count in the email service row.

There are extra cells at the end of the row; keep it to 4 columns.

Suggested fix
-| env.email_service_envs.smtp_domain | | Yes | The SMTP Domain to be used with email service |                                         |          |                                                          |
+| env.email_service_envs.smtp_domain |  | Yes | The SMTP Domain to be used with email service |
📝 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
| env.email_service_envs.smtp_domain | | Yes | The SMTP Domain to be used with email service | | | |
| env.email_service_envs.smtp_domain | | Yes | The SMTP Domain to be used with email service |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 410-410: Table column count
Expected: 4; Actual: 7; Too many cells, extra data will be missing

(MD056, table-column-count)

🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` at line
410, The table row for env.email_service_envs.smtp_domain has too many cells
causing an extra empty columns; edit the Markdown table row containing
"env.email_service_envs.smtp_domain" so it has exactly 4 pipe-separated columns
(e.g., Parameter | Type | Required | Description) by removing the trailing empty
pipe cells and ensuring the description ("The SMTP Domain to be used with email
service") occupies the fourth column; verify the header matches 4 columns and
adjust any neighboring rows if needed.

| plane.example.com | `/auth/*` | `<http://plane-app-api.plane:8000>` |
| plane.example.com | `/uploads/*` | `<http://plane-app-minio.plane:9000>` |
| plane-minio.example.com | `/` | `<http://plane-app-minio.plane:9090>` |
| plane-mq.example.com | `/` | `<http://plane-app-rabbitmq.plane:15672>` | (Optional) if using local setup, this will enable management console access |
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

Ingress routes table has an extra column.

Move the optional note into the Service column or a separate paragraph.

Suggested fix
-| plane-mq.example.com | `/` | `<http://plane-app-rabbitmq.plane:15672>` | (Optional) if using local setup, this will enable management console access |
+| plane-mq.example.com | `/` | `<http://plane-app-rabbitmq.plane:15672>` (Optional: enables management console access for local setup) |
📝 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
| plane-mq.example.com | `/` | `<http://plane-app-rabbitmq.plane:15672>` | (Optional) if using local setup, this will enable management console access |
| plane-mq.example.com | `/` | `<http://plane-app-rabbitmq.plane:15672>` (Optional: enables management console access for local setup) |
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 567-567: Table column count
Expected: 3; Actual: 4; Too many cells, extra data will be missing

(MD056, table-column-count)

🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/kubernetes.md` at line
567, The ingress table row for "plane-mq.example.com | `/` |
`<http://plane-app-rabbitmq.plane:15672>` | (Optional) if using local setup,
this will enable management console access" has an extra column; remove the
fourth column and either append the optional note to the Service column (the
cell containing `<http://plane-app-rabbitmq.plane:15672>`) or place that
optional sentence in a separate paragraph immediately after the table so the
table only includes Host, Path, and Service columns and the note remains
visible.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@docs/self-hosting/methods/install-methods-commercial/docker-compose.md`:
- Line 19: Replace the confusing sentence "Plane Pro and Plane Business are
enabled on this edition, so the Free plan on this edition is easier to trial our
paid plans from." with a clearer phrasing; for example use either "This edition
includes Plane Pro and Plane Business, making it easy to upgrade from the Free
plan to trial our paid plans." or "Plane Pro and Plane Business are available on
this edition, allowing you to easily trial paid plans starting from the Free
plan." Locate the sentence in the
docs/self-hosting/methods/install-methods-commercial/docker-compose.md content
and swap the text accordingly, keeping tone and tense consistent with
surrounding sentences.


## Install Plane

Plane Pro and Plane Business are enabled on this edition, so the Free plan on this edition is easier to trial our paid plans from.
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

Clarify the sentence about plan trialing.

The sentence is confusing and unclear. The phrasing "so the Free plan on this edition is easier to trial our paid plans from" is awkward and the logic is unclear.

Consider rephrasing for clarity, for example:

  • "This edition includes Plane Pro and Plane Business, making it easy to upgrade from the Free plan to trial our paid plans."
  • "Plane Pro and Plane Business are available on this edition, allowing you to easily trial paid plans starting from the Free plan."
🤖 Prompt for AI Agents
In `@docs/self-hosting/methods/install-methods-commercial/docker-compose.md` at
line 19, Replace the confusing sentence "Plane Pro and Plane Business are
enabled on this edition, so the Free plan on this edition is easier to trial our
paid plans from." with a clearer phrasing; for example use either "This edition
includes Plane Pro and Plane Business, making it easy to upgrade from the Free
plan to trial our paid plans." or "Plane Pro and Plane Business are available on
this edition, allowing you to easily trial paid plans starting from the Free
plan." Locate the sentence in the
docs/self-hosting/methods/install-methods-commercial/docker-compose.md content
and swap the text accordingly, keeping tone and tense consistent with
surrounding sentences.

@sriramveeraghanta sriramveeraghanta merged commit e07fda7 into master Feb 5, 2026
3 checks passed
@sriramveeraghanta sriramveeraghanta deleted the prime-portal-pages branch February 5, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants