|
| 1 | +--- |
| 2 | +title: Environment variables reference guide |
| 3 | +sidebarTitle: Environment variables |
| 4 | +--- |
| 5 | + |
| 6 | +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. |
| 7 | + |
| 8 | +## Where to find the .env file |
| 9 | + |
| 10 | +The environment file for Plane Commercial Edition is located at: |
| 11 | + ```bash |
| 12 | + /opt/plane/plane.env |
| 13 | + ``` |
| 14 | + |
| 15 | +This is where you'll make all configuration changes. Remember to restart the instance after making changes to ensure they take effect. |
| 16 | + |
| 17 | +## Environment variables |
| 18 | + |
| 19 | +### General settings |
| 20 | + |
| 21 | +| Variable | Description | Default Value | |
| 22 | +|----------|-------------|---------------| |
| 23 | +| **DOMAIN_NAME** | Primary domain name for your Plane instance. This determines how users will access your installation. | `localhost` | |
| 24 | +| **APP_RELEASE_VERSION** | The version of Plane Commercial Edition you're running. This helps with troubleshooting and ensures compatibility. | *Current release version* | |
| 25 | +| **WEB_URL** | The complete base URL for the web application including protocol (e.g., `https://plane.example.com`).|`http://localhost`| |
| 26 | +| **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`| |
| 27 | +| **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`| |
| 28 | +| **DEBUG** | Toggles debug mode for more verbose logging and debugging information.| `0` (disabled) | |
| 29 | + |
| 30 | +### Database settings |
| 31 | + |
| 32 | +| Variable | Description | Default Value | |
| 33 | +|----------|-------------|---------------| |
| 34 | +| **PGHOST** | Hostname or IP address of your PostgreSQL server. | `plane-db` | |
| 35 | +| **PGDATABASE** | Name of the PostgreSQL database Plane will use. | `plane` | |
| 36 | +| **POSTGRES_USER** | Username for PostgreSQL authentication. | `plane` | |
| 37 | +| **POSTGRES_PASSWORD** | Password for PostgreSQL authentication. **Critical:** Use a strong, unique password here. |`plane`| |
| 38 | +| **POSTGRES_DB** | Same as PGDATABASE - the name of the PostgreSQL database. | `plane` | |
| 39 | +| **POSTGRES_PORT** | TCP port your PostgreSQL server is listening on. | `5432` | |
| 40 | +| **PGDATA** | Directory path where PostgreSQL data is stored. Only relevant if you're managing PostgreSQL within the same container/system. | `/var/lib/postgresql/data` | |
| 41 | +| **DATABASE_URL** | Full connection string for PostgreSQL. If provided, this takes precedence over individual connection parameters. Format: `postgresql://username:password@host:port/dbname` | *Constructed from individual settings* | |
| 42 | + |
| 43 | +### Redis settings |
| 44 | + |
| 45 | +| Variable | Description | Default Value | |
| 46 | +|----------|-------------|---------------| |
| 47 | +| **REDIS_HOST** | Hostname or IP address of your Redis server. | `plane-redis` | |
| 48 | +| **REDIS_PORT** | TCP port your Redis server is listening on. | `6379` | |
| 49 | +| **REDIS_URL** | Full connection string for Redis.| | |
| 50 | + |
| 51 | +### RabbitMQ settings |
| 52 | + |
| 53 | +| Variable | Description | Default Value | |
| 54 | +|----------|-------------|---------------| |
| 55 | +| **RABBITMQ_HOST** | Hostname or IP address of your RabbitMQ server. | `plane-mq` | |
| 56 | +| **RABBITMQ_PORT** | TCP port your RabbitMQ server is listening on. | `5672` | |
| 57 | +| **RABBITMQ_DEFAULT_USER** | Username for RabbitMQ authentication. | `plane` | |
| 58 | +| **RABBITMQ_DEFAULT_PASS** | Password for RabbitMQ authentication. | `plane` | |
| 59 | +| **RABBITMQ_DEFAULT_VHOST** | Virtual host for RabbitMQ, providing logical separation of resources. | `plane` | |
| 60 | +| **AMQP_URL** | Full connection string for RabbitMQ. Format: `amqp://username:password@host:port/vhost` | | |
| 61 | + |
| 62 | +### Security and API settings |
| 63 | + |
| 64 | +| Variable | Description | Default Value | |
| 65 | +|----------|-------------|---------------| |
| 66 | +| **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` | |
| 70 | + |
| 71 | +### Storage and file uploads |
| 72 | + |
| 73 | +| Variable | Description | Default Value | |
| 74 | +|----------|-------------|---------------| |
| 75 | +| **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` | |
| 76 | +| **AWS_REGION** | AWS region for S3 storage services. | | |
| 77 | +| **AWS_ACCESS_KEY_ID** | Access key for MinIO or AWS S3 authentication. | | |
| 78 | +| **AWS_SECRET_ACCESS_KEY** | Secret key for MinIO or AWS S3 authentication. | | |
| 79 | +| **AWS_S3_ENDPOINT_URL** | Custom endpoint URL for MinIO or S3-compatible storage. | `http://plane-minio:9000`| |
| 80 | +| **AWS_S3_BUCKET_NAME** | S3 bucket name for file storage. | `uploads` | |
| 81 | +| **FILE_SIZE_LIMIT** | Maximum file upload size in bytes. | `5242880` (5MB) | |
| 82 | +| **MINIO_ENDPOINT_SSL** | Force HTTPS for MinIO when dealing with SSL termination. Set to `1` to enable. | `0` | |
| 83 | + |
| 84 | +### Workers and Performance |
| 85 | + |
| 86 | +| Variable | Description | Default Value | |
| 87 | +|----------|-------------|---------------| |
| 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` | |
| 96 | + |
| 97 | +### Installation and system settings |
| 98 | + |
| 99 | +| Variable | Description | Default Value | |
| 100 | +|----------|-------------|---------------| |
| 101 | +| **INSTALL_DIR** | Directory where Plane is installed. | `/opt/plane` | |
| 102 | +| **MACHINE_SIGNATURE** | Unique identifier for your instance, used for licensing and authentication.| | |
| 103 | + |
| 104 | +### Networking and SSL |
| 105 | + |
| 106 | +| Variable | Description | Default Value | |
| 107 | +|----------|-------------|---------------| |
| 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` | |
| 116 | + |
| 117 | +### Monitoring and feature flags |
| 118 | + |
| 119 | +| Variable | Description | Default Value | |
| 120 | +|----------|-------------|---------------| |
| 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`| |
| 123 | + |
| 124 | +### Silo and Integrations |
| 125 | + |
| 126 | +| Variable | Description | Default Value | |
| 127 | +|----------|-------------|---------------| |
| 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. | | |
| 138 | + |
0 commit comments