diff --git a/README.md b/README.md
index 144c279..2bdee77 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# 班级小助手(Class Helper)
班级信息管理系统。一个 pnpm monorepo,一份代码产出四个交付物:**后端服务**、**Web 管理端**(教师 / 管理员)、
-**桌面客户端**(学生端 / 教室机器)与 **ClassIsland 联动插件**(装在教室的 ClassIsland 上)。**当前版本 1.1.0**。
+**桌面客户端**(学生端 / 教室机器)与 **ClassIsland 联动插件**(装在教室的 ClassIsland 上)。**当前版本 1.1.1**。
核心链路:
diff --git a/deploy/.env.example b/deploy/.env.example
index 76011d5..2555820 100644
--- a/deploy/.env.example
+++ b/deploy/.env.example
@@ -7,7 +7,7 @@
SERVER_PORT=4000
# 应用版本(镜像标签)
-APP_VERSION=1.1.0
+APP_VERSION=1.1.1
# MySQL 配置
MYSQL_ROOT_PASSWORD=请改成强密码_root
diff --git a/deploy/.env.sqlite.example b/deploy/.env.sqlite.example
index 387aca5..85af21e 100644
--- a/deploy/.env.sqlite.example
+++ b/deploy/.env.sqlite.example
@@ -8,7 +8,7 @@
SERVER_PORT=4000
# 应用版本(镜像标签)
-APP_VERSION=1.1.0
+APP_VERSION=1.1.1
# JWT 签名密钥(必填,必须 ≥32 位;不能包含 secret / change-me 等示例词)
# 生成:node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
diff --git a/deploy/docker-compose.sqlite.yml b/deploy/docker-compose.sqlite.yml
index 0bafaed..3b6f657 100644
--- a/deploy/docker-compose.sqlite.yml
+++ b/deploy/docker-compose.sqlite.yml
@@ -23,7 +23,7 @@ services:
context: ..
dockerfile: deploy/Dockerfile
target: runtime
- image: classhelper-server:${APP_VERSION:-1.1.0}
+ image: classhelper-server:${APP_VERSION:-1.1.1}
restart: unless-stopped
environment:
NODE_ENV: production
diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml
index ebe2463..c1024b9 100644
--- a/deploy/docker-compose.yml
+++ b/deploy/docker-compose.yml
@@ -60,7 +60,7 @@ services:
context: ..
dockerfile: deploy/Dockerfile
target: runtime
- image: classhelper-server:${APP_VERSION:-1.1.0}
+ image: classhelper-server:${APP_VERSION:-1.1.1}
restart: unless-stopped
environment:
NODE_ENV: production
diff --git a/deploy/install.sh b/deploy/install.sh
index a8a7266..d26a598 100644
--- a/deploy/install.sh
+++ b/deploy/install.sh
@@ -17,7 +17,7 @@
# 脚本会自动从 GitHub Release 取**最新版**服务端安装包,并取发布页上同名的 .sha256 做校验,
# 所以整条链路只需要这一行。要加参数就接在最后:`sudo bash /tmp/classhelper-install.sh --check`
# --check 只体检、不安装(不需要 root) --yes 全部默认、不交互
-# --version 1.1.0 装指定版本 --port 8080 自定义端口
+# --version 1.1.1 装指定版本 --port 8080 自定义端口
# --admin-password-stdin 从 stdin 读初始管理员密码
#
# ⚠ 别写成 `bash -c "$(curl …)" --check`:`bash -c '代码' 第一个参数` 里那个参数会变成 **$0**、
@@ -529,7 +529,7 @@ resolve_package_url() {
tag="$(github_latest_tag)" || true
if [ -z "$tag" ]; then
die "取不到 GitHub 最新版本(本机可能没有外网)。请用 --package 指定安装包,例如:
- sudo bash install.sh --package /tmp/classhelper-server-linux-x64-1.1.0.tar.gz"
+ sudo bash install.sh --package /tmp/classhelper-server-linux-x64-1.1.1.tar.gz"
fi
fi
ver="${tag#v}"
diff --git a/deploy/package.runtime.json b/deploy/package.runtime.json
index a8c6e46..27a25e4 100644
--- a/deploy/package.runtime.json
+++ b/deploy/package.runtime.json
@@ -1,6 +1,6 @@
{
"name": "classhelper-server-runtime",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"type": "module",
"description": "班级小助手服务端运行时(安装包 / 容器内置)",
diff --git a/docs/production.md b/docs/production.md
index df716aa..5f76729 100644
--- a/docs/production.md
+++ b/docs/production.md
@@ -4,7 +4,7 @@
| 形态 | 适用场景 | 产物 | 本机验证情况 |
| --------------------- | -------------------------------------------- | -------------------------------------------------------- | -------------------------------------- |
-| **A. Windows 安装包** | 学校机房、教师办公电脑(单机即完整系统) | `release-server/班级小助手服务端-<版本>-x64-setup.exe` | ✅ 已完整实测(静默安装/启停/卸载/UI) |
+| **A. Windows 安装包** | 学校机房、教师办公电脑(单机即完整系统) | `releases/server/<版本>/安装包/班级小助手服务端-<版本>-x64-setup.exe` | ✅ 已完整实测(静默安装/启停/卸载/UI) |
| **B. Docker + MySQL** | 云服务器、多终端共享一套数据(推荐长期方案) | `deploy/Dockerfile` + `deploy/docker-compose.yml` | ⚠️ 文件已提供,本机无 Docker 未实测 |
| **C. Linux 原生部署** | 已有 Linux 服务器(systemd,SQLite 或 MySQL) | [`deploy/install.sh`](../deploy/install.sh) + `classhelper` 运维命令 | ⚠️ 本机无 Linux,实机验收见 [linux-deploy.md](linux-deploy.md) §10 |
| **D. 手动部署** | 已有 Node 环境的服务器、需要自定义 | `pnpm dist:server` 的免安装目录 | ✅ 免安装目录已实测(163 项端到端) |
@@ -22,10 +22,10 @@ pnpm dist:server -- --reuse-deps # 迭代打包:复用已安装依赖,跳
产物:
-| 路径 | 说明 |
-| ----------------------------------------------------- | ----------------------------------------------- |
-| `release-server/classhelper-server/` | 免安装目录,可直接拷到任意 Windows x64 机器运行 |
-| `release-server/班级小助手服务端-1.1.0-x64-setup.exe` | 安装程序(约 34 MB,NSIS) |
+| 路径 | 说明 |
+| ----------------------------------------------------------------------- | ----------------------------------------------- |
+| `releases/server/<版本>/免安装/` | 免安装目录,可直接拷到任意 Windows x64 机器运行 |
+| `releases/server/<版本>/安装包/班级小助手服务端-<版本>-x64-setup.exe` | 安装程序(约 62 MB,NSIS) |
打包内容:内置 **Node 运行时**(目标机无需安装 Node.js)、后端产物、Web 管理端产物、
生产依赖(真实目录,非软链)、迁移 SQL、`.env`(随机 JWT 密钥)、启停脚本。
@@ -35,7 +35,7 @@ pnpm dist:server -- --reuse-deps # 迭代打包:复用已安装依赖,跳
双击安装程序即可,**无需管理员权限**(当前用户级安装):
- 安装目录:`%LOCALAPPDATA%\Programs\ClassHelperServer`
-- 静默安装:`"班级小助手服务端-1.1.0-x64-setup.exe" /S`
+- 静默安装:`"班级小助手服务端-1.1.1-x64-setup.exe" /S`
- 开始菜单:启动服务 / 停止服务 / 重启服务 / 打开管理端 / 使用说明 / 卸载
- 桌面:`班级小助手服务端.lnk`(打开管理端)
- 自动加入当前用户开机自启(`HKCU\...\CurrentVersion\Run`)
@@ -163,7 +163,7 @@ Linux 包由 GitHub Actions 在 ubuntu runner 上构建(平台相关的依赖
```bash
# 开发机:做出 Linux 包并连同脚本一起拷到服务器
pnpm dist:server:linux
-scp release-server/classhelper-server-linux-x64-*.tar.gz deploy/install.sh deploy/verify-linux.sh \
+scp releases/server/*/linux-x64/classhelper-server-linux-x64-*.tar.gz deploy/install.sh deploy/verify-linux.sh \
root@<服务器>:/tmp/
# 服务器上
@@ -176,7 +176,7 @@ sudo bash /tmp/install.sh # 交互式:选形态 → 选目录
```bash
printf '%s\n' 'StrongPass!2026' | sudo bash /tmp/install.sh --yes \
--dir /srv/classhelper --port 8080 --admin-password-stdin \
- --package /tmp/classhelper-server-linux-x64-1.1.0.tar.gz
+ --package /tmp/classhelper-server-linux-x64-1.1.1.tar.gz
```
安装器做的事:识别发行版与包管理器补依赖 → 建系统用户 `classhelper` → 下载包并校验 sha256 →
@@ -221,7 +221,7 @@ printf '%s\n' 'StrongPass!2026' | sudo bash /tmp/install.sh --yes \
没有 systemd 的容器里可以用安装器的"只铺文件"模式,再自己托管进程:
```bash
-sudo bash /tmp/install.sh --yes --force --package /tmp/classhelper-server-linux-x64-1.1.0.tar.gz
+sudo bash /tmp/install.sh --yes --force --package /tmp/classhelper-server-linux-x64-1.1.1.tar.gz
sudo -u classhelper /opt/classhelper/runtime/node/bin/node /opt/classhelper/server/dist/index.js
```
@@ -279,7 +279,7 @@ pnpm install
pnpm build:shared
pnpm --filter @classhelper/server build
pnpm --filter @classhelper/web-admin build
-pnpm dist:server -- --reuse-deps # 得到 release-server/classhelper-server 免安装目录
+pnpm dist:server -- --reuse-deps # 得到 releases/server/<版本>/免安装/ 免安装目录
```
把该目录拷贝到目标机,编辑 `.env`(端口、数据库、密钥、跨域),然后:
diff --git a/package.json b/package.json
index 832c8d5..da4c804 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "class-helper",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"description": "班级小助手 - 班级信息管理系统(Web 管理端 + 后端服务 + 桌面客户端)",
"packageManager": "pnpm@11.8.0",
diff --git a/packages/classisland-plugin/manifest.yml b/packages/classisland-plugin/manifest.yml
index a730f05..e5946b2 100644
--- a/packages/classisland-plugin/manifest.yml
+++ b/packages/classisland-plugin/manifest.yml
@@ -14,6 +14,6 @@ description: |-
4. 可选:把班级小助手上排好的课表镜像回 ClassIsland。
entranceAssembly: 'ClassHelper.ClassIslandPlugin.dll'
url: https://github.com/LoveChengke/ClassHelper
-version: 1.1.0.0
+version: 1.1.1.0
apiVersion: 2.0.0.0
author: 班级小助手
diff --git a/packages/classisland-plugin/src/Services/BridgeService.cs b/packages/classisland-plugin/src/Services/BridgeService.cs
index 7962b30..fb6f0f1 100644
--- a/packages/classisland-plugin/src/Services/BridgeService.cs
+++ b/packages/classisland-plugin/src/Services/BridgeService.cs
@@ -495,7 +495,7 @@ public sealed class BridgeService : INotifyPropertyChanged, IDisposable
/* ---------------------------------------------------------------- 内部实现 */
/// 插件版本(与 manifest.yml / csproj 保持一致)。
- private const string PluginVersion = "1.1.0.0";
+ private const string PluginVersion = "1.1.1.0";
/// ClassIsland 版本读不到时不该让上报失败(开发版可能为 null)。
private static string SafeAppVersion()
diff --git a/packages/desktop-client/package.json b/packages/desktop-client/package.json
index d9b11d2..d98216b 100644
--- a/packages/desktop-client/package.json
+++ b/packages/desktop-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@classhelper/desktop-client",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"description": "班级小助手 EXE 客户端(Electron + Vue 3 + Element Plus + Socket.IO + IndexedDB 离线缓存)",
"author": "Class Helper",
diff --git a/packages/server/package.json b/packages/server/package.json
index 9f76ad5..7f319e9 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,6 +1,6 @@
{
"name": "@classhelper/server",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"description": "班级小助手后端服务:REST API + Socket.IO 实时推送 + Prisma 数据访问",
"type": "module",
diff --git a/packages/server/scripts/verify-classisland.mjs b/packages/server/scripts/verify-classisland.mjs
index 448110c..35a743d 100644
--- a/packages/server/scripts/verify-classisland.mjs
+++ b/packages/server/scripts/verify-classisland.mjs
@@ -210,7 +210,7 @@ async function main() {
// ---------------------------------------------------------------- 3. 上报(状态 + 课表 + 节次)
const reportBody = {
- pluginVersion: '1.1.0.0',
+ pluginVersion: '1.1.1.0',
classIslandVersion: '2.1.0.0',
state: {
inClass: true,
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 18f4fd3..127a025 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@classhelper/shared",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"description": "班级小助手 - 三端共享的类型、常量与工具函数",
"type": "module",
diff --git a/packages/web-admin/package.json b/packages/web-admin/package.json
index 575f2a4..0ebb0f4 100644
--- a/packages/web-admin/package.json
+++ b/packages/web-admin/package.json
@@ -1,6 +1,6 @@
{
"name": "@classhelper/web-admin",
- "version": "1.1.0",
+ "version": "1.1.1",
"private": true,
"description": "班级小助手 Web 管理端(Vue 3 + Vite + Element Plus)",
"type": "module",