Files
Scoreboard/devdocs/10-部署与现场方案.md
T

87 lines
3.2 KiB
Markdown

# 10 · 部署与现场方案
> 所属:运动会积分榜系统 · 开发文档集
> 版本:v0.1(讨论稿) · 2026-09-09
> 上游:[README](./README.md) · 相关:[03-技术选型与架构](./03-技术选型与架构.md)、[08-安全与可靠性](./08-安全与可靠性.md)
> ⚠️ 本篇依赖 D8(现场环境)与 D10(技术栈)的确认结果。
---
## 1. 运行形态
- 单进程 Node 服务,监听 `0.0.0.0:8080`。
- 静态资源由服务端直接托管:
| 地址 | 用途 |
| --- | --- |
| `http://<现场IP>:8080/` | 导航页(两个入口) |
| `http://<现场IP>:8080/display` | 大屏 |
| `http://<现场IP>:8080/admin` | 管理面板 |
- 数据目录 `data/`(数据库、备份、上传的 logo)与代码分离,升级不丢数据。
## 2. 配置
- `.env` 或 `config.json`:端口、数据目录、会话密钥、赛事默认值、大屏 key。
- 首次启动自动:建库 → 迁移 → 建默认管理员 → 打印初始密码。
## 3. 现场部署包(绿色包)
```
scoreboard-v1.0.0-win-x64.zip
├── runtime/node.exe (Linux 下为 runtime/bin/node)
├── app/ (服务端构建产物 + 前端 dist)
├── data/ (空目录,首次运行自动初始化)
├── start.bat / start.sh
└── 使用说明.txt
```
现场操作:**解压 → 双击 `start.bat` → 浏览器打开提示的地址**。
> 不依赖现场装 Node、不依赖外网、不依赖包管理器。这是把「Node 需要运行时」这个缺点消掉的方案,也是选型 A 能站住的关键。
## 4. 大屏机配置(kiosk 模式)
```bash
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --kiosk --incognito \
--disable-pinch --noerrdialogs --disable-session-crashed-bubble \
--autoplay-policy=no-user-gesture-required \
http://192.168.x.x:8080/display
# Linux
chromium --kiosk --incognito --disable-pinch --noerrdialogs http://192.168.x.x:8080/display
```
现场额外设置:
- 关闭屏保 / 休眠 / 自动更新。
- 设置开机自启。
- 关闭系统通知弹窗(否则会盖在大屏上)。
## 5. 网络
- 建议独立路由器 / 交换机,不与办公网混用。
- 服务端主机设固定 IP(或 DHCP 保留)。
- 有线优先;无线投屏只作为备份手段。
- 若 D9 选公网访问:加反向代理 + HTTPS + 访问口令,并做安全评审(见 [08-安全与可靠性](./08-安全与可靠性.md))。
## 6. 备用与切换
| 项 | 方案 |
| --- | --- |
| 备机 | 同架构备用机 + 同一份部署包 + 最新备份,10 分钟内可接管 |
| 备用大屏 | 一台预装浏览器的笔记本,打开同一 URL 即顶替 |
| 备用网络 | 一个备用路由器 / 热点,SSID 与 IP 段预先规划 |
| 备用电源 | 主机接 UPS |
## 7. 上线检查清单
- [ ] 服务端开机自启 + 崩溃自拉起已验证
- [ ] 数据库自动备份目录可写、有历史文件
- [ ] 大屏机 kiosk 自启、分辨率正确、字体已本地化
- [ ] 管理端各角色账号可登录、权限正确
- [ ] 现场 IP 固定,二维码 / 地址已打印贴在操作台
- [ ] 断网 / 断电演练通过
- [ ] 磁盘剩余空间充足(建议 ≥10GB)