feat(deploy): install.sh 支持一行远程安装(从 GitHub 取脚本与安装包,并自动校验哈希)
用户侧只要一行: sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/LoveChengke/ClassHelper/master/deploy/install.sh)" 为让它成立改了四处(原来只支持"本地有脚本 + 本地有安装包"): - usage():读不到脚本文件时(bash -c "$(curl …)" / curl|bash)打印内置参数表, 不再去 awk 一个不存在的文件; - SCRIPT_PATH / SCRIPT_DIR:容忍非文件执行;与脚本同目录的模板本来也由安装包提供; - 交互问答统一走 /dev/tty(新增 read_prompt / can_prompt):原来判断 [ ! -t 0 ] 会让 curl|bash 下的所有提问被**静默跳过、直接按默认值装完**;并且刻意不退回 stdin —— 管道模式里 stdin 就是脚本本身,从 stdin 读会把脚本的下一行当成用户输入吃掉; - fetch_package:没给 --sha256 时自动取发布页上同名的 .sha256 来校验。一行安装的用户 不会自己去核哈希,不补这一步"校验"就只是把哈希记进日志;取不到时明确告警,而不是 假装校验过了。 文档:README 增加一行安装入口;docs/linux-deploy.md 的开头同样补上(该文件另有一处 改动不属于本次提交,故未纳入)。
This commit is contained in:
1 parent
f1edb42665
commit
d820926491
2 files changed
+140
-19
No files matched your search
@@ -95,6 +95,17 @@ ClassIsland(教室机器)──► 联动插件 ──► /api/integrations/
|
||||
| 已有 Linux 服务器 | **一键安装器 + `classhelper` 运维命令**(systemd / docker) | `sudo bash deploy/install.sh`(先 `--check` 体检);运维见 `classhelper help` |
|
||||
| 自定义 / 已有 Node 环境 | 手动部署免安装目录 | `pnpm dist:server` → `release-server/classhelper-server/` |
|
||||
|
||||
**Linux 服务器最快路径是一行命令**:脚本会自己从 GitHub Release 取最新版服务端包、取发布页上的
|
||||
`.sha256` 校验,再装成 systemd 服务并带上 `classhelper` 运维命令。完整步骤与验收清单见
|
||||
[docs/linux-deploy.md](docs/linux-deploy.md)。
|
||||
|
||||
```bash
|
||||
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/LoveChengke/ClassHelper/master/deploy/install.sh)"
|
||||
```
|
||||
|
||||
> 用 `bash -c "$(curl …)"` 而不是 `curl … | bash`:后者的 stdin 被脚本内容占用,交互问答会读不到输入。
|
||||
> 只想先看看这台机器能不能装:把末尾换成 `--check` 并去掉 `sudo`(只读,不改动系统)。
|
||||
|
||||
## 3. 快速开始
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user