零 Node 部署、超级管理员,并完善本地构建发布文档。
- FastAPI 单进程托管 frontend/dist,systemd 替代 PM2 - 超级管理员 admin、注册开关与用户管理 - README/DEPLOY/USAGE 说明:改代码须本地构建 dist 后 push,服务器 update.sh - 提交 frontend/dist 与 build-frontend 脚本
This commit is contained in:
@@ -14,12 +14,65 @@ Secondary School Grade Archive — 多用户 Web 系统:成绩录入、占比
|
||||
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| [docs/DEPLOY.md](./docs/DEPLOY.md) | **Ubuntu PM2 一键部署** |
|
||||
| [docs/DEPLOY.md](./docs/DEPLOY.md) | **Ubuntu 零 Node 部署**(systemd + FastAPI 单进程) |
|
||||
| [docs/USAGE.md](./docs/USAGE.md) | 用户使用说明 |
|
||||
|
||||
---
|
||||
|
||||
## Ubuntu 一键部署(PM2)
|
||||
## 修改代码后如何发布(必读)
|
||||
|
||||
**生产服务器不安装 Node.js,也不在服务器上执行 `npm build`。**
|
||||
凡涉及前端或全栈改动的发布,均按以下流程在**开发机**完成构建后再推送:
|
||||
|
||||
```
|
||||
开发机改代码 → 本地构建 frontend/dist → git push 远端仓库 → 服务器 git pull + update.sh
|
||||
```
|
||||
|
||||
### 仅改后端(`backend/`)
|
||||
|
||||
```bash
|
||||
git add backend/
|
||||
git commit -m "你的说明"
|
||||
git push
|
||||
```
|
||||
|
||||
服务器:
|
||||
|
||||
```bash
|
||||
bash /opt/secondary-school-grade-archive/deploy/update.sh
|
||||
```
|
||||
|
||||
### 改前端或同时改前后端(`frontend/`)
|
||||
|
||||
**必须先本地构建,再把 `frontend/dist` 一并提交推送:**
|
||||
|
||||
```powershell
|
||||
# Windows
|
||||
.\deploy\build-frontend.ps1
|
||||
```
|
||||
|
||||
```bash
|
||||
# Linux / macOS
|
||||
bash deploy/build-frontend.sh
|
||||
```
|
||||
|
||||
```bash
|
||||
git add frontend/ frontend/dist
|
||||
git commit -m "你的说明"
|
||||
git push
|
||||
```
|
||||
|
||||
服务器:
|
||||
|
||||
```bash
|
||||
bash /opt/secondary-school-grade-archive/deploy/update.sh
|
||||
```
|
||||
|
||||
> 若只推送源码而未推送 `frontend/dist`,服务器更新后页面不会变化。详见 [docs/DEPLOY.md §2](./docs/DEPLOY.md#2-代码修改与发布流程重要)。
|
||||
|
||||
---
|
||||
|
||||
## Ubuntu 一键部署(零 Node)
|
||||
|
||||
```bash
|
||||
git clone https://git.bz121.com/dekun/secondary-school-grade-archive.git /opt/secondary-school-grade-archive
|
||||
@@ -30,47 +83,53 @@ bash deploy/install.sh
|
||||
|
||||
- 安装目录:`/opt/secondary-school-grade-archive`
|
||||
- 访问地址:`http://<服务器IP>:23566`
|
||||
- 进程管理:`pm2 status` / `pm2 logs`
|
||||
- 进程管理:`systemctl status grade-archive` / `journalctl -u grade-archive -f`
|
||||
- 默认超级管理员:**admin / admin123**(登录后请在「系统设置」中修改)
|
||||
|
||||
详见 [docs/DEPLOY.md](./docs/DEPLOY.md)。**反向代理不包含在本项目中。**
|
||||
**前提:** 仓库中已包含 `frontend/dist/`(由开发机构建后推送)。详见 [docs/DEPLOY.md](./docs/DEPLOY.md)。**反向代理不包含在本项目中。**
|
||||
|
||||
---
|
||||
|
||||
## 本地开发
|
||||
|
||||
### 方式一:前后端分离(推荐日常开发)
|
||||
|
||||
```bash
|
||||
# PostgreSQL 本地安装后
|
||||
cp backend/.env.example backend/.env
|
||||
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 23568
|
||||
uvicorn app.main:app --reload --host 0.0.0.0 --port 23566
|
||||
|
||||
cd frontend
|
||||
npm install && npm run dev
|
||||
```
|
||||
|
||||
开发前端:http://localhost:5173(代理 `/api` 到 23568)
|
||||
- 前端开发:http://localhost:5173(Vite 代理 `/api` → 23566)
|
||||
- 后端 API:http://localhost:23566/api/health
|
||||
|
||||
生产网关本地模拟:
|
||||
### 方式二:模拟生产(单进程 + 静态 dist)
|
||||
|
||||
```bash
|
||||
cd deploy/pm2 && npm install
|
||||
# 先 build 前端
|
||||
cd ../../frontend && npm run build
|
||||
WEB_PORT=23566 pm2 start ../deploy/pm2/ecosystem.config.cjs
|
||||
cd frontend && npm run build
|
||||
cd ../backend
|
||||
source venv/bin/activate
|
||||
uvicorn app.main:app --reload --host 0.0.0.0 --port 23566
|
||||
```
|
||||
|
||||
访问 http://localhost:23566
|
||||
|
||||
---
|
||||
|
||||
## 运维
|
||||
|
||||
```bash
|
||||
bash deploy/update.sh # 更新
|
||||
bash deploy/update.sh # 拉代码 + 更新依赖 + 重启服务
|
||||
bash deploy/backup.sh # 备份
|
||||
bash deploy/uninstall.sh # 停止
|
||||
bash deploy/uninstall.sh # 停止并卸载
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user