补充说明
本教程介绍 StudyBuddy 从源码编译、发布 GitHub Release 到目标服务器一键安装、卸载、备份、恢复的完整流程,适用于个人项目自建发布链路。
项目:StudyBuddy|小学生刷题自测系统 仓库:https://github.com/meimolihan/StudyBuddy
安装与卸载
安装 / 升级
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/install.sh)"
- 标准静默安装 / 升级(指定端口与安装目录)
bash scripts/install.sh -p 8080 -d /var/lib/StudyBuddy -y
- 远程静默安装
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/install.sh)" -p 8080 -d /var/lib/StudyBuddy -y
- 未指定
-s且本地无源码时,脚本自动从 GitHub Release 下载对应架构(amd64/arm64)二进制(ELF 魔数 + 版本自检 + content-length 三重校验);也可用-s <目录>指定源码目录由本机 Go ≥1.21 编译。 - 国内网络可用镜像仓库:
STUDYBUDDY_REPO=https://ghfast.top/https://github.com/meimolihan/StudyBuddy.git。
卸载命令
bash scripts/uninstall.sh -y --purge
- 远程一键卸载
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/uninstall.sh)" -y --purge
备份与恢复
备份数据脚本
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/studybuddy_backup.sh) "/var/lib/StudyBuddy/backup" 6
- 将备份脚本添加到系统定时任务
# 1.下载脚本到 /usr/local/bin/studybuddy_backup
curl -fsSL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/studybuddy_backup.sh -o /usr/local/bin/studybuddy_backup
# 2.增加执行权限
chmod +x /usr/local/bin/studybuddy_backup
# 3.测试运行一次(目录/保留份数:/var/lib/StudyBuddy/backup 保留6份)
studybuddy_backup /var/lib/StudyBuddy/backup 6
# 4.追加 crontab(root):每日凌晨2点30分执行,防重复追加
(crontab -l 2>/dev/null | grep -Fq '/usr/local/bin/studybuddy_backup /var/lib/StudyBuddy/backup 6') || (crontab -l 2>/dev/null; echo '30 2 * * * /usr/local/bin/studybuddy_backup /var/lib/StudyBuddy/backup 6 >> /var/log/studybuddy_backup.log 2>&1') | crontab -
# 5.验证定时任务是否写入成功
crontab -l
恢复数据脚本
- 恢复 /var/lib/StudyBuddy/backup 目录最新的备份
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/StudyBuddy/main/scripts/studybuddy_recover.sh) /var/lib/StudyBuddy/backup
脚本命令
| 命令 | 说明 |
|---|---|
bash scripts/install.sh [-p PORT] [-d APP_DIR] [-s SRC_DIR] [-b] [-y] |
安装 / 升级为 systemd 服务 |
bash scripts/uninstall.sh [-y] [--purge|--keep-data] [-q] |
卸载 studybuddy |
bash scripts/studybuddy_backup.sh [目录] [保留份数] |
备份 data/archive 为 tar.gz(参数顺序可互换,在线不停服) |
bash scripts/studybuddy_recover.sh [目录] [文件名] |
从备份目录恢复最新(或指定)备份 |
/usr/local/bin/studybuddy version |
显示版本信息 |
/usr/local/bin/studybuddy help |
显示 CLI 全命令表 |
/usr/local/bin/studybuddy status|start|stop|restart |
服务管理快捷命令 |
日常管理命令
| 操作 | 命令 |
|---|---|
| 启动 | systemctl start studybuddy |
| 关闭 | systemctl stop studybuddy |
| 重启 | systemctl restart studybuddy |
| 状态 | systemctl status studybuddy |
| 查看实时日志 | journalctl -u studybuddy -f |
| 查看最近 30 行日志 | journalctl -u studybuddy -n 30 --no-pager |
| 关闭开机自启 | systemctl disable studybuddy |
| 端口放行 | firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload(firewalld) |
数据目录说明
- 默认安装目录:
/var/lib/StudyBuddy(二进制、content/教材树、wallpapers/壁纸、data/、archive/均在其下)data/global/global.db:全局账号库(账号、角色、邀请码)data/students/{id}.db:学生私有库(进度、错题、自测记录)archive/{id}/:归档试卷
- 安装记录:
/etc/studybuddy.conf(APP_DIR/BACKUP_DIR等键,备份/恢复脚本自动读取) - 运行参数均可通过环境变量覆盖:
STUDYBUDDY_HOME、STUDYBUDDY_PORT、STUDYBUDDY_CONTENT、STUDYBUDDY_DATA、STUDYBUDDY_ARCHIVE、STUDYBUDDY_PASS(自测达标线,默认 80)、STUDYBUDDY_PER_ROUND、STUDYBUDDY_SINGLE、STUDYBUDDY_MULTI - 首次使用:浏览器打开后注册首位账号,自动成为管理员(无默认账号密码);管理员在管理页生成邀请码,后续注册者默认「学生」角色
- 教材内容(
content/)与壁纸(wallpapers/)替换免编译,文件就位后重启服务生效(content 树只在启动时扫描一次)