Switch production deployment from Docker to PM2 on Ubuntu.

Add Express gateway, ecosystem config, and one-click install with native PostgreSQL, Node, and Python venv on port 23566.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-28 11:52:20 +08:00
parent e329d3398a
commit e797d188ee
20 changed files with 1578 additions and 714 deletions
+30 -66
View File
@@ -4,37 +4,22 @@ Secondary School Grade Archive — 多用户 Web 系统:成绩录入、占比
**版权所有 © 马建军** · 微信 **dekun03** · 手机 **18364911125**
> 完整版权说明见 [COPYRIGHT.md](./COPYRIGHT.md) · 许可证见 [LICENSE](./LICENSE)
> [COPYRIGHT.md](./COPYRIGHT.md) · [LICENSE](./LICENSE)
**代码仓库:** [https://git.bz121.com/dekun/secondary-school-grade-archive.git](https://git.bz121.com/dekun/secondary-school-grade-archive.git)
**仓库:** [https://git.bz121.com/dekun/secondary-school-grade-archive.git](https://git.bz121.com/dekun/secondary-school-grade-archive.git)
---
## 文档索引
## 文档
| 文档 | 说明 |
|------|------|
| [docs/DEPLOY.md](./docs/DEPLOY.md) | **Ubuntu 一键 Docker 部署**/opt、端口 23566 |
| [docs/USAGE.md](./docs/USAGE.md) | **用户使用说明** |
| [COPYRIGHT.md](./COPYRIGHT.md) | 版权与授权 |
| [LICENSE](./LICENSE) | 许可证全文 |
| [docs/DEPLOY.md](./docs/DEPLOY.md) | **Ubuntu PM2 一键部署** |
| [docs/USAGE.md](./docs/USAGE.md) | 用户使用说明 |
---
## 功能概览
- 用户注册/登录,数据按账号隔离
- 学生管理(**初中 / 高中**学段、年级、班级)
- 成绩录入:周考 / 月考 / 期末(总分、得分、占比)
- 分科曲线:上升绿、下降红、大幅波动高亮
- 错题库:上传图片 → PaddleOCR → Ollama 生成解法
- 成绩 CSV 导出、备份脚本
---
## Ubuntu 一键部署(生产环境)
**要求:** root 用户 · Ubuntu · Docker · 目录 `/opt/secondary-school-grade-archive` · 端口 **23566**
## Ubuntu 一键部署(PM2
```bash
git clone https://git.bz121.com/dekun/secondary-school-grade-archive.git /opt/secondary-school-grade-archive
@@ -43,74 +28,53 @@ chmod +x deploy/*.sh
bash deploy/install.sh
```
部署完成后访问:`http://<服务器IP>:23566`
- 安装目录:`/opt/secondary-school-grade-archive`
- 访问地址:`http://<服务器IP>:23566`
- 进程管理:`pm2 status` / `pm2 logs`
脚本会自动:检测系统环境 → 安装 Docker(若缺失)→ 生成 `.env` → 构建并启动服务。
详细说明、运维命令、故障排查见 **[docs/DEPLOY.md](./docs/DEPLOY.md)**。
> **反向代理(HTTPS/域名)不包含在本项目中**,请自行配置 Nginx/Caddy 等,参见部署文档第 7 节。
详见 [docs/DEPLOY.md](./docs/DEPLOY.md)。**反向代理不包含在本项目中。**
---
## 本地开发
### Docker Compose(默认端口 23566
```bash
cp .env.example .env
docker compose --env-file .env up --build
```
# PostgreSQL 本地安装后
cp backend/.env.example backend/.env
- 前端:http://localhost:23566
- API 健康检查:http://localhost:23566/api/health
### 分步开发
```bash
# 仅数据库
docker compose up db -d
# 后端
cd backend && pip install -r requirements.txt && cp .env.example .env
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# 前端
cd frontend && npm install && npm run dev
cd frontend
npm install && npm run dev
```
### Ollama(错题 AI,可选
开发前端:http://localhost:5173(代理 `/api` 到 8000
生产网关本地模拟:
```bash
ollama pull qwen2.5:7b
ollama serve
cd deploy/pm2 && npm install
# 先 build 前端
cd ../../frontend && npm run build
WEB_PORT=23566 pm2 start ../deploy/pm2/ecosystem.config.cjs
```
---
## 运维快捷命令
## 运维
```bash
cd /opt/secondary-school-grade-archive
docker compose ps # 状态
bash deploy/update.sh # 更新
bash deploy/backup.sh # 备份
bash deploy/uninstall.sh # 停止服务
bash deploy/update.sh # 更新
bash deploy/backup.sh # 备份
bash deploy/uninstall.sh # 停止
```
---
## 环境变量
见 [.env.example](./.env.example)
---
## 技术支持
- **作者:** 马建军
- **微信:** dekun03
- **手机:** 18364911125
未经授权不得商业使用或去除版权信息。
微信 **dekun03** · 手机 **18364911125**