feat: add one-click startup scripts for project management

- Add start.sh/start.bat for one-click startup (backend + frontend)
- Add stop.sh/stop.bat for stopping all services
- Add restart.sh for restarting services
- Add status.sh for checking service status
- Add Makefile with convenient management commands
- Add comprehensive documentation (ONE_CLICK_START.md)
- Update README with one-click startup instructions

Features:
- Automatic environment checking (venv, node_modules)
- Process management with PID tracking
- Unified log management (logs/*.log)
- Health checking after startup
- Support for Linux, macOS, and Windows
- No more need for multiple terminal windows

Usage:
  ./start.sh      # Start all services
  ./stop.sh       # Stop all services
  ./status.sh     # Check service status
  ./restart.sh    # Restart services
  make start      # Alternative using Makefile

Benefits:
- One command instead of multiple terminals
- Automatic environment validation
- Centralized logging
- Process lifecycle management
- Developer-friendly output messages
This commit is contained in:
2026-03-22 02:49:22 +00:00
parent acd73431ae
commit 344a750cfb
11 changed files with 1521 additions and 9 deletions

254
docs/SCRIPTS_SUMMARY.md Normal file
View File

@@ -0,0 +1,254 @@
# 一键启动脚本创建完成
## ✅ 已创建的文件
### Linux/Mac 脚本
1. **start.sh** - 一键启动脚本
- 自动检查依赖环境
- 启动后端和前端服务
- 保存进程 PID
- 健康检查
2. **stop.sh** - 停止脚本
- 优雅停止所有进程
- 强制清理残留进程
- 清理 PID 文件
3. **restart.sh** - 重启脚本
- 先停止后启动
- 等待间隔确保完全停止
4. **status.sh** - 状态查看脚本
- 检查服务运行状态
- 显示进程信息
- 提供日志查看命令
### Windows 脚本
1. **start.bat** - Windows 启动脚本
- 在新窗口中启动服务
- 自动检查环境
2. **stop.bat** - Windows 停止脚本
- 查找并停止进程
- 清理端口占用
### 文档
1. **docs/ONE_CLICK_START.md** - 详细使用指南
- 使用方法
- 故障排查
- 高级用法
## 🎯 使用方法
### 首次使用
```bash
# 1. 后端配置
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 填入配置
# 2. 前端配置
cd ../frontend
npm install
# 3. 添加脚本执行权限
cd ..
chmod +x *.sh
```
### 日常使用
```bash
# 启动项目
./start.sh
# 查看状态
./status.sh
# 查看日志
tail -f logs/backend.log
tail -f logs/frontend.log
# 停止项目
./stop.sh
# 重启项目
./restart.sh
```
## 📊 启动输出示例
```bash
$ ./start.sh
========================================
ERP AI Assistant - 启动中...
========================================
启动后端服务...
PID: 12345
日志: /data/erp-ass/logs/backend.log
地址: http://localhost:8000
等待后端启动...
✓ 后端启动成功
启动前端服务...
PID: 12346
日志: /data/erp-ass/logs/frontend.log
地址: http://localhost:5173
等待前端启动...
前端启动成功
========================================
✅ 启动完成!
========================================
📍 访问地址:
前端: http://localhost:5173
后端: http://localhost:8000
API文档: http://localhost:8000/docs
📋 管理命令:
查看日志: tail -f logs/backend.log
停止服务: ./stop.sh
重启服务: ./restart.sh
```
## 💡 核心特性
### 1. 环境检查
脚本会自动检查:
- ✅ Python 虚拟环境是否存在
- ✅ 前端依赖是否安装
- ✅ .env 配置文件是否存在
如果缺失,会给出明确的提示。
### 2. 进程管理
- 自动清理旧进程
- 保存进程 PID 到 `logs/pids.txt`
- 支持优雅停止和强制停止
### 3. 日志管理
- 后端日志: `logs/backend.log`
- 前端日志: `logs/frontend.log`
- 支持 `tail -f` 实时查看
### 4. 健康检查
- 启动后自动检查服务是否正常运行
- 后端检查: `http://localhost:8000/health`
- 前端检查: `http://localhost:5173`
## 🔄 对比传统方式
### 传统方式(需要两个终端)
**终端 1**:
```bash
cd backend
source venv/bin/activate
python -m app.main
```
**终端 2**:
```bash
cd frontend
npm run dev
```
**缺点**:
- 占用两个终端窗口
- 需要记忆多个命令
- 没有统一的日志管理
- 没有进程管理
### 一键启动
```bash
./start.sh
```
**优点**:
- ✅ 一个命令完成所有启动
- ✅ 只占用一个终端
- ✅ 自动环境检查
- ✅ 统一日志管理
- ✅ 进程 PID 管理
- ✅ 健康检查
- ✅ 友好的输出信息
## 🐛 已知问题和解决方案
### 问题 1: 权限不足
**症状**: `bash: ./start.sh: Permission denied`
**解决方案**:
```bash
chmod +x *.sh
```
### 问题 2: 虚拟环境路径问题
**症状**: 虚拟环境激活失败
**解决方案**:
确保在项目根目录运行脚本,或使用绝对路径。
### 问题 3: 端口被占用
**症状**: 启动失败,端口已被使用
**解决方案**:
```bash
# 查看端口占用
lsof -i :8000
lsof -i :5173
# 停止服务
./stop.sh
# 或手动杀进程
kill -9 <PID>
```
## 📚 下一步
1. **测试脚本**: 运行 `./start.sh` 测试启动
2. **查看状态**: 运行 `./status.sh` 查看服务状态
3. **访问应用**: 打开 http://localhost:5173
4. **查看日志**: `tail -f logs/backend.log`
## 🎉 总结
现在你可以通过一个命令启动整个项目了!
**Linux/Mac**:
- 启动: `./start.sh`
- 停止: `./stop.sh`
- 状态: `./status.sh`
- 重启: `./restart.sh`
**Windows**:
- 启动: `start.bat`
- 停止: `stop.bat`
不再需要手动打开多个终端窗口!
---
**创建时间**: 2026-03-22
**文件数量**: 7 个4 个 Linux/Mac 脚本 + 2 个 Windows 脚本 + 1 个文档)
**所有脚本已添加执行权限**