Skip to content

Commit b134ee9

Browse files
committed
Add Community env vars
1 parent 829a471 commit b134ee9

File tree

2 files changed

+149
-42
lines changed

2 files changed

+149
-42
lines changed

mint.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@
9191
},
9292
"self-hosting/govern/communication",
9393
"self-hosting/govern/database-and-storage",
94-
"self-hosting/govern/env-variables",
9594
"self-hosting/govern/custom-domain",
9695
"self-hosting/govern/private-bucket",
9796
{
@@ -104,6 +103,7 @@
104103
},
105104
"self-hosting/govern/external-secrets",
106105
"self-hosting/govern/reverse-proxy",
106+
"self-hosting/govern/env-variables",
107107
"self-hosting/telemetry"
108108
]
109109
},

self-hosting/govern/env-variables.mdx

Lines changed: 148 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,46 @@ This is where you'll make all configuration changes. Remember to restart the ins
2020

2121
| Variable | Description | Default Value |
2222
|----------|-------------|---------------|
23+
| **INSTALL_DIR** | Directory where Plane is installed. | `/opt/plane` |
2324
| **DOMAIN_NAME** | Primary domain name for your Plane instance. This determines how users will access your installation. | `localhost` |
2425
| **APP_RELEASE_VERSION** | The version of Plane Commercial Edition you're running. This helps with troubleshooting and ensures compatibility. | *Current release version* |
2526
| **WEB_URL** | The complete base URL for the web application including protocol (e.g., `https://plane.example.com`).|`http://localhost`|
2627
| **API_BASE_URL** | The base URL for API services. In most setups, this will be the same as your WEB_URL with `/api` appended. |`http://api:8000`|
2728
| **CORS_ALLOWED_ORIGINS** | Comma-separated list of origins allowed to make cross-origin requests to your API. Usually, this should include your WEB_URL. |`http://localhost`|
2829
| **DEBUG** | Toggles debug mode for more verbose logging and debugging information.| `0` (disabled) |
2930

31+
### Scaling and performance
32+
33+
| Variable | Description | Default Value |
34+
|----------|-------------|---------------|
35+
| **WEB_REPLICAS** | Number of web server replicas for load balancing. | `1` |
36+
| **SPACE_REPLICAS** | Number of space service replicas for workspaces. | `1` |
37+
| **ADMIN_REPLICAS** | Number of admin service replicas. | `1` |
38+
| **API_REPLICAS** | Number of API service replicas. | `1` |
39+
| **WORKER_REPLICAS** | Number of worker service replicas for background tasks. | `1` |
40+
| **BEAT_WORKER_REPLICAS** | Number of beat worker replicas for scheduled tasks. | `1` |
41+
| **LIVE_REPLICAS** | Number of live service replicas for real-time updates. | `1` |
42+
| **GUNICORN_WORKERS** | Number of Gunicorn workers for handling web requests. Increase for better performance on high-traffic instances. | `2` |
43+
44+
### Networking and security
45+
46+
| Variable | Description | Default Value |
47+
|----------|-------------|---------------|
48+
| **LISTEN_HTTP_PORT** | Port for HTTP traffic. | `80` |
49+
| **LISTEN_HTTPS_PORT** | Port for HTTPS traffic. | `443` |
50+
| **APP_PROTOCOL** | Protocol to be used, either `http` or `https`. | `http` |
51+
| **TRUSTED_PROXIES** | CIDR notation of trusted proxies for request forwarding. Important when behind load balancers or reverse proxies. | `0.0.0.0/0` |
52+
| **SSL_VERIFY** | Whether to verify SSL certificates for outgoing connections. Set to `0` only in development environments. | `1` |
53+
54+
### SSL and certificates
55+
56+
| Variable | Description | Default Value |
57+
|----------|-------------|---------------|
58+
| **CERT_EMAIL** | Email used for SSL certificate registration with Let's Encrypt or other ACME providers. |`[email protected]`|
59+
| **CERT_ACME_CA** | ACME Certificate Authority URL for SSL certificate issuance. | `https://acme-v02.api.letsencrypt.org/directory` |
60+
| **CERT_ACME_DNS** | DNS provider configuration for SSL certificate domain validation. Format varies by provider. | |
61+
| **SITE_ADDRES** | The domain name and port required by Caddy for serving your Plane instance. This determines how Caddy will handle incoming requests. | `localhost:80` |
62+
3063
### Database settings
3164

3265
| Variable | Description | Default Value |
@@ -59,16 +92,14 @@ This is where you'll make all configuration changes. Remember to restart the ins
5992
| **RABBITMQ_DEFAULT_VHOST** | Virtual host for RabbitMQ, providing logical separation of resources. | `plane` |
6093
| **AMQP_URL** | Full connection string for RabbitMQ. Format: `amqp://username:password@host:port/vhost` | |
6194

62-
### Security and API settings
63-
95+
### Authentication and security
6496
| Variable | Description | Default Value |
6597
|----------|-------------|---------------|
6698
| **SECRET_KEY** | Secret key used for various cryptographic operations, including JWT token signing. | |
67-
| **API_KEY_RATE_LIMIT** | Rate limit for API requests to prevent abuse. Format: `number/timeunit` | `60/minute` |
68-
| **SENTRY_DSN** | Data Source Name for Sentry error tracking integration. Leave empty if not using Sentry. ||
69-
| **SENTRY_ENVIRONMENT** | Environment identifier for Sentry logging, helping you distinguish between different deployments. | `production` |
99+
| **MACHINE_SIGNATURE** | Unique identifier for your instance, used for licensing and authentication.| |
100+
| **SILO_HMAC_SECRET_KEY** | Secret key for Silo authentication and secure communication. | |
70101

71-
### Storage and file uploads
102+
### File Storage (MinIO / S3)
72103

73104
| Variable | Description | Default Value |
74105
|----------|-------------|---------------|
@@ -78,61 +109,137 @@ This is where you'll make all configuration changes. Remember to restart the ins
78109
| **AWS_SECRET_ACCESS_KEY** | Secret key for MinIO or AWS S3 authentication. | |
79110
| **AWS_S3_ENDPOINT_URL** | Custom endpoint URL for MinIO or S3-compatible storage. | `http://plane-minio:9000`|
80111
| **AWS_S3_BUCKET_NAME** | S3 bucket name for file storage. | `uploads` |
112+
| **MINIO_ROOT_USER** | Username for MinIO authentication. This is effectively your MinIO admin account. | `access-key` |
113+
| **MINIO_ROOT_PASSWORD** | Password for MinIO root user authentication. Keep this secure as it provides full access to your storage. | `secret-key` |
114+
| **BUCKET_NAME** | S3 bucket name where all file uploads will be stored. This bucket will be automatically created if it doesn't exist. | `uploads` |
81115
| **FILE_SIZE_LIMIT** | Maximum file upload size in bytes. | `5242880` (5MB) |
82116
| **MINIO_ENDPOINT_SSL** | Force HTTPS for MinIO when dealing with SSL termination. Set to `1` to enable. | `0` |
83117

84-
### Workers and Performance
118+
### GitHub integration
85119

86120
| Variable | Description | Default Value |
87121
|----------|-------------|---------------|
88-
| **GUNICORN_WORKERS** | Number of Gunicorn workers for handling web requests. Increase for better performance on high-traffic instances. | `2` |
89-
| **WEB_REPLICAS** | Number of web server replicas for load balancing. | `1` |
90-
| **SPACE_REPLICAS** | Number of space service replicas for workspaces. | `1` |
91-
| **ADMIN_REPLICAS** | Number of admin service replicas. | `1` |
92-
| **API_REPLICAS** | Number of API service replicas. | `1` |
93-
| **WORKER_REPLICAS** | Number of worker service replicas for background tasks. | `1` |
94-
| **BEAT_WORKER_REPLICAS** | Number of beat worker replicas for scheduled tasks. | `1` |
95-
| **LIVE_REPLICAS** | Number of live service replicas for real-time updates. | `1` |
122+
| **GITHUB_CLIENT_ID** | OAuth client ID for GitHub integration. | |
123+
| **GITHUB_CLIENT_SECRET** | OAuth client secret for GitHub integration. | |
124+
| **GITHUB_APP_NAME** | GitHub App name for enhanced GitHub integration. | |
125+
| **GITHUB_APP_ID** | GitHub App ID for enhanced GitHub integration. | |
126+
| **GITHUB_PRIVATE_KEY** | Private key for GitHub App authentication. | |
96127

97-
### Installation and system settings
128+
### Slack integration
98129

99130
| Variable | Description | Default Value |
100131
|----------|-------------|---------------|
101-
| **INSTALL_DIR** | Directory where Plane is installed. | `/opt/plane` |
102-
| **MACHINE_SIGNATURE** | Unique identifier for your instance, used for licensing and authentication.| |
132+
| **SLACK_CLIENT_ID** | OAuth client ID for Slack integration. | |
133+
| **SLACK_CLIENT_SECRET** | OAuth client secret for Slack integration. | |
103134

104-
### Networking and SSL
135+
### GitLab integration
105136

106137
| Variable | Description | Default Value |
107138
|----------|-------------|---------------|
108-
| **LISTEN_HTTP_PORT** | Port for HTTP traffic. | `80` |
109-
| **LISTEN_HTTPS_PORT** | Port for HTTPS traffic. | `443` |
110-
| **APP_PROTOCOL** | Protocol to be used, either `http` or `https`. | `http` |
111-
| **TRUSTED_PROXIES** | CIDR notation of trusted proxies for request forwarding. Important when behind load balancers or reverse proxies. | `0.0.0.0/0` |
112-
| **CERT_EMAIL** | Email used for SSL certificate registration with Let's Encrypt or other ACME providers. |`[email protected]`|
113-
| **CERT_ACME_CA** | ACME Certificate Authority URL for SSL certificate issuance. | `https://acme-v02.api.letsencrypt.org/directory` |
114-
| **CERT_ACME_DNS** | DNS provider configuration for SSL certificate domain validation. Format varies by provider. | |
115-
| **SSL_VERIFY** | Whether to verify SSL certificates for outgoing connections. Set to `0` only in development environments. | `1` |
139+
| **GITLAB_CLIENT_ID** | OAuth client ID for GitLab integration. | |
140+
| **GITLAB_CLIENT_SECRET** | OAuth client secret for GitLab integration. | |
116141

117-
### Monitoring and feature flags
142+
### API settings
118143

119144
| Variable | Description | Default Value |
120145
|----------|-------------|---------------|
121-
| **FEATURE_FLAG_SERVER_BASE_URL** | Base URL for feature flag service, enabling granular control over feature availability. | `http://monitor:8080`|
122-
| **PAYMENT_SERVER_BASE_URL** | Base URL for payment service, handling licensing and subscription management. |`http://monitor:8080`|
146+
| **API_KEY_RATE_LIMIT** | Rate limit for API requests to prevent abuse. Format: `number/timeunit` | `60/minute` |
147+
123148

124-
### Silo and Integrations
149+
<Accordion title="Community Edition">
150+
151+
This guide provides a comprehensive overview of all environment variables available for configuring your self-hosted Plane Community Edition. Use these variables to customize your instance to fit your deployment needs.
152+
153+
## Where to find the environment file
154+
155+
The environment configuration file is located at:
156+
```bash
157+
plane-selfhost/plane-app/plane.env
158+
```
159+
160+
## Environment Variables
161+
162+
### General settings
125163

126164
| Variable | Description | Default Value |
127165
|----------|-------------|---------------|
128-
| **SILO_HMAC_SECRET_KEY** | Secret key for Silo authentication and secure communication. | |
129-
| **GITHUB_CLIENT_ID** | OAuth client ID for GitHub integration. | |
130-
| **GITHUB_CLIENT_SECRET** | OAuth client secret for GitHub integration. | |
131-
| **GITHUB_APP_NAME** | GitHub App name for enhanced GitHub integration. | |
132-
| **GITHUB_APP_ID** | GitHub App ID for enhanced GitHub integration. | |
133-
| **GITHUB_PRIVATE_KEY** | Private key for GitHub App authentication. | |
134-
| **SLACK_CLIENT_ID** | OAuth client ID for Slack integration. | |
135-
| **SLACK_CLIENT_SECRET** | OAuth client secret for Slack integration. | |
136-
| **GITLAB_CLIENT_ID** | OAuth client ID for GitLab integration. | |
137-
| **GITLAB_CLIENT_SECRET** | OAuth client secret for GitLab integration. | |
166+
| **APP_DOMAIN** | Domain name for your Plane instance. This determines how users will access your installation. | `localhost` |
167+
| **APP_RELEASE** | Release version of Plane. Helps with compatibility and troubleshooting. | `stable` |
168+
| **WEB_URL** | The complete base URL for the web application including protocol. Essential for email links and integrations. | `http://${APP_DOMAIN}` |
169+
| **API_BASE_URL** | The base URL for API services. Typically your WEB_URL with `/api` appended. | `http://api:8000` |
170+
| **CORS_ALLOWED_ORIGINS** | Comma-separated list of origins allowed to make cross-origin requests to your API. | `http://${APP_DOMAIN}` |
171+
| **DEBUG** | Toggles debug mode for verbose logging. Set to `1` to enable, `0` to disable. Not recommended in production as it may expose sensitive information. | `0` |
172+
| **NGINX_PORT** | Port for HTTP traffic. The primary port your users will connect to. | `80` |
173+
174+
### Scaling and performance
175+
176+
| Variable | Description | Default Value |
177+
|----------|-------------|---------------|
178+
| **WEB_REPLICAS** | Number of web server replicas for serving the frontend UI. Increase for better load distribution. | `1` |
179+
| **SPACE_REPLICAS** | Number of space service replicas handling workspace-related operations. | `1` |
180+
| **ADMIN_REPLICAS** | Number of admin service replicas for administrative functions. | `1` |
181+
| **API_REPLICAS** | Number of API service replicas processing API requests. | `1` |
182+
| **WORKER_REPLICAS** | Number of worker service replicas handling background tasks. | `1` |
183+
| **BEAT_WORKER_REPLICAS** | Number of beat worker replicas for scheduled/periodic tasks. | `1` |
184+
| **LIVE_REPLICAS** | Number of live service replicas for real-time updates and WebSocket connections. | `1` |
185+
| **GUNICORN_WORKERS** | Number of Gunicorn workers per API instance. Increase for better request handling capacity. | `1` |
186+
187+
### API settings
188+
189+
| Variable | Description | Default Value |
190+
|----------|-------------|---------------|
191+
| **API_KEY_RATE_LIMIT** | Rate limit for API requests to prevent abuse. Format: `number/timeunit` | `60/minute` |
192+
193+
### Database settings
194+
195+
| Variable | Description | Default Value |
196+
|----------|-------------|---------------|
197+
| **PGHOST** | Hostname or IP address of your PostgreSQL server. | `plane-db` |
198+
| **PGDATABASE** | Name of the PostgreSQL database Plane will use. | `plane` |
199+
| **POSTGRES_USER** | Username for PostgreSQL authentication. | `plane` |
200+
| **POSTGRES_PASSWORD** | Password for PostgreSQL authentication. Use a strong, unique password. | `plane` |
201+
| **POSTGRES_DB** | Same as PGDATABASE - the name of the PostgreSQL database. | `plane` |
202+
| **POSTGRES_PORT** | TCP port your PostgreSQL server is listening on. | `5432` |
203+
| **PGDATA** | Directory path where PostgreSQL data is stored. Only relevant if you're managing PostgreSQL directly. | `/var/lib/postgresql/data` |
204+
| **DATABASE_URL** | Full connection string for PostgreSQL. If provided, overrides individual settings. Format: `postgresql://username:password@host:port/dbname` | |
205+
206+
### Redis settings
207+
208+
| Variable | Description | Default Value |
209+
|----------|-------------|---------------|
210+
| **REDIS_HOST** | Hostname or IP address of your Redis server. | `plane-redis` |
211+
| **REDIS_PORT** | TCP port your Redis server is listening on. | `6379` |
212+
| **REDIS_URL** | Full connection string for Redis. Format: `redis://username:password@host:port` | |
213+
214+
### RabbitMQ settings
215+
216+
| Variable | Description | Default Value |
217+
|----------|-------------|---------------|
218+
| **RABBITMQ_HOST** | Hostname or IP address of your RabbitMQ server. | `plane-mq` |
219+
| **RABBITMQ_PORT** | TCP port your RabbitMQ server is listening on. | `5672` |
220+
| **RABBITMQ_USER** | Username for RabbitMQ authentication. | `plane` |
221+
| **RABBITMQ_PASSWORD** | Password for RabbitMQ authentication. Use a strong, unique password. | `plane` |
222+
| **RABBITMQ_VHOST** | Virtual host for RabbitMQ, providing logical separation of resources. | `plane` |
223+
| **AMQP_URL** | Full connection string for RabbitMQ. If not provided, it's constructed from individual settings. | `amqp://plane:plane@plane-mq:5672/plane` |
224+
225+
### File Storage (MinIO / S3)
226+
227+
| Variable | Description | Default Value |
228+
|----------|-------------|---------------|
229+
| **USE_MINIO** | Whether to use MinIO for object storage. Set to `1` to enable, `0` to use other configured storage. | `1` |
230+
| **MINIO_ENDPOINT_SSL** | Force HTTPS for MinIO when handling SSL termination. Set to `1` to enable. | `0` |
231+
| **AWS_REGION** | AWS region for S3 storage services. Applies when using S3 or MinIO. | *Empty* |
232+
| **AWS_ACCESS_KEY_ID** | Access key for MinIO or AWS S3 authentication. | `access-key` |
233+
| **AWS_SECRET_ACCESS_KEY** | Secret key for MinIO or AWS S3 authentication. | `secret-key` |
234+
| **AWS_S3_ENDPOINT_URL** | Endpoint URL for MinIO or S3-compatible storage. | *Based on APP_DOMAIN* |
235+
| **AWS_S3_BUCKET_NAME** | S3 bucket name for file storage. All uploads will be stored in this bucket. | `uploads` |
236+
| **FILE_SIZE_LIMIT** | Maximum file upload size in bytes. | `5242880` (5MB) |
237+
238+
239+
### Security settings
240+
241+
| Variable | Description | Default Value |
242+
|----------|-------------|---------------|
243+
| **SECRET_KEY** | Secret key used for cryptographic operations like session handling and token generation. Should be a long, random string. | |
138244

245+
</Accordion>

0 commit comments

Comments
 (0)