Add SVN management console

This commit is contained in:
lwt
2026-06-18 10:11:25 +08:00
parent 539729ae00
commit 771635b372
10 changed files with 1336 additions and 3 deletions
+18 -2
View File
@@ -8,6 +8,7 @@
- Node.js 20+,推荐 Node.js 22 LTS 或更高版本
- npm
- Subversion CLI`svn`
- 持久化可写目录:推荐 `/var/lib/sumi-work/`
- 对外端口:默认 `3030`,可通过 `PORT` 修改
@@ -16,6 +17,7 @@
```bash
node --version
npm --version
svn --version --quiet
```
## 2. 获取代码
@@ -63,6 +65,7 @@ export SUMI_STORAGE_DIR="/var/lib/sumi-work"
```bash
export SUMI_DATA_DIR="/var/lib/sumi-work/data"
export SUMI_UPLOAD_DIR="/var/lib/sumi-work/uploads"
export SUMI_SVN_DIR="/var/lib/sumi-work/svn"
export MAX_UPLOAD_BYTES=1073741824
export PLAYER_SESSION_TTL_MS=604800000
```
@@ -76,6 +79,7 @@ export PLAYER_SESSION_TTL_MS=604800000
- `SUMI_STORAGE_DIR`:运行时数据根目录,推荐放在部署目录外,例如 `/var/lib/sumi-work`
- `SUMI_DATA_DIR`:软件列表和玩家账号数据目录;设置后会覆盖 `SUMI_STORAGE_DIR/data`
- `SUMI_UPLOAD_DIR`:上传图标、安装包和 version.json 目录;设置后会覆盖 `SUMI_STORAGE_DIR/uploads`
- `SUMI_SVN_DIR`:SVN 工作副本和导出目录;设置后会覆盖 `SUMI_STORAGE_DIR/svn`
- `MAX_UPLOAD_BYTES`:最大上传文件大小,默认 1GB
- `PLAYER_SESSION_TTL_MS`:玩家登录有效期,默认 7 天
@@ -88,6 +92,7 @@ sudo mkdir -p /var/lib/sumi-work/data
sudo mkdir -p /var/lib/sumi-work/uploads/icons
sudo mkdir -p /var/lib/sumi-work/uploads/packages
sudo mkdir -p /var/lib/sumi-work/uploads/manifests
sudo mkdir -p /var/lib/sumi-work/svn
sudo chown -R "$USER":"$USER" /var/lib/sumi-work
```
@@ -112,6 +117,7 @@ npm start
- 下载中心:`http://服务器IP:3030/software.html`
- 玩家登录:`http://服务器IP:3030/login.html`
- 管理后台:`http://服务器IP:3030/admin/software.html`
- SVN 管理:`http://服务器IP:3030/admin/svn.html`
## 6. 用 PM2 部署
@@ -405,8 +411,10 @@ curl -i "http://127.0.0.1:3030/api/software/sumi-launcher/check-update?version=1
- `/var/lib/sumi-work/uploads/icons/`:上传的软件图标
- `/var/lib/sumi-work/uploads/packages/`:上传的软件安装包
- `/var/lib/sumi-work/uploads/manifests/`:上传的 version.json 文件
- `/var/lib/sumi-work/svn/`SVN 工作副本和导出文件
- `/var/lib/sumi-work/data/svn.json`SVN 仓库配置
未设置 `SUMI_STORAGE_DIR``SUMI_DATA_DIR``SUMI_UPLOAD_DIR` 时,本地开发会继续使用仓库里的 `server/data/``server/uploads/`。生产部署不要依赖这个默认路径。
未设置 `SUMI_STORAGE_DIR``SUMI_DATA_DIR``SUMI_UPLOAD_DIR``SUMI_SVN_DIR` 时,本地开发会继续使用仓库里的 `server/data/``server/uploads/``server/svn/`。生产部署不要依赖这个默认路径。
建议备份命令:
@@ -443,6 +451,13 @@ lsof -i :3030
- 检查 `MAX_UPLOAD_BYTES`
- 检查 `SUMI_UPLOAD_DIR``/var/lib/sumi-work/uploads/` 是否可写
SVN 管理不可用:
- 检查服务器是否安装 `svn``svn --version --quiet`
- 检查 `SUMI_SVN_DIR``/var/lib/sumi-work/svn/` 是否可写
- 检查仓库 URL、账号、密码和证书信任设置
- 写操作需要玩家登录并提供正确的 `ADMIN_TOKEN`
管理后台 401
- 确认前端输入的 `ADMIN_TOKEN` 与服务端环境变量一致
@@ -465,7 +480,7 @@ lsof -i :3030
cd /path/to/sumi.work
git pull origin main
npm ci
sudo mkdir -p /var/lib/sumi-work/data /var/lib/sumi-work/uploads/icons /var/lib/sumi-work/uploads/packages /var/lib/sumi-work/uploads/manifests
sudo mkdir -p /var/lib/sumi-work/data /var/lib/sumi-work/uploads/icons /var/lib/sumi-work/uploads/packages /var/lib/sumi-work/uploads/manifests /var/lib/sumi-work/svn
sudo chown -R "$USER":"$USER" /var/lib/sumi-work
export PORT=3030
export ADMIN_TOKEN="change-this-admin-token"
@@ -523,6 +538,7 @@ npm ci
node --check server/server.js
node --check assets/js/software.js
node --check assets/js/software-admin.js
node --check assets/js/svn-admin.js
systemctl restart sumi-work
curl -fsS http://127.0.0.1:3030/api/health
```