forked from zhuanggenhua/BoardGame
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
166 lines (145 loc) · 7.32 KB
/
Copy path.env.example
File metadata and controls
166 lines (145 loc) · 7.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# 本文件为开发环境配置模板。复制为 .env 后填写实际值。
# 生产环境由 docker-compose.prod.yml 的 environment 覆盖数据库/Redis/端口等配置。
# 端口配置
VITE_DEV_PORT=4173
GAME_SERVER_PORT=18000
API_SERVER_PORT=18001
# 邮件服务配置 (可选 - 用于邮箱绑定功能)
# 使用 QQ 邮箱示例:
# 1. 登录 QQ 邮箱 - 设置 - 账户 - 开启 IMAP/SMTP 服务
# 2. 获取授权码(不是密码)
# 3. 填写下方配置
SMTP_HOST=smtp.qq.com
SMTP_PORT=465
SMTP_USER=your_email@qq.com
SMTP_PASS=your_authorization_code
# JWT 密钥 (生产环境必须修改)
JWT_SECRET=your-super-secret-key-change-in-production
# 单体部署下 game-server 反向代理目标(可选)
GAME_SERVER_PROXY_TARGET=http://127.0.0.1:18000
# 数据库连接(可选,默认 mongodb://localhost:27017/boardgame)
# 本地开发使用 localhost,Docker 会自动覆盖为 mongodb 容器名
MONGO_URI=mongodb://localhost:27017/boardgame
# 初始化管理员(仅开发/首次启动)
# ADMIN_EMAIL=
# ADMIN_PASSWORD=
# ADMIN_USERNAME=管理员
# 是否启用持久化存储(可选,默认 true,保持与生产一致)
# 如需在本地关闭(退回内存存储)可设为 false
# USE_PERSISTENT_STORAGE=false
# 是否启用训练数据采集(可选;默认仅 production 开启,其他环境默认关闭)
# 如需在非 production 本地验证,显式设为 true;如需在 production 关闭,显式设为 false
# ENABLE_TRAINING_DATA_CAPTURE=false
# TRAINING_DATA_DIR=memory/training-data
# 训练数据采集门槛(毫秒):仅采集对局时长 >= 门槛的样本
# 设为 0 关闭门槛;默认 10 分钟(600000)
# TRAINING_DATA_MIN_MATCH_DURATION_MS=600000
# Redis 缓存(可选)
# 本地开发:注释掉这两行,使用内存缓存
# Docker 部署:会自动覆盖为 redis 容器名
# REDIS_HOST=localhost
# REDIS_PORT=6379
# 前端认证 API 地址(可选,留空走 Vite 代理 /auth)
# 本地开发和 Docker 同域部署均无需配置,仅 Pages 分离部署才需要
# VITE_AUTH_API_URL=http://127.0.0.1:18001/auth
# 前端游戏服务地址(可选)
# 开发环境建议留空(走 Vite 代理,避免 CORS)
VITE_GAME_SERVER_URL=
# 前端资源基址(可选,默认 /assets,可配置为独立域名或对象存储)
# 本地部署:不配置此项,资源从服务器 /assets 加载(已打包进镜像)
# 对象存储:配置为 R2/OSS/COS 的公开访问域名
# VITE_ASSETS_BASE_URL=https://assets.example.com
# 前端音频资源基址(可选,默认继承 VITE_ASSETS_BASE_URL)
# 用于“图片走本地 /assets、音频走 R2/CDN”这类分流场景
# VITE_AUDIO_ASSETS_BASE_URL=https://assets.example.com
# UGC 资源基址(可选,默认 /assets)
# 用于拼接 UGC 包的 rules/view 入口路径
# VITE_UGC_ASSET_BASE_URL=https://ugc-assets.example.com
# 跨域白名单 (用于生产环境分离部署,多个地址用逗号隔开)
# WEB_ORIGINS=https://your-project.pages.dev,http://localhost:4173
# ========== Cloudflare R2 对象存储配置 ==========
# 用于上传/下载资源(npm run assets:upload / assets:download)
R2_ACCOUNT_ID=7c68c934b8012b36c8fccc36d4c2a78a
R2_ACCESS_KEY_ID=e2be60a49cb1935751eec0f5be8674eb
R2_SECRET_ACCESS_KEY=66b2098954aa77b4c3adafac857a7cc2f17f70ebe4f3caaf235991a7ef8fe321
R2_BUCKET_NAME=boardgame-assets
# ========== Cloudflare Pages 分离部署配置 ==========
# 前端部署到 Pages,后端部署到服务器时,需要配置:
#
# 1. 前端构建时(Pages 环境变量):
# VITE_BACKEND_URL=https://api.yourdomain.com
#
# 2. 后端 .env(服务器):
# WEB_ORIGINS=https://your-project.pages.dev
# (允许 Pages 域名跨域访问)
# ========== 第三方监控配置 ==========
# ========== Android / App WebView 构建配置 ==========
# Android 壳构建会执行 vite build --mode android,因此请把 App 专用地址放到 .env.android 或 .env.android.local
# GitHub Actions 的 Android Release / OTA workflow 也默认优先读取同名的 `VITE_BACKEND_URL`
# (推荐配成 GitHub Variables),`ANDROID_VITE_BACKEND_URL` 仅作为兼容别名。
#
# 典型示例:
# VITE_BACKEND_URL=https://api.easyboardgame.top
# VITE_ASSETS_BASE_URL=https://assets.easyboardgame.top
# CAPACITOR_APP_ID=top.easyboardgame.app
# CAPACITOR_APP_NAME=EasyBoardGame
#
# 后端生产环境若需要允许 App WebView 访问,请在服务器 .env 增加:
# APP_WEB_ORIGINS=http://localhost,https://localhost,capacitor://localhost
#
# Android 壳资源自动生成(默认使用 public/logos/logo_1_grid.png):
# ANDROID_ICON_SOURCE=public/logos/logo_1_grid.png
# ANDROID_SPLASH_SOURCE=public/logos/logo_1_grid.png
# ANDROID_ICON_BACKGROUND=#FFFFFF
# ANDROID_SPLASH_BACKGROUND=#FFFFFF
# ANDROID_ICON_INSET_RATIO=0.68
# ANDROID_ADAPTIVE_ICON_INSET_RATIO=0.72
# ANDROID_SPLASH_LOGO_RATIO=0.34
#
# Android 原生 APK 自更新(下载新包后调起系统安装)
# - manifest 通常放在对象存储:
# https://assets.easyboardgame.top/official/native-app-updates/android/stable/latest.json
# - 网页端“下载 App”入口默认也会优先读取这个 latest.json 里的 url
# - 如需手动兜底,可额外配置 VITE_ANDROID_APP_DOWNLOAD_URL 为 APK 直链
# VITE_ANDROID_APP_DOWNLOAD_URL=https://assets.easyboardgame.top/official/native-app-updates/android/stable/packages/0.5.1.apk
# - 客户端会检查是否有更新的 APK;若有则下载到本地并拉起系统安装器
# VITE_ANDROID_NATIVE_UPDATE_ENABLED=true
# VITE_ANDROID_NATIVE_UPDATE_MANIFEST_URL=https://assets.easyboardgame.top/official/native-app-updates/android/stable/latest.json
# VITE_ANDROID_NATIVE_UPDATE_CHANNEL=stable
#
# Android Release 签名(二选一):
# ANDROID_KEYSTORE_PATH=C:/secure/release-upload.keystore
# ANDROID_KEYSTORE_BASE64=
# ANDROID_KEYSTORE_PASSWORD=
# ANDROID_KEY_ALIAS=
# ANDROID_KEY_PASSWORD=
#
# CAPACITOR_APP_ID=top.easyboardgame.app
# CAPACITOR_APP_NAME=EasyBoardGame
# APP_WEB_ORIGINS=http://localhost,https://localhost,capacitor://localhost
#
# Android embedded OTA / Live Update(H5 本体热更新)
# - 默认推荐:App 继续用 embedded,前端 bundle 通过 OTA 更新
# - manifest 通常可放在对象存储:
# https://assets.easyboardgame.top/official/app-updates/android/stable/latest.json
# - GitHub Actions 推荐配置:
# Variables: VITE_BACKEND_URL / VITE_ASSETS_BASE_URL / ANDROID_OTA_AUTO_CHANNEL / CAPACITOR_APP_ID / CAPACITOR_APP_NAME
# Secrets: R2_ACCOUNT_ID / R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY / R2_BUCKET_NAME
# VITE_ANDROID_OTA_ENABLED=true
# VITE_ANDROID_OTA_ALLOW_DEBUG_APP=false
# VITE_ANDROID_OTA_MANIFEST_URL=https://assets.easyboardgame.top/official/app-updates/android/stable/latest.json
# VITE_ANDROID_OTA_CHANNEL=stable
# VITE_ANDROID_OTA_APP_READY_TIMEOUT_MS=15000
#
# Android 游戏资源包(package-managed 游戏下载)
# - 如不配置,客户端默认读取:
# ${VITE_ASSETS_BASE_URL}/mobile-packages/android/<channel>/games/<gameId>.json
# - 如需单独切到其他静态源,可显式覆盖:
# VITE_MOBILE_PACKAGE_MANIFEST_URL=https://assets.easyboardgame.top/official/mobile-packages/android
VITE_SENTRY_DSN=
SENTRY_DSN=
# ========== E2E 测试配置 ==========
# 测试 API 基础 URL(默认 http://localhost:18001)
TEST_API_BASE=http://localhost:18001
# 测试 API 认证令牌(测试环境必须配置)
TEST_API_TOKEN=test-token-12345