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
This commit is contained in:
bujinyuan
2026-04-22 17:59:48 +08:00
parent ba8c72aae0
commit a01e973335
12 changed files with 946 additions and 33 deletions

32
deploy/.env.local.example Normal file
View File

@@ -0,0 +1,32 @@
# ============================================================
# EchoChat 本机 Demo 部署环境变量(默认值,即装即用)
# 用法cp deploy/.env.local.example deploy/.env
# 说明:此模式下 coturn 不启动(需同一局域网 / 直连 IP 可达即可)
# ============================================================
DEPLOY_MODE=local
# ---- 中间件(与 docker-compose.dev.yml 默认值一致,通常无需修改)----
POSTGRES_DB=echochat
POSTGRES_USER=echochat
POSTGRES_PASSWORD=echochat_dev_2026
REDIS_PASSWORD=
MINIO_ROOT_USER=echochat
MINIO_ROOT_PASSWORD=echochat123456
# ---- Go backend ----
GO_SERVICE_PORT=8085
JWT_SECRET=echochat-dev-jwt-secret-2026-please-change-in-production
# ---- mediasoup ----
# 本机 Demo 不用跨公网announcedIp 留空让 mediasoup 自动探测即可
MEDIA_INTERNAL_TOKEN=dev-internal-token-change-me
MEDIASOUP_LISTEN_IP=0.0.0.0
MEDIASOUP_ANNOUNCED_IP=
MEDIASOUP_RTC_MIN_PORT=40000
MEDIASOUP_RTC_MAX_PORT=40199
# ---- TURN 关闭 ----
TURN_ENABLED=false