Files
EchoChat/deploy/.env.example
bujinyuan a01e973335 feat(deploy): Task 14 完成 docker-compose 扩展 + 环境变量双态部署
- deploy/docker-compose.dev.yml 新增 media-server 服务 + coturn(profiles:public),
  全部服务参数改为 env 变量注入,go-service 依赖 media-server
- deploy/.env.example / .env.local.example / .env.public.example 三份模板,
  公网模板用 _REPLACE_WITH_*_ 占位符防"示例值上生产"
- scripts/start.sh / stop.sh / status.sh 新增 full 子命令对接 docker compose --profile public
- scripts/deploy-public.sh 新建:env 校验 + 端口 checklist + Docker 自检 +
  --profile public up -d --build + 健康检查闭环
- docs/deployment/meeting-mvp.md 新建:双态部署全流程 + 强密码生成 + 防火墙 + FAQ
- 双模式 docker compose config 校验通过;deploy-public.sh 三种错误场景按预期退出

同步更新 CURRENT_STATUS / implementation.plan / project-context
Task 0-14  / 剩余 Task 15-16

Made-with: Cursor
2026-04-22 17:59:48 +08:00

77 lines
2.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================
# EchoChat 部署环境变量示例(通用)
# 本文件为主模板,含所有可配置项 + 默认值说明
# 选择部署形态时请复制为 .env.local 或 .env.public然后按需修改
# ------------------------------------------------------------
# 本机 Democp deploy/.env.local.example deploy/.env
# 公网部署cp deploy/.env.public.example deploy/.env
# ============================================================
# ============================================================
# 1. 部署形态切换
# ============================================================
# 部署形态标识(仅用于人眼识别,不影响运行时)
# 可选值local | public
DEPLOY_MODE=local
# ============================================================
# 2. Postgres / Redis / MinIO中间件
# ============================================================
POSTGRES_DB=echochat
POSTGRES_USER=echochat
POSTGRES_PASSWORD=echochat_dev_2026
REDIS_PASSWORD=
MINIO_ROOT_USER=echochat
MINIO_ROOT_PASSWORD=echochat123456
# ============================================================
# 3. Go backend
# ============================================================
GO_SERVICE_PORT=8085
# JWT 签名密钥(生产环境必须改)
JWT_SECRET=echochat-dev-jwt-secret-2026-please-change-in-production
# ============================================================
# 4. mediasoup 媒体服务器Node
# ============================================================
# Go ↔ Node 内部鉴权 token生产必须改
MEDIA_INTERNAL_TOKEN=dev-internal-token-change-me
# mediasoup RTC 监听 IPDocker 内部一律 0.0.0.0
MEDIASOUP_LISTEN_IP=0.0.0.0
# mediasoup RTC 对外通告 IP本决策见设计 §D01
# - 本机 Demo留空浏览器走 127.0.0.1 / 局域网 IP 直连)
# - 公网部署:必须填 **服务器公网 IP** 或解析到公网 IP 的域名
# 错误示例127.0.0.1(远端浏览器只能拿到回环地址,无法建连)
MEDIASOUP_ANNOUNCED_IP=
# mediasoup UDP/TCP 端口范围MVP 200 端口足够 ~25 用户级 Transport
MEDIASOUP_RTC_MIN_PORT=40000
MEDIASOUP_RTC_MAX_PORT=40199
# ============================================================
# 5. coturn TURN 服务器(仅公网部署启用)
# ============================================================
# 是否启用 TURN`docker compose --profile public up` 才拉起 coturn
# - 本机 Demofalse
# - 公网部署:推荐 true对称 NAT 用户的 fallback 通路)
TURN_ENABLED=false
# coturn 提供的 realm、用户名、密码
# 生产务必改TURN 账号泄漏可被滥用
TURN_REALM=echochat
TURN_USERNAME=echouser
TURN_PASSWORD=echopass
# TURN 外部监听端口(标准 3478 STUN/TURN5349 TLS
# coturn 走 network_mode: host端口一般沿用默认
TURN_LISTEN_PORT=3478
TURN_TLS_PORT=5349
# TURN 为中继流量分配的端口范围
TURN_MIN_PORT=49160
TURN_MAX_PORT=49200