Add SVN management console
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user