> ## Documentation Index
> Fetch the complete documentation index at: https://developers.plane.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment variables reference guide

This guide provides a comprehensive overview of all environment variables used in the Commercial Edition. These variables allow you to customize your Plane instance to best fit your organization's needs.

## Where to find the .env file

The environment file for Plane Commercial Edition is located at:

```bash theme={null}
/opt/plane/plane.env
```

This is where you'll make all configuration changes. Remember to restart the instance after making changes to ensure they take effect.

## Environment variables

### General settings

| Variable                   | Description                                                                                                                    | Default Value             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
| **INSTALL\_DIR**           | Directory where Plane is installed.                                                                                            | `/opt/plane`              |
| **DOMAIN\_NAME**           | Primary domain name for your Plane instance. This determines how users will access your installation.                          | `localhost`               |
| **APP\_RELEASE\_VERSION**  | The version of Plane Commercial Edition you're running. This helps with troubleshooting and ensures compatibility.             | *Current release version* |
| **WEB\_URL**               | The complete base URL for the web application including protocol (e.g., `https://plane.example.com`).                          | `http://localhost`        |
| **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`        |
| **DEBUG**                  | Toggles debug mode for more verbose logging and debugging information.                                                         | `0` (disabled)            |

### Scaling and performance

| Variable                   | Description                                                                                                      | Default Value |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------- |
| **WEB\_REPLICAS**          | Number of web server replicas for load balancing.                                                                | `1`           |
| **SPACE\_REPLICAS**        | Number of space service replicas for workspaces.                                                                 | `1`           |
| **ADMIN\_REPLICAS**        | Number of admin service replicas.                                                                                | `1`           |
| **API\_REPLICAS**          | Number of API service replicas.                                                                                  | `1`           |
| **WORKER\_REPLICAS**       | Number of worker service replicas for background tasks.                                                          | `1`           |
| **BEAT\_WORKER\_REPLICAS** | Number of beat worker replicas for scheduled tasks.                                                              | `1`           |
| **LIVE\_REPLICAS**         | Number of live service replicas for real-time updates.                                                           | `1`           |
| **GUNICORN\_WORKERS**      | Number of Gunicorn workers for handling web requests. Increase for better performance on high-traffic instances. | `2`           |

### Networking and security

| Variable                | Description                                                                                                       | Default Value |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------- |
| **LISTEN\_HTTP\_PORT**  | Port for HTTP traffic.                                                                                            | `80`          |
| **LISTEN\_HTTPS\_PORT** | Port for HTTPS traffic.                                                                                           | `443`         |
| **APP\_PROTOCOL**       | Protocol to be used, either `http` or `https`.                                                                    | `http`        |
| **TRUSTED\_PROXIES**    | CIDR notation of trusted proxies for request forwarding. Important when behind load balancers or reverse proxies. | `0.0.0.0/0`   |
| **SSL\_VERIFY**         | Whether to verify SSL certificates for outgoing connections. Set to `0` only in development environments.         | `1`           |

### SSL and certificates

| Variable            | Description                                                                                                                          | Default Value                                    |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
| **CERT\_EMAIL**     | Email used for SSL certificate registration with Let's Encrypt or other ACME providers.                                              | `admin@example.com`                              |
| **CERT\_ACME\_CA**  | ACME Certificate Authority URL for SSL certificate issuance.                                                                         | `https://acme-v02.api.letsencrypt.org/directory` |
| **CERT\_ACME\_DNS** | DNS provider configuration for SSL certificate domain validation. Format varies by provider.                                         |                                                  |
| **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`                                   |

### Database settings

| Variable               | Description                                                                                                                                                                | Default Value              |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
| **PGHOST**             | Hostname or IP address of your PostgreSQL server.                                                                                                                          | `plane-db`                 |
| **PGDATABASE**         | Name of the PostgreSQL database Plane will use.                                                                                                                            | `plane`                    |
| **POSTGRES\_USER**     | Username for PostgreSQL authentication.                                                                                                                                    | `plane`                    |
| **POSTGRES\_PASSWORD** | Password for PostgreSQL authentication. **Critical:** Use a strong, unique password here.                                                                                  | `plane`                    |
| **POSTGRES\_DB**       | Same as PGDATABASE - the name of the PostgreSQL database.                                                                                                                  | `plane`                    |
| **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` |                            |

### Redis settings

| Variable        | Description                                  | Default Value |
| --------------- | -------------------------------------------- | ------------- |
| **REDIS\_HOST** | Hostname or IP address of your Redis server. | `plane-redis` |
| **REDIS\_PORT** | TCP port your Redis server is listening on.  | `6379`        |
| **REDIS\_URL**  | Full connection string for Redis.            |               |

### RabbitMQ settings

| Variable                     | Description                                                                             | Default Value |
| ---------------------------- | --------------------------------------------------------------------------------------- | ------------- |
| **RABBITMQ\_HOST**           | Hostname or IP address of your RabbitMQ server.                                         | `plane-mq`    |
| **RABBITMQ\_PORT**           | TCP port your RabbitMQ server is listening on.                                          | `5672`        |
| **RABBITMQ\_DEFAULT\_USER**  | Username for RabbitMQ authentication.                                                   | `plane`       |
| **RABBITMQ\_DEFAULT\_PASS**  | Password for RabbitMQ authentication.                                                   | `plane`       |
| **RABBITMQ\_DEFAULT\_VHOST** | Virtual host for RabbitMQ, providing logical separation of resources.                   | `plane`       |
| **AMQP\_URL**                | Full connection string for RabbitMQ. Format: `amqp://username:password@host:port/vhost` |               |

### Authentication and security

| Variable               | Description                                                                        | Default Value |
| ---------------------- | ---------------------------------------------------------------------------------- | ------------- |
| **SECRET\_KEY**        | Secret key used for various cryptographic operations, including JWT token signing. |               |
| **MACHINE\_SIGNATURE** | Unique identifier for your instance, used for licensing and authentication.        |               |

### File Storage (MinIO / S3)

| Variable                     | Description                                                                                                                | Default Value             |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| **USE\_MINIO**               | Determines whether to use MinIO for object storage. Set to `1` to enable MinIO, `0` to use configured S3 or local storage. | `1`                       |
| **AWS\_REGION**              | AWS region for S3 storage services.                                                                                        |                           |
| **AWS\_ACCESS\_KEY\_ID**     | Access key for MinIO or AWS S3 authentication.                                                                             |                           |
| **AWS\_SECRET\_ACCESS\_KEY** | Secret key for MinIO or AWS S3 authentication.                                                                             |                           |
| **AWS\_S3\_ENDPOINT\_URL**   | Custom endpoint URL for MinIO or S3-compatible storage.                                                                    | `http://plane-minio:9000` |
| **AWS\_S3\_BUCKET\_NAME**    | S3 bucket name for file storage.                                                                                           | `uploads`                 |
| **MINIO\_ROOT\_USER**        | Username for MinIO authentication. This is effectively your MinIO admin account.                                           | `access-key`              |
| **MINIO\_ROOT\_PASSWORD**    | Password for MinIO root user authentication. Keep this secure as it provides full access to your storage.                  | `secret-key`              |
| **BUCKET\_NAME**             | S3 bucket name where all file uploads will be stored. This bucket will be automatically created if it doesn't exist.       | `uploads`                 |
| **FILE\_SIZE\_LIMIT**        | Maximum file upload size in bytes.                                                                                         | `5242880` (5MB)           |
| **MINIO\_ENDPOINT\_SSL**     | Force HTTPS for MinIO when dealing with SSL termination. Set to `1` to enable.                                             | `0`                       |

### GitHub integration

| Variable                   | Description                                      | Default Value |
| -------------------------- | ------------------------------------------------ | ------------- |
| **GITHUB\_CLIENT\_ID**     | OAuth client ID for GitHub integration.          |               |
| **GITHUB\_CLIENT\_SECRET** | OAuth client secret for GitHub integration.      |               |
| **GITHUB\_APP\_NAME**      | GitHub App name for enhanced GitHub integration. |               |
| **GITHUB\_APP\_ID**        | GitHub App ID for enhanced GitHub integration.   |               |
| **GITHUB\_PRIVATE\_KEY**   | Private key for GitHub App authentication.       |               |

### Slack integration

| Variable                  | Description                                | Default Value |
| ------------------------- | ------------------------------------------ | ------------- |
| **SLACK\_CLIENT\_ID**     | OAuth client ID for Slack integration.     |               |
| **SLACK\_CLIENT\_SECRET** | OAuth client secret for Slack integration. |               |

### GitLab integration

| Variable                   | Description                                 | Default Value |
| -------------------------- | ------------------------------------------- | ------------- |
| **GITLAB\_CLIENT\_ID**     | OAuth client ID for GitLab integration.     |               |
| **GITLAB\_CLIENT\_SECRET** | OAuth client secret for GitLab integration. |               |

### OpenSearch

| Variable                  | Description                                                 | Default Value                          |
| ------------------------- | ----------------------------------------------------------- | -------------------------------------- |
| `OPENSEARCH_ENABLED`      | Enable OpenSearch integration                               | `1`                                    |
| `OPENSEARCH_URL`          | OpenSearch endpoint URL                                     | `https://opensearch.example.com:9200/` |
| `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)                                |

### API settings

| Variable                  | Description                                                             | Default Value |
| ------------------------- | ----------------------------------------------------------------------- | ------------- |
| **API\_KEY\_RATE\_LIMIT** | Rate limit for API requests to prevent abuse. Format: `number/timeunit` | `60/minute`   |

<Accordion title="Community Edition">
  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.

  ## Where to find the environment file

  The environment configuration file is located at:

  ```bash theme={null}
  plane-selfhost/plane-app/plane.env
  ```

  ## Environment Variables

  ### General settings

  | Variable                   | Description                                                                                                                                         | Default Value          |
  | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
  | **APP\_DOMAIN**            | Domain name for your Plane instance. This determines how users will access your installation.                                                       | `localhost`            |
  | **APP\_RELEASE**           | Release version of Plane. Helps with compatibility and troubleshooting.                                                                             | `stable`               |
  | **WEB\_URL**               | The complete base URL for the web application including protocol. Essential for email links and integrations.                                       | `http://${APP_DOMAIN}` |
  | **CORS\_ALLOWED\_ORIGINS** | Comma-separated list of origins allowed to make cross-origin requests to your API.                                                                  | `http://${APP_DOMAIN}` |
  | **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`                    |
  | **LISTEN\_HTTP\_PORT**     | Port for HTTP traffic. The primary port your users will connect to.                                                                                 | `80`                   |
  | **LISTEN\_HTTPS\_PORT**    | Port for HTTPS traffic. The primary port your users will connect to.                                                                                | `443`                  |

  ### Scaling and performance

  | Variable                   | Description                                                                                       | Default Value |
  | -------------------------- | ------------------------------------------------------------------------------------------------- | ------------- |
  | **WEB\_REPLICAS**          | Number of web server replicas for serving the frontend UI. Increase for better load distribution. | `1`           |
  | **SPACE\_REPLICAS**        | Number of space service replicas handling workspace-related operations.                           | `1`           |
  | **ADMIN\_REPLICAS**        | Number of admin service replicas for administrative functions.                                    | `1`           |
  | **API\_REPLICAS**          | Number of API service replicas processing API requests.                                           | `1`           |
  | **WORKER\_REPLICAS**       | Number of worker service replicas handling background tasks.                                      | `1`           |
  | **BEAT\_WORKER\_REPLICAS** | Number of beat worker replicas for scheduled/periodic tasks.                                      | `1`           |
  | **LIVE\_REPLICAS**         | Number of live service replicas for real-time updates and WebSocket connections.                  | `1`           |
  | **GUNICORN\_WORKERS**      | Number of Gunicorn workers per API instance. Increase for better request handling capacity.       | `1`           |

  ### API settings

  | Variable                  | Description                                                             | Default Value |
  | ------------------------- | ----------------------------------------------------------------------- | ------------- |
  | **API\_KEY\_RATE\_LIMIT** | Rate limit for API requests to prevent abuse. Format: `number/timeunit` | `60/minute`   |

  ### Database settings

  | Variable               | Description                                                                                                                                  | Default Value              |
  | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
  | **PGHOST**             | Hostname or IP address of your PostgreSQL server.                                                                                            | `plane-db`                 |
  | **PGDATABASE**         | Name of the PostgreSQL database Plane will use.                                                                                              | `plane`                    |
  | **POSTGRES\_USER**     | Username for PostgreSQL authentication.                                                                                                      | `plane`                    |
  | **POSTGRES\_PASSWORD** | Password for PostgreSQL authentication. Use a strong, unique password.                                                                       | `plane`                    |
  | **POSTGRES\_DB**       | Same as PGDATABASE - the name of the PostgreSQL database.                                                                                    | `plane`                    |
  | **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 directly.                                        | `/var/lib/postgresql/data` |
  | **DATABASE\_URL**      | Full connection string for PostgreSQL. If provided, overrides individual settings. Format: `postgresql://username:password@host:port/dbname` |                            |

  ### Redis settings

  | Variable        | Description                                                                     | Default Value |
  | --------------- | ------------------------------------------------------------------------------- | ------------- |
  | **REDIS\_HOST** | Hostname or IP address of your Redis server.                                    | `plane-redis` |
  | **REDIS\_PORT** | TCP port your Redis server is listening on.                                     | `6379`        |
  | **REDIS\_URL**  | Full connection string for Redis. Format: `redis://username:password@host:port` |               |

  ### RabbitMQ settings

  | Variable               | Description                                                                                      | Default Value                            |
  | ---------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------- |
  | **RABBITMQ\_HOST**     | Hostname or IP address of your RabbitMQ server.                                                  | `plane-mq`                               |
  | **RABBITMQ\_PORT**     | TCP port your RabbitMQ server is listening on.                                                   | `5672`                                   |
  | **RABBITMQ\_USER**     | Username for RabbitMQ authentication.                                                            | `plane`                                  |
  | **RABBITMQ\_PASSWORD** | Password for RabbitMQ authentication. Use a strong, unique password.                             | `plane`                                  |
  | **RABBITMQ\_VHOST**    | Virtual host for RabbitMQ, providing logical separation of resources.                            | `plane`                                  |
  | **AMQP\_URL**          | Full connection string for RabbitMQ. If not provided, it's constructed from individual settings. | `amqp://plane:plane@plane-mq:5672/plane` |

  ### File Storage (MinIO / S3)

  | Variable                     | Description                                                                                         | Default Value   |
  | ---------------------------- | --------------------------------------------------------------------------------------------------- | --------------- |
  | **USE\_MINIO**               | Whether to use MinIO for object storage. Set to `1` to enable, `0` to use other configured storage. | `1`             |
  | **MINIO\_ENDPOINT\_SSL**     | Force HTTPS for MinIO when handling SSL termination. Set to `1` to enable.                          | `0`             |
  | **AWS\_REGION**              | AWS region for S3 storage services. Applies when using S3 or MinIO.                                 |                 |
  | **AWS\_ACCESS\_KEY\_ID**     | Access key for MinIO or AWS S3 authentication.                                                      | `access-key`    |
  | **AWS\_SECRET\_ACCESS\_KEY** | Secret key for MinIO or AWS S3 authentication.                                                      | `secret-key`    |
  | **AWS\_S3\_ENDPOINT\_URL**   | Endpoint URL for MinIO or S3-compatible storage.                                                    |                 |
  | **AWS\_S3\_BUCKET\_NAME**    | S3 bucket name for file storage. All uploads will be stored in this bucket.                         | `uploads`       |
  | **FILE\_SIZE\_LIMIT**        | Maximum file upload size in bytes.                                                                  | `5242880` (5MB) |

  ### Security settings

  | Variable        | Description                                                                                                               | Default Value |
  | --------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------- |
  | **SECRET\_KEY** | Secret key used for cryptographic operations like session handling and token generation. Should be a long, random string. |               |
</Accordion>
