# 备课平台 → 云服务器迁移部署说明

> 迁移时间：2026-09-07　|　云服务器：111.231.0.226（OpenCloudOS 9.6 / x86_64 / 40G）
> 迁移范围：完整项目（源码 + prisma/dev.db 全部数据 + uploads 导出文件 + .env 配置 + seed 内容），**原样迁移**，云上本地数据校验一致（8 章 / 29 课时 / 126 知识点 / 6 案例 / 8 教案）。

## 一、当前状态

| 项 | 值 |
|---|---|
| 代码位置 | `/root/apps/ai-lesson-prep`（tar.gz 备份在 `/root/ai-lesson-prep-full.tar.gz`） |
| 运行方式 | systemd：`ai-lesson-prep.service`（开机自启 + 崩溃自动重启） |
| Node | v22.16.0（`/usr/local/bin/node`，npmmirror 二进制安装） |
| 监听 | **`0.0.0.0:80`**（80 直连，无需端口号），服务 `active`，云内/公网均验证 200 |
| 数据库 | `prisma/dev.db`（SQLite，随项目原样迁移，含全部整学期数据/案例/教案/导出记录） |
| 导出文件 | `uploads/exports` 60 个文件原样迁移 |
| 公网访问 | **http://111.231.0.226** 已验证可用（登录/备课/教案 API 全通，8 教案数据一致） |

## 二、访问

**http://111.231.0.226**（80 端口直连，admin / Admin@123456）——已从公网验证登录/备课/教案 API 正常。

> 若需 HTTPS 再告知（可上 nginx + 证书反代）。

## 三、运维命令（SSH root@111.231.0.226）

```bash
systemctl status ai-lesson-prep        # 状态
systemctl restart ai-lesson-prep       # 重启
journalctl -u ai-lesson-prep -f        # 看日志
systemctl stop ai-lesson-prep          # 停止
```

## 四、维护注意

- 修改 `/root/apps/ai-lesson-prep/.env` 后需同时重新生成 `/etc/ai-lesson-prep.env`（去引号版本，systemd `EnvironmentFile` 使用）再 `systemctl restart ai-lesson-prep`。
- 云机在境内，DeepSeek API 直连即可（.env 未设代理）。
- 备份建议（可选 cron）：每日 `tar czf /root/backup/alp-$(date +%F).tar.gz -C /root/apps ai-lesson-prep/prisma/dev.db ai-lesson-prep/uploads`。
- 本机（192.168.31.76:3100）演示环境仍保留，可与云环境并行。

## 五、回滚/更新

- 更新：本机重新 `tar czf`（同打包命令）→ scp 到 `/root/` → `cd /root/apps/ai-lesson-prep && tar xzf` 覆盖 → `npm install`（如需）→ `npm run build` → `systemctl restart ai-lesson-prep`。
