# ============================================================ # StarLive 环境变量 —— 只需配置「启动必需 + 部署基础设施」。 # # 业务配置(站点地址、OAuth 登录、全部支付网关、功能开关、 # 经济参数、公告等)请在部署后进入 管理后台 → 系统设置 修改: # 保存在 Redis,即时生效,且优先于环境变量。 # 首次访问网页会引导创建管理员账号,无需预配置。 # ============================================================ # ── 必需 ───────────────────────────────────────────── # 自托管示例:redis://:password@localhost:6379 # Upstash 示例:rediss://default:TOKEN@xxx.upstash.io:6379(注意 TLS 用 rediss://) REDIS_URL=redis://localhost:6379 # JWT 会话签名密钥(生成:openssl rand -hex 32) JWT_SECRET=change-me-to-a-long-random-secret # ── 服务(有默认值,通常无需修改) ───────────────────── NODE_ENV=development PORT=3000 # 监听地址(默认 0.0.0.0;仅本机访问可设 127.0.0.1) # HOST=0.0.0.0 # 会话有效期(秒,默认 7 天) # SESSION_TTL=604800 # ── 部署基础设施(描述部署拓扑,随部署方式而定) ──────── # 前端构建产物目录(留空默认 apps/web/dist) # WEB_DIST= # 单端口部署时 /hls 的转发目标(MediaMTX HLS) # HLS_PROXY_TARGET=http://localhost:8888 # 推流服务(selfhosted = MediaMTX) STREAM_PROVIDER=selfhosted MEDIAMTX_API=http://mediamtx:9997 MEDIAMTX_AUTH_HOOK=http://server:3000/api/stream/hook # 录播 Worker FFMPEG_PATH=ffmpeg RECORDING_DIR=./recordings # Cookie(前端与 API 跨站部署时设 none / true) COOKIE_SAMESITE=lax COOKIE_SECURE=false # 前端外部 API 地址(写在 apps/web/.env,留空走同源) # VITE_API_BASE=https://api.example.com # ── 可选覆盖 ───────────────────────────────────────── # 强制指定超管用户 ID(逗号分隔)。一般无需配置, # 首次部署由网页初始化向导创建管理员。 # ADMIN_USER_IDS= # mock 沙箱支付网关:可无条件入账,仅限联调; # 非生产环境默认开启,生产环境默认关闭。 # PAYMENT_MOCK_ENABLED= # ── 环境变量兜底(可选,不推荐) ──────────────────────── # 以下配置推荐在管理后台设置;如偏好 env 注入(如 CI/IaC 管理密钥), # 同名变量仍作为「后台未设置时的兜底值」被读取: # APP_BASE_URL 站点对外地址 # OAUTH_PROVIDER_NAME / OAUTH_CLIENT_ID / OAUTH_CLIENT_SECRET / # OAUTH_REDIRECT_URI / OAUTH_AUTH_URL / OAUTH_TOKEN_URL / OAUTH_USERINFO_URL # EPAY_PID / EPAY_KEY / EPAY_GATEWAY 易支付 # ALIPAY_APP_ID / ALIPAY_PRIVATE_KEY / ALIPAY_PUBLIC_KEY / ALIPAY_GATEWAY # WECHAT_APP_ID / WECHAT_MCH_ID / WECHAT_API_KEY / WECHAT_SERIAL_NO / WECHAT_PRIVATE_KEY # STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET / STRIPE_CURRENCY