Files
plane-gptproto-integration/deploy/local/.env.template
T
carlandCursor 0136c15274 Initial commit: Plane 自部署与 gptproto AI 集成
包含本地/远程部署脚本、AI Agent 服务、Dashboard 与 QA 验证。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 11:37:41 +08:00

108 lines
3.6 KiB
Bash

# deploy/local/.env.template — Plane v1.3.0 (community self-host) + AI Agent
# Copy to .env, replace every CHANGEME_* with a real value, then chmod 600 .env.
# Do NOT commit .env to git.
# ---- Release pin (DO NOT change without rerunning pull-plane.sh) ----
APP_RELEASE=v1.3.0
APP_DOMAIN=localhost
# ---- Listening ports (host-side; we expose ONLY proxy via override) ----
LISTEN_HTTP_PORT=80
LISTEN_HTTPS_PORT=443
# ---- Plane URLs (must match host-mapped port from override.yml) ----
WEB_URL=http://localhost:8090
CORS_ALLOWED_ORIGINS=http://localhost:8090
API_BASE_URL=http://api:8000
SITE_ADDRESS=:80
TRUSTED_PROXIES=0.0.0.0/0
# ---- Postgres ----
PGHOST=plane-db
PGDATABASE=plane
POSTGRES_USER=plane
POSTGRES_PASSWORD=CHANGEME_POSTGRES_STRONG_PASSWORD
POSTGRES_DB=plane
POSTGRES_PORT=5432
PGDATA=/var/lib/postgresql/data
DATABASE_URL=postgresql://plane:CHANGEME_POSTGRES_STRONG_PASSWORD@plane-db/plane
# ---- Redis ----
REDIS_HOST=plane-redis
REDIS_PORT=6379
REDIS_URL=redis://plane-redis:6379/
# ---- RabbitMQ ----
RABBITMQ_HOST=plane-mq
RABBITMQ_PORT=5672
RABBITMQ_USER=plane
RABBITMQ_PASSWORD=CHANGEME_RABBITMQ_STRONG_PASSWORD
RABBITMQ_VHOST=plane
AMQP_URL=amqp://plane:CHANGEME_RABBITMQ_STRONG_PASSWORD@plane-mq:5672/plane
# ---- Django ----
SECRET_KEY=CHANGEME_DJANGO_SECRET_KEY_AT_LEAST_50_CHARS
DEBUG=0
GUNICORN_WORKERS=1
# ---- MinIO / S3 ----
USE_MINIO=1
AWS_REGION=
AWS_ACCESS_KEY_ID=CHANGEME_MINIO_ACCESS_KEY
AWS_SECRET_ACCESS_KEY=CHANGEME_MINIO_SECRET_KEY
AWS_S3_ENDPOINT_URL=http://plane-minio:9000
AWS_S3_BUCKET_NAME=uploads
FILE_SIZE_LIMIT=5242880
MINIO_ENDPOINT_SSL=0
# ---- Live collab server ----
LIVE_SERVER_SECRET_KEY=CHANGEME_LIVE_SECRET_KEY_AT_LEAST_32_CHARS
# ---- Replicas (single-host local) ----
WEB_REPLICAS=1
SPACE_REPLICAS=1
ADMIN_REPLICAS=1
API_REPLICAS=1
WORKER_REPLICAS=1
BEAT_WORKER_REPLICAS=1
LIVE_REPLICAS=1
# ---- Cert (unused locally, leave blank) ----
CERT_EMAIL=
CERT_ACME_CA=https://acme-v02.api.letsencrypt.org/directory
CERT_ACME_DNS=
# ---- API rate ----
API_KEY_RATE_LIMIT=60/minute
# ---- AI Agent (FastAPI; gptproto OpenAI-compatible aggregator) ----
GPTPROTO_API_KEY=CHANGEME_GPTPROTO_API_KEY
GPTPROTO_BASE_URL=https://gptproto.com/v1
GPTPROTO_MODEL=claude-sonnet-4-6
PLANE_API_BASE=http://api:8000
PLANE_API_TOKEN=CHANGEME_PLANE_API_TOKEN
# ============================================================
# 反遥测 / 反回拨锁定 (LOCKDOWN) — 不要清空这些开关!
# 设计原则:env-gated 开关,上游源码完整保留,不残废任何逻辑
# 详见 deploy/local/patches/README.md
# ============================================================
# [核心开关] 阻止 OpenTelemetry 把 instance trace (用户数 / issue 数等)
# 发到 https://telemetry.plane.so —— 新建 Instance 时 is_telemetry_enabled 默认置 False,
# 上游的 if instance.is_telemetry_enabled: 守卫会直接跳过整个 trace 上报逻辑
DISABLE_TELEMETRY=1
# [核心开关] 阻止 register_instance 每次启动 GET api.github.com/.../releases/latest
DISABLE_GITHUB_VERSION_CHECK=1
# 防御纵深:把 OTLP exporter endpoint 指向本机不存在端口
# 即使将来上游改了 telemetry 流程,数据也只能发去黑洞
OTLP_ENDPOINT=http://127.0.0.1:1
# PostHog 事件追踪 (USER_INVITED / WORKSPACE_DELETED) —— 留空即禁用 (上游默认就是空)
POSTHOG_API_KEY=
POSTHOG_HOST=
# Microsoft Clarity 前端会话录制 —— 留空即禁用 (上游默认就是空)
VITE_SESSION_RECORDER_KEY=
# Intercom 客服 widget (会加载 widget.intercom.io) —— 0 即禁用
IS_INTERCOM_ENABLED=0
# Unsplash 图片搜索 (按需调 api.unsplash.com,不主动外发数据) —— 留空即关
UNSPLASH_ACCESS_KEY=