# ============================================================
# 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
MINIO_PUBLIC_BASE_URL=http://localhost:9200/echochat

# ============================================================
# 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
