- 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
77 lines
2.9 KiB
Plaintext
77 lines
2.9 KiB
Plaintext
# ============================================================
|
||
# EchoChat 部署环境变量示例(通用)
|
||
# 本文件为主模板,含所有可配置项 + 默认值说明
|
||
# 选择部署形态时请复制为 .env.local 或 .env.public,然后按需修改
|
||
# ------------------------------------------------------------
|
||
# 本机 Demo:cp 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 监听 IP:Docker 内部一律 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):
|
||
# - 本机 Demo:false
|
||
# - 公网部署:推荐 true(对称 NAT 用户的 fallback 通路)
|
||
TURN_ENABLED=false
|
||
|
||
# coturn 提供的 realm、用户名、密码
|
||
# 生产务必改,TURN 账号泄漏可被滥用
|
||
TURN_REALM=echochat
|
||
TURN_USERNAME=echouser
|
||
TURN_PASSWORD=echopass
|
||
|
||
# TURN 外部监听端口(标准 3478 STUN/TURN,5349 TLS)
|
||
# coturn 走 network_mode: host,端口一般沿用默认
|
||
TURN_LISTEN_PORT=3478
|
||
TURN_TLS_PORT=5349
|
||
|
||
# TURN 为中继流量分配的端口范围
|
||
TURN_MIN_PORT=49160
|
||
TURN_MAX_PORT=49200
|