These are the most critical settings and must be configured before first startup.
.env
# Base URL for the web applicationWEB_URL="http://localhost"# CORS allowed origins (must match WEB_URL)CORS_ALLOWED_ORIGINS="http://localhost"# Base URLs for different services (usually auto-configured)ADMIN_BASE_URL="http://localhost/admin"SPACE_BASE_URL="http://localhost/spaces"APP_BASE_URL="http://localhost"
WEB_URL and CORS_ALLOWED_ORIGINS must match exactly, including protocol (http/https) and port. Mismatched values will cause authentication and API call failures.
# PostgreSQL credentialsPOSTGRES_USER="plane"POSTGRES_PASSWORD="plane" # Change in production!POSTGRES_DB="plane"# PostgreSQL host and portPGHOST="plane-db" # Service name in Docker ComposePOSTGRES_PORT="5432"# Data directoryPGDATA="/var/lib/postgresql/data"# Full connection string (auto-generated)DATABASE_URL="postgresql://plane:plane@plane-db:5432/plane"
# RabbitMQ credentialsRABBITMQ_HOST="plane-mq"RABBITMQ_PORT="5672"RABBITMQ_USER="plane"RABBITMQ_PASSWORD="plane" # Change in production!RABBITMQ_VHOST="plane"# Full AMQP URLAMQP_URL="amqp://plane:plane@plane-mq:5672/plane"
RabbitMQ is used for background job processing (emails, notifications, imports, etc.).
# Enable MinIO (1 = use bundled MinIO, 0 = use external S3)USE_MINIO=1# MinIO credentialsAWS_ACCESS_KEY_ID="access-key" # Change in production!AWS_SECRET_ACCESS_KEY="secret-key" # Change in production!# MinIO endpoint (internal service name)AWS_S3_ENDPOINT_URL="http://plane-minio:9000"# Bucket nameAWS_S3_BUCKET_NAME="uploads"# Region (not used for MinIO)AWS_REGION=""# SSL for MinIO endpoint (0 = disabled, 1 = enabled)MINIO_ENDPOINT_SSL=0# Maximum file upload size (in bytes)FILE_SIZE_LIMIT=5242880 # 5MB default
# Email for Let's Encrypt notificationsCERT_EMAIL="[email protected]"# ACME server URLCERT_ACME_CA="https://acme-v02.api.letsencrypt.org/directory"# For DNS challenge (optional)CERT_ACME_DNS=""
Required for user invitations, password resets, and notifications.
.env
# SMTP server settingsEMAIL_HOST="smtp.gmail.com"EMAIL_PORT="587"EMAIL_HOST_USER="[email protected]"EMAIL_HOST_PASSWORD="your-app-password"EMAIL_FROM="[email protected]"# TLS/SSL settingsEMAIL_USE_TLS="1" # For port 587EMAIL_USE_SSL="0" # For port 465, set to 1 and TLS to 0
Provider Examples:
Gmail
EMAIL_HOST="smtp.gmail.com"EMAIL_PORT="587"EMAIL_HOST_USER="[email protected]"EMAIL_HOST_PASSWORD="your-app-password" # Use App Password, not account passwordEMAIL_USE_TLS="1"EMAIL_USE_SSL="0"
# Enable Google OAuthIS_GOOGLE_ENABLED="1"# Google OAuth credentialsGOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"GOOGLE_CLIENT_SECRET="your-client-secret"
# OpenAI API keyLLM_API_KEY="sk-your-openai-api-key"# API base URL (optional, for custom endpoints)OPENAI_API_BASE="https://api.openai.com/v1"# Model selection (deprecated)GPT_ENGINE="gpt-3.5-turbo"
OPENAI_API_KEY, OPENAI_API_BASE, and GPT_ENGINE are deprecated but still supported. Use LLM_API_KEY for new deployments.