Files
Scoreboard/console/config.json
T
AskaEth 005b51b2ec fix: 数据目录移出安装目录,修掉「覆盖安装/卸载即丢数据」
根因:数据目录是 <安装目录>\data(config.yaml 的 dataDir 相对服务端工作目录),
而 electron-builder 的卸载器结尾执行 RMDir /r $INSTDIR,且覆盖安装会先跑旧卸载器
(installSection.nsh:52 的 uninstallOldVersion)→ 赛事库/规则/用户/审计/上传图片
连同安装目录被整个删除,再装新版。卸载一次同样如此。

- 服务端新增 -data <dir>(主命令、backup、passwd 三处),非空时覆盖 config.yaml 的
  dataDir;不传时行为完全不变(兼容便携/手工运行)
- Console 把数据指到当前用户目录 %LOCALAPPDATA%\ScoreboardConsole\data(卸载器不会碰
  这里;没有用 app.getPath('userData'),因为 %APPDATA%\<AppName> 正是被删的那个)
- 一次性迁移:目标为空且 <安装目录>\data 有数据时整体改名过去;两边都有数据时不动作
  只记警告;任何失败都保留原地数据、绝不删除
- passwd 也带 -data(否则重置的是安装目录下那个空库里的账号)
- deploy/backup.bat 指向同一数据目录
- 文档:部署指南新增「数据放在哪里(升级/卸载都不会删)」+ 备份/恢复/迁移路径改写,
  上线检查清单与使用手册同步

自检:服务端 12 包全绿;console 语法 14 文件 + datadir 单测 11/11;backup.bat 保持纯 ASCII。
2026-09-10 09:17:56 +08:00

40 lines
848 B
JSON

{
"server": {
"exe": "scoreboard.exe",
"args": ["-config", "config.yaml"],
"dataDir": "",
"host": "127.0.0.1",
"port": 19540,
"autoStart": true,
"healthIntervalMs": 5000,
"restartDelayMs": 3000,
"maxRestarts": 0,
"shutdownPath": "/api/shutdown",
"shutdownTimeoutMs": 5000,
"healthyResetMs": 60000
},
"display": {
"selection": "all-secondary",
"displays": [],
"pages": ["standings", "medals", "individual", "results"],
"pageParam": "page",
"kiosk": true,
"ignoreMouse": true,
"reloadEveryHours": 24,
"waitForServerMs": 20000,
"backgroundColor": "#0b0f1a"
},
"startup": {
"openAtLogin": false
},
"admin": {
"width": 1280,
"height": 860
},
"log": {
"maxLines": 2000,
"file": "logs/console.log",
"maxFileBytes": 4194304
}
}