# ============================================================
# EchoChat 公网部署环境变量示例
# 用法：cp deploy/.env.public.example deploy/.env
#       然后修改下面的 MEDIASOUP_ANNOUNCED_IP / TURN_* / 所有密码
# 启动：scripts/deploy-public.sh（会校验关键参数 + 开 public profile）
# ============================================================

DEPLOY_MODE=public

# ============================================================
# 中间件（生产环境 MUST 修改密码）
# ============================================================
POSTGRES_DB=echochat
POSTGRES_USER=echochat
POSTGRES_PASSWORD=echochat_2026-1s32dswW@#

REDIS_PASSWORD=echochat_2026-1s32dswW@#

MINIO_ROOT_USER=echochat
MINIO_ROOT_PASSWORD=echochat_2026-1s32dswW@#
MINIO_PUBLIC_BASE_URL=https://yl.z64.cn/echochat

# ============================================================
# Go backend
# ============================================================
GO_SERVICE_PORT=8085
# MUST 替换为随机 64 字符字符串；生产可用 openssl rand -hex 32
JWT_SECRET=1b6d0271700f2db39b2ac7c44811235c55e4e0e61cc47d963f7212b29a39c98f

# ============================================================
# mediasoup（关键：MEDIASOUP_ANNOUNCED_IP 必填）
# ============================================================
# Go ↔ Node 内部 token，必须与 media-server/.env 一致
MEDIA_INTERNAL_TOKEN=internal-token-22xqs
# media-server 失败回调共享密钥：与 media-server 服务的 INTERNAL_WEBHOOK_SECRET 保持一致
# 未配置时 go-service 会拒绝所有 webhook（Forbidden），录制失败状态将无法及时落 failed
INTERNAL_WEBHOOK_SECRET=internal-webhook-12xqs
MEDIASOUP_LISTEN_IP=0.0.0.0

# ⚠️  必填：填服务器的**公网 IP** 或解析到公网 IP 的域名 A 记录
# 示例：MEDIASOUP_ANNOUNCED_IP=203.0.113.42
# 留空会导致远端浏览器只能拿到局域网/回环地址，完全建不连
MEDIASOUP_ANNOUNCED_IP=123.6.102.114

MEDIASOUP_RTC_MIN_PORT=30000
MEDIASOUP_RTC_MAX_PORT=30199

# ============================================================
# TURN 开启（公网对称 NAT fallback 必备）
# ============================================================
TURN_ENABLED=true

TURN_REALM=echochat
# MUST 改密码，否则 TURN 可能被互联网匿名中继流量滥用
TURN_USERNAME=echochat
TURN_PASSWORD=echochat_2026-1s32dswW@#

TURN_LISTEN_PORT=3478
TURN_TLS_PORT=5349
TURN_MIN_PORT=49160
TURN_MAX_PORT=49200

# ============================================================
# 公网部署 checklist（启动前必查）
# ------------------------------------------------------------
# 1. 所有 _REPLACE_WITH_*_ 占位符都已替换为真实强密码
# 2. MEDIASOUP_ANNOUNCED_IP 已设置为服务器公网 IP
# 3. 云安全组/iptables 放通以下端口：
#      - TCP  8085     Go backend API
#      - TCP  5173     前端用户端（如单独暴露）
#      - UDP  40000-40199  mediasoup RTC 流量
#      - TCP  40000-40199  mediasoup ICE-TCP fallback
#      - UDP  3478     coturn STUN/TURN
#      - TCP  3478     coturn
#      - TCP  5349     coturn TLS
#      - UDP  49160-49200  coturn 中继流量
# 4. scripts/deploy-public.sh 会自动进行一轮参数 + 端口校验
# ============================================================
