Skip to main content

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:

/opt/plane/plane.env

Make all configuration changes here. Remember to restart the instance after making changes for them to take effect.

Environment variables

General settings

VariableDescriptionDefault Value
INSTALL_DIRDirectory where Plane is installed./opt/plane
DOMAIN_NAMEPrimary domain name for your Plane instance. Determines how users access your installation.localhost
APP_RELEASE_VERSIONThe version of Plane Commercial Edition you're running. Useful for troubleshooting and compatibility.Current release version
WEB_URLComplete base URL for the web application, including protocol (e.g., https://plane.example.com).http://localhost
CORS_ALLOWED_ORIGINSComma-separated list of origins allowed to make cross-origin requests to your API. Usually includes your WEB_URL.http://localhost
DEBUGToggles debug mode for verbose logging and debugging information.0 (disabled)

Scaling and performance

VariableDescriptionDefault Value
WEB_REPLICASNumber of web server replicas for load balancing.1
SPACE_REPLICASNumber of space service replicas for workspaces.1
ADMIN_REPLICASNumber of admin service replicas.1
API_REPLICASNumber of API service replicas.1
WORKER_REPLICASNumber of worker service replicas for background tasks.1
BEAT_WORKER_REPLICASNumber of beat worker replicas for scheduled tasks.1
LIVE_REPLICASNumber of live service replicas for real-time updates.1
GUNICORN_WORKERSNumber of Gunicorn workers for handling web requests. Increase for better performance on high-traffic instances.2

Networking and security

VariableDescriptionDefault Value
LISTEN_HTTP_PORTPort for HTTP traffic.80
LISTEN_HTTPS_PORTPort for HTTPS traffic.443
APP_PROTOCOLProtocol to be used, either http or https.http
TRUSTED_PROXIESCIDR notation of trusted proxies for request forwarding. Important when behind load balancers or reverse proxies.0.0.0.0/0
SSL_VERIFYWhether to verify SSL certificates for outgoing connections. Set to 0 only in development environments.1

SSL and certificates

VariableDescriptionDefault Value
CERT_EMAILEmail used for SSL certificate registration with Let's Encrypt or other ACME providers.admin@example.com
CERT_ACME_CAACME Certificate Authority URL for SSL certificate issuance.https://acme-v02.api.letsencrypt.org/directory
CERT_ACME_DNSDNS provider configuration for SSL certificate domain validation. Format varies by provider.
SITE_ADDRESThe domain name and port required by Caddy for serving your Plane instance. Determines how Caddy will handle incoming requests.localhost:80

Database settings

VariableDescriptionDefault Value
PGHOSTHostname or IP address of your PostgreSQL server.plane-db
PGDATABASEName of the PostgreSQL database Plane will use.plane
POSTGRES_USERUsername for PostgreSQL authentication.plane
POSTGRES_PASSWORDPassword for PostgreSQL authentication. Critical: Use a strong, unique password here.plane
POSTGRES_DBSame as PGDATABASE - the name of the PostgreSQL database.plane
POSTGRES_PORTTCP port your PostgreSQL server is listening on.5432
PGDATADirectory path where PostgreSQL data is stored. Only relevant if you're managing PostgreSQL within the same container/system./var/lib/postgresql/data
DATABASE_URLFull connection string for PostgreSQL. If provided, this takes precedence over individual connection parameters. Format: postgresql://username:password@host:port/dbname

Redis settings

VariableDescriptionDefault Value
REDIS_HOSTHostname or IP address of your Redis server.plane-redis
REDIS_PORTTCP port your Redis server is listening on.6379
REDIS_URLFull connection string for Redis.

RabbitMQ settings

VariableDescriptionDefault Value
RABBITMQ_HOSTHostname or IP address of your RabbitMQ server.plane-mq
RABBITMQ_PORTTCP port your RabbitMQ server is listening on.5672
RABBITMQ_DEFAULT_USERUsername for RabbitMQ authentication.plane
RABBITMQ_DEFAULT_PASSPassword for RabbitMQ authentication.plane
RABBITMQ_DEFAULT_VHOSTVirtual host for RabbitMQ, providing logical separation of resources.plane
AMQP_URLFull connection string for RabbitMQ. Format: amqp://username:password@host:port/vhost

Authentication and security

VariableDescriptionDefault Value
SECRET_KEYSecret key used for various cryptographic operations, including JWT token signing.
MACHINE_SIGNATUREUnique identifier for your instance, used for licensing and authentication.

File Storage (MinIO / S3)

VariableDescriptionDefault Value
USE_MINIOUse MinIO for object storage (1) or configured S3/local storage (0).1
AWS_REGIONAWS region for S3 storage services.
AWS_ACCESS_KEY_IDAccess key for MinIO or AWS S3 authentication.
AWS_SECRET_ACCESS_KEYSecret key for MinIO or AWS S3 authentication.
AWS_S3_ENDPOINT_URLCustom endpoint URL for MinIO or S3-compatible storage.http://plane-minio:9000
AWS_S3_BUCKET_NAMES3 bucket name for file storage.uploads
MINIO_ROOT_USERUsername for MinIO authentication (admin account).access-key
MINIO_ROOT_PASSWORDPassword for MinIO root user authentication.secret-key
BUCKET_NAMES3 bucket name for all file uploads. Created automatically if it doesn't exist.uploads
FILE_SIZE_LIMITMaximum file upload size in bytes.5242880 (5MB)
MINIO_ENDPOINT_SSLForce HTTPS for MinIO when dealing with SSL termination (1 to enable).0

GitHub integration

VariableDescriptionDefault Value
GITHUB_CLIENT_IDOAuth client ID for GitHub integration.
GITHUB_CLIENT_SECRETOAuth client secret for GitHub integration.
GITHUB_APP_NAMEGitHub App name for enhanced GitHub integration.
GITHUB_APP_IDGitHub App ID for enhanced GitHub integration.
GITHUB_PRIVATE_KEYPrivate key for GitHub App authentication.

Slack integration

VariableDescriptionDefault Value
SLACK_CLIENT_IDOAuth client ID for Slack integration.
SLACK_CLIENT_SECRETOAuth client secret for Slack integration.

GitLab integration

VariableDescriptionDefault Value
GITLAB_CLIENT_IDOAuth client ID for GitLab integration.
GITLAB_CLIENT_SECRETOAuth client secret for GitLab integration.

API settings

VariableDescriptionDefault Value
API_KEY_RATE_LIMITRate limit for API requests to prevent abuse. Format: number/timeunit60/minute
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:

plane-selfhost/plane-app/plane.env

Environment Variables

General settings

VariableDescriptionDefault Value
APP_DOMAINDomain name for your Plane instance. This determines how users will access your installation.localhost
APP_RELEASERelease version of Plane. Helps with compatibility and troubleshooting.stable
WEB_URLThe complete base URL for the web application including protocol. Essential for email links and integrations.http://${APP_DOMAIN}
CORS_ALLOWED_ORIGINSComma-separated list of origins allowed to make cross-origin requests to your API.http://${APP_DOMAIN}
DEBUGToggles debug mode for verbose logging. Set to 1 to enable, 0 to disable. Not recommended in production as it may expose sensitive information.0
NGINX_PORTPort for HTTP traffic. The primary port your users will connect to.80

Scaling and performance

VariableDescriptionDefault Value
WEB_REPLICASNumber of web server replicas for serving the frontend UI. Increase for better load distribution.1
SPACE_REPLICASNumber of space service replicas handling workspace-related operations.1
ADMIN_REPLICASNumber of admin service replicas for administrative functions.1
API_REPLICASNumber of API service replicas processing API requests.1
WORKER_REPLICASNumber of worker service replicas handling background tasks.1
BEAT_WORKER_REPLICASNumber of beat worker replicas for scheduled/periodic tasks.1
LIVE_REPLICASNumber of live service replicas for real-time updates and WebSocket connections.1
GUNICORN_WORKERSNumber of Gunicorn workers per API instance. Increase for better request handling capacity.1

API settings

VariableDescriptionDefault Value
API_KEY_RATE_LIMITRate limit for API requests to prevent abuse. Format: number/timeunit60/minute

Database settings

VariableDescriptionDefault Value
PGHOSTHostname or IP address of your PostgreSQL server.plane-db
PGDATABASEName of the PostgreSQL database Plane will use.plane
POSTGRES_USERUsername for PostgreSQL authentication.plane
POSTGRES_PASSWORDPassword for PostgreSQL authentication. Use a strong, unique password.plane
POSTGRES_DBSame as PGDATABASE - the name of the PostgreSQL database.plane
POSTGRES_PORTTCP port your PostgreSQL server is listening on.5432
PGDATADirectory path where PostgreSQL data is stored. Only relevant if you're managing PostgreSQL directly./var/lib/postgresql/data
DATABASE_URLFull connection string for PostgreSQL. If provided, overrides individual settings. Format: postgresql://username:password@host:port/dbname

Redis settings

VariableDescriptionDefault Value
REDIS_HOSTHostname or IP address of your Redis server.plane-redis
REDIS_PORTTCP port your Redis server is listening on.6379
REDIS_URLFull connection string for Redis. Format: redis://username:password@host:port

RabbitMQ settings

VariableDescriptionDefault Value
RABBITMQ_HOSTHostname or IP address of your RabbitMQ server.plane-mq
RABBITMQ_PORTTCP port your RabbitMQ server is listening on.5672
RABBITMQ_USERUsername for RabbitMQ authentication.plane
RABBITMQ_PASSWORDPassword for RabbitMQ authentication. Use a strong, unique password.plane
RABBITMQ_VHOSTVirtual host for RabbitMQ, providing logical separation of resources.plane
AMQP_URLFull connection string for RabbitMQ. If not provided, it's constructed from individual settings.amqp://plane:plane@plane-mq:5672/plane

File Storage (MinIO / S3)

VariableDescriptionDefault Value
USE_MINIOWhether to use MinIO for object storage. Set to 1 to enable, 0 to use other configured storage.1
MINIO_ENDPOINT_SSLForce HTTPS for MinIO when handling SSL termination. Set to 1 to enable.0
AWS_REGIONAWS region for S3 storage services. Applies when using S3 or MinIO.
AWS_ACCESS_KEY_IDAccess key for MinIO or AWS S3 authentication.access-key
AWS_SECRET_ACCESS_KEYSecret key for MinIO or AWS S3 authentication.secret-key
AWS_S3_ENDPOINT_URLEndpoint URL for MinIO or S3-compatible storage.
AWS_S3_BUCKET_NAMES3 bucket name for file storage. All uploads will be stored in this bucket.uploads
FILE_SIZE_LIMITMaximum file upload size in bytes.5242880 (5MB)

Security settings

VariableDescriptionDefault Value
SECRET_KEYSecret key used for cryptographic operations like session handling and token generation. Should be a long, random string.