# 复制为 .env.docker 后修改 # cp .env.docker.example .env.docker # PostgreSQL(生产务必修改) POSTGRES_PASSWORD=thebet365 # 发布镜像版本;部署脚本使用 --tag 时会写回服务器上的 .env.docker IMAGE_TAG=latest # JWT(生产务必修改) JWT_SECRET=change-me-in-production-use-long-random-string JWT_PLAYER_EXPIRES=24h JWT_ADMIN_EXPIRES=2h JWT_AGENT_EXPIRES=8h # 首次部署如需写入默认数据,可临时改为 true;灌完后改回 false 并重启 api SEED_DATABASE=false # 迁移由 deploy-first/deploy-update 脚本执行;仅应急兼容时改为 true RUN_MIGRATIONS_ON_START=false # 可选:覆盖 admin 初始密码(仅 seed/重置时生效) # ADMIN_INITIAL_PASSWORD=YourStrongPasswordHere # 对外端口(宝塔/Nginx 反代推荐只暴露前端,API 经反向代理访问) BIND_ADDR=127.0.0.1 ADMIN_PORT=8081 # ── 四套 player 镜像 tag 与宿主机端口 ────────────────────────── # main(暗金主站) PLAYER_IMAGE_TAG=main PLAYER_PORT=8082 # theme-2(Pinnacle 蓝白) PLAYER2_IMAGE_TAG=theme-2 PLAYER2_PORT=8083 # theme-3(统一移动端视觉) PLAYER3_IMAGE_TAG=theme-3 PLAYER3_PORT=8084 # theme-4(海军蓝暗色极简) PLAYER4_IMAGE_TAG=theme-4 PLAYER4_PORT=8085 # CORS 白名单:四个玩家站域名 + 管理后台(逗号分隔,勿含空格,勿带末尾 /) # CORS_ORIGINS=https://www.example.com,https://theme2.example.com,https://theme3.example.com,https://theme4.example.com,https://admin.example.com # 管理端构建时注入:生成邀请注册链接的玩家端公网地址(勿带末尾 /) VITE_PLAYER_URL=https://www.thebet365.net # 备份保留天数;留空表示不自动清理 BACKUP_RETENTION_DAYS= # API 安全开关 # CORS_ORIGINS=https://player.example.com,https://admin.example.com ENABLE_SWAGGER=false # 创蓝短信(Chuanglan,仅 API 使用) CHUANGLAN_ACCOUNT=your_account CHUANGLAN_PASSWORD=your_password CHUANGLAN_ENDPOINT=https://sgap.253.com/send/sms CHUANGLAN_CONNECT_TIMEOUT_MS=10000 CHUANGLAN_READ_TIMEOUT_MS=10000 SMS_CODE_TTL_SECONDS=300 SMS_RATE_LIMIT_SECONDS=60 # 联调时在 .env.docker 设为 true,日志会输出验证码与 sessionId(对应创蓝批次号);上线前改回 false SMS_DEBUG_LOG_CODE=false