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