Skip to content
14 changes: 11 additions & 3 deletions docs/self-hosting/govern/environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ This is where you'll make all configuration changes. Remember to restart the ins
| **POSTGRES_PORT** | TCP port your PostgreSQL server is listening on. | 5432 |
| **PGDATA** | Directory path where PostgreSQL data is stored. Only relevant if you're managing PostgreSQL within the same container/system. | /var/lib/postgresql/data |
| **DATABASE_URL** | Full connection string for PostgreSQL. If provided, this takes precedence over individual connection parameters. Format: `postgresql://username:password@host:port/dbname` | |
| **FOLLOWER_POSTGRES_URI** | Connection string for a PostgreSQL read replica. Used for read-heavy operations to reduce load on the primary database. | Same as DATABASE_URL |
| **PLANE_PI_DATABASE_URL** | Connection string for the Plane Intelligence database. A separate database used by the PI service. | postgresql://plane:plane@plane-db/plane_pi |

### Redis settings

Expand Down Expand Up @@ -171,7 +169,6 @@ This is where you'll make all configuration changes. Remember to restart the ins
| **OPENSEARCH_USERNAME** | Authentication username | admin |
| **OPENSEARCH_PASSWORD** | Authentication password | your-secure-password |
| **OPENSEARCH_INDEX_PREFIX** | Prefix for all index names (useful for multi-tenant setups) | (empty) |
| **OPENSEARCH_ML_MODEL_ID** | OpenSearch ML model ID used for embedding-based search features | (empty) |

### Plane AI

Expand All @@ -186,6 +183,17 @@ To start Plane AI services, set each replica count to `1`:
| **PI_WORKER_REPLICAS** | Plane AI Worker replica count | Yes |
| **PI_MIGRATOR_REPLICAS** | Plane AI Migrator replica count | Yes |

#### Database settings

::: info Plane AI database
Plane AI uses a separate PostgreSQL database. Create a new database (e.g. `plane_pi`) on your PostgreSQL server, then set **PLANE_PI_DATABASE_URL** to its connection string. Example: `postgresql://user:password@host:5432/plane_pi`
:::

| Variable | Description | Default Value |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| **PLANE_PI_DATABASE_URL** | Connection string for the Plane AI database. A separate database used by the PI service. | postgresql://plane:plane@plane-db/plane_pi |
| **FOLLOWER_POSTGRES_URI** | Connection string for a Plane PostgreSQL DB read replica. Used for read-heavy operations to reduce load on the primary database. | Same as DATABASE_URL |

#### LLM provider API keys

Plane AI supports multiple LLM providers. Configure one or more by adding their API keys.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,10 @@ airgapped:

#### Plane AI deployment

::: info Plane AI database
Plane AI uses a separate PostgreSQL database. Create a new database (e.g. `plane_pi`) and connect it using `env.pg_pi_db_remote_url` in values, or **PLANE_PI_DATABASE_URL** when using `pi_api_env_existingSecret`.
:::

| Setting | Default | Required | Description |
| -------------------------------- | :----------------------------------------------: | :------: | ---------------------------------------------------------------------------------------------------------------------------------------- |
| services.pi.enabled | false | No | Set to `true` to enable the Plane AI service and its API, worker, beat, and migrator workloads. |
Expand All @@ -455,6 +459,7 @@ airgapped:
| services.pi.annotations | {} | | Custom annotations to add to the Plane AI API deployment. |
| env.pg_pi_db_name | plane_pi | | PostgreSQL database name used by Plane AI when `postgres.local_setup=true`. |
| env.pg_pi_db_remote_url | "" | | PostgreSQL connection URL for Plane AI when using a remote database. Required when `postgres.local_setup=false` and Plane AI is enabled. |
| env.pi_envs.follower_postgres_uri | Same as Plane DATABASE_URL | No | Connection string for a Plane PostgreSQL DB read replica. Used for read-heavy operations to reduce load on the primary database. |
| env.pi_envs.internal_secret | tyfvfqvBJAgpm9bzvf3r4urJer0Ehfdubk | | Internal secret used by Plane AI for OAuth and internal APIs. |
| env.pi_envs.plane_api_host | "" | | Override for the Plane API host URL used by Plane AI. Defaults to the license domain. |
| env.pi_envs.cors_allowed_origins | "" | | CORS allowed origins for Plane AI API. Defaults to the license domain. |
Expand Down Expand Up @@ -659,6 +664,7 @@ To configure the external secrets for your application, you need to define speci
| | GITLAB_CLIENT_ID | Required if `services.silo.connectors.gitlab.enabled` is true | GitLab client ID | your_gitlab_client_id |
| | GITLAB_CLIENT_SECRET | Required if `services.silo.connectors.gitlab.enabled` is true | GitLab client secret key | your_gitlab_client_secret_key |
| pi_api_env_existingSecret | PLANE_PI_DATABASE_URL | Required if `services.pi.enabled=true` | PostgreSQL connection URL for Plane AI database | **k8s service example**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local/plane_pi` <br> <br>**external**: `postgresql://username:password@your-db-host:5432/plane_pi` |
| | FOLLOWER_POSTGRES_URI | No | Connection string for a PostgreSQL read replica | Same as DATABASE_URL. Used for read-heavy operations to reduce load on the primary database. **k8s**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local:5432/plane` |
| | AMQP_URL | Required if `services.pi.enabled=true` | RabbitMQ connection URL | **k8s service example**: `amqp://plane:plane@plane-rabbitmq.plane-ns.svc.cluster.local:5672/` <br> <br> **external**: `amqp://username:password@your-rabbitmq-host:5672/` |
| | AES_SECRET_KEY | Required if `services.pi.enabled=true` | AES secret key for Plane AI | dsOdt7YrvxsTIFJ37pOaEVvLxN8KGBCr (or your own value) |
| | OPENAI_API_KEY | required if `services.pi.ai_providers.openai.enabled` is true | OpenAI API key | your_openai_api_key |
Expand Down
6 changes: 6 additions & 0 deletions docs/self-hosting/methods/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,10 @@ airgapped:

#### Plane AI deployment

::: info Plane AI database
Plane AI uses a separate PostgreSQL database. Create a new database (e.g. `plane_pi`) and connect it using `env.pg_pi_db_remote_url` in values, or **PLANE_PI_DATABASE_URL** when using `pi_api_env_existingSecret`.
:::

| Setting | Default | Required | Description |
| -------------------------------- | :----------------------------------------------: | :------: | ---------------------------------------------------------------------------------------------------------------------------------------- |
| services.pi.enabled | false | No | Set to `true` to enable the Plane AI service and its API, worker, beat, and migrator workloads. |
Expand All @@ -453,6 +457,7 @@ airgapped:
| services.pi.annotations | {} | | Custom annotations to add to the Plane AI API deployment. |
| env.pg_pi_db_name | plane_pi | | PostgreSQL database name used by Plane AI when `postgres.local_setup=true`. |
| env.pg_pi_db_remote_url | "" | | PostgreSQL connection URL for Plane AI when using a remote database. Required when `postgres.local_setup=false` and Plane AI is enabled. |
| env.pi_envs.follower_postgres_uri | Same as Plane DATABASE_URL | No | Connection string for a Plane PostgreSQL DB read replica. Used for read-heavy operations to reduce load on the primary database. |
| env.pi_envs.internal_secret | tyfvfqvBJAgpm9bzvf3r4urJer0Ehfdubk | | Internal secret used by Plane AI for OAuth and internal APIs. |
| env.pi_envs.plane_api_host | "" | | Override for the Plane API host URL used by Plane AI. Defaults to the license domain. |
| env.pi_envs.cors_allowed_origins | "" | | CORS allowed origins for Plane AI API. Defaults to the license domain. |
Expand Down Expand Up @@ -657,6 +662,7 @@ To configure the external secrets for your application, you need to define speci
| | GITLAB_CLIENT_ID | Required if `services.silo.connectors.gitlab.enabled` is true | GitLab client ID | your_gitlab_client_id |
| | GITLAB_CLIENT_SECRET | Required if `services.silo.connectors.gitlab.enabled` is true | GitLab client secret key | your_gitlab_client_secret_key |
| pi_api_env_existingSecret | PLANE_PI_DATABASE_URL | Required if `services.pi.enabled=true` | PostgreSQL connection URL for Plane AI database | **k8s service example**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local/plane_pi` <br> <br>**external**: `postgresql://username:password@your-db-host:5432/plane_pi` |
| | FOLLOWER_POSTGRES_URI | No | Connection string for a PostgreSQL read replica | Same as DATABASE_URL. Used for read-heavy operations to reduce load on the primary database. **k8s**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local:5432/plane` |
| | AMQP_URL | Required if `services.pi.enabled=true` | RabbitMQ connection URL | **k8s service example**: `amqp://plane:plane@plane-rabbitmq.plane-ns.svc.cluster.local:5672/` <br> <br> **external**: `amqp://username:password@your-rabbitmq-host:5672/` |
| | AES_SECRET_KEY | Required if `services.pi.enabled=true` | AES secret key for Plane AI | dsOdt7YrvxsTIFJ37pOaEVvLxN8KGBCr (or your own value) |
| | OPENAI_API_KEY | required if `services.pi.ai_providers.openai.enabled` is true | OpenAI API key | your_openai_api_key |
Expand Down
Loading