docs(deployment): 更新部署文档并添加自动化部署脚本
- 更新了 DEPLOYMENT.md 文档,增加了更多部署细节和说明 - 添加了 Linux 和 Windows 平台的自动化部署脚本 - 更新了 README.md,增加了部署相关说明 - 调整了 .env 文件配置,以适应新的部署流程 - 移除了部分不必要的代码和配置
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
# 🚀 部署指南
|
||||
# 📦 部署指南 - 文件同步说明
|
||||
|
||||
## 📋 部署概述
|
||||
本文档详细描述了结伴客项目的部署流程,包括开发环境、测试环境和生产环境的部署步骤。
|
||||
## 📋 当前部署范围
|
||||
本文档说明了结伴客项目的文件同步流程。当前部署仅涉及文件同步操作,不包括自动构建、环境配置或服务重启等后续步骤。
|
||||
|
||||
注意:本文档适用于需要了解当前部署流程的开发人员和运维人员。请知悉当前部署流程的限制和要求。
|
||||
|
||||
## 🛠️ 环境要求
|
||||
|
||||
@@ -456,4 +458,292 @@ rclone copy backup-* remote:backups/
|
||||
```
|
||||
|
||||
---
|
||||
*最后更新: 2024年* 📅
|
||||
*最后更新: 2024年* 📅
|
||||
|
||||
# 结伴客项目部署指南
|
||||
|
||||
## 概述
|
||||
|
||||
n g本文档详细说明了如何将结伴客项目部署到生产环境。项目包含三个主要模块:
|
||||
1. 后端服务 (backend)
|
||||
2. 后台管理系统 (admin-system)
|
||||
3. 官方网站 (website)
|
||||
|
||||
注意:微信小程序不需要部署到远程服务器,需要使用微信开发者工具进行构建和上传。
|
||||
|
||||
## 部署环境要求
|
||||
|
||||
### 服务器要求
|
||||
- CentOS 7+ (推荐 CentOS 8)
|
||||
- Node.js 16.x+
|
||||
- MySQL 8.0+
|
||||
- Nginx 1.18+
|
||||
- Docker 和 Docker Compose (可选,用于容器化部署)
|
||||
|
||||
### 本地开发环境要求
|
||||
- Node.js 16.x+
|
||||
- SSH 客户端
|
||||
- rsync (用于文件同步)
|
||||
|
||||
## 自动部署脚本
|
||||
|
||||
项目提供了自动部署脚本,支持 Linux/Mac 和 Windows 系统。
|
||||
|
||||
### Linux/Mac 部署脚本
|
||||
|
||||
脚本位置:`scripts/deploy.sh`
|
||||
|
||||
使用方法:
|
||||
```bash
|
||||
# 进入脚本目录
|
||||
cd scripts
|
||||
|
||||
# 给脚本添加执行权限
|
||||
chmod +x deploy.sh
|
||||
|
||||
# 部署所有模块
|
||||
./deploy.sh all
|
||||
|
||||
# 部署指定模块
|
||||
./deploy.sh backend # 部署后端服务
|
||||
./deploy.sh admin # 部署后台管理系统
|
||||
./deploy.sh website # 部署官方网站
|
||||
./deploy.sh mini-program # 构建微信小程序
|
||||
```
|
||||
|
||||
### Windows PowerShell 部署脚本
|
||||
|
||||
脚本位置:`scripts/deploy.ps1`
|
||||
|
||||
使用方法:
|
||||
```powershell
|
||||
# 进入脚本目录
|
||||
cd scripts
|
||||
|
||||
# 部署所有模块
|
||||
.\deploy.ps1 all
|
||||
|
||||
# 部署指定模块
|
||||
.\deploy.ps1 backend # 部署后端服务
|
||||
.\deploy.ps1 admin # 部署后台管理系统
|
||||
.\deploy.ps1 website # 部署官方网站
|
||||
```
|
||||
|
||||
## 手动部署
|
||||
|
||||
### 后端服务部署
|
||||
|
||||
1. 构建项目:
|
||||
```bash
|
||||
cd backend
|
||||
npm run build
|
||||
```
|
||||
|
||||
2. 同步文件到服务器:
|
||||
```bash
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
--exclude logs \
|
||||
./ root@1.13.156.49:/data/nodejs/jiebanke/
|
||||
```
|
||||
|
||||
3. 在服务器上安装依赖:
|
||||
```bash
|
||||
ssh root@1.13.156.49
|
||||
cd /data/nodejs/jiebanke
|
||||
npm install --production
|
||||
```
|
||||
|
||||
4. 重启服务:
|
||||
```bash
|
||||
# 使用 PM2 管理服务(推荐)
|
||||
pm2 restart jiebanke-backend
|
||||
|
||||
# 或使用 systemd
|
||||
systemctl restart jiebanke-backend
|
||||
```
|
||||
|
||||
### 后台管理系统部署
|
||||
|
||||
1. 构建项目:
|
||||
```bash
|
||||
cd admin-system
|
||||
npm run build
|
||||
```
|
||||
|
||||
2. 同步文件到服务器:
|
||||
```bash
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
--exclude dist \
|
||||
./ root@1.13.156.49:/data/vue/jiebanke/
|
||||
```
|
||||
|
||||
3. 在服务器上安装依赖:
|
||||
```bash
|
||||
ssh root@1.13.156.49
|
||||
cd /data/vue/jiebanke
|
||||
npm install --production
|
||||
```
|
||||
|
||||
### 官方网站部署
|
||||
|
||||
1. 同步文件到服务器:
|
||||
```bash
|
||||
rsync -avz --delete \
|
||||
--exclude node_modules \
|
||||
--exclude .git \
|
||||
./website/ root@1.13.156.49:/data/website/jiebanke/
|
||||
```
|
||||
|
||||
2. 配置 Nginx 服务器指向该目录。
|
||||
|
||||
### 微信小程序构建
|
||||
|
||||
微信小程序需要使用微信开发者工具进行构建和上传:
|
||||
1. 打开微信开发者工具
|
||||
2. 导入 `mini-program` 目录
|
||||
3. 点击"上传"按钮
|
||||
4. 在微信公众平台提交审核
|
||||
|
||||
## 容器化部署
|
||||
|
||||
项目支持使用 Docker 进行容器化部署。
|
||||
|
||||
### 使用 docker-compose 部署
|
||||
|
||||
```bash
|
||||
# 构建并启动所有服务
|
||||
docker-compose up -d
|
||||
|
||||
# 查看服务状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs backend
|
||||
```
|
||||
|
||||
### 单独构建镜像
|
||||
|
||||
每个模块都可以单独构建 Docker 镜像:
|
||||
|
||||
```bash
|
||||
# 后端服务
|
||||
cd backend
|
||||
docker build -t jiebanke/backend .
|
||||
|
||||
# 后台管理系统
|
||||
cd admin-system
|
||||
docker build -t jiebanke/admin .
|
||||
|
||||
# 官方网站
|
||||
cd website
|
||||
docker build -t jiebanke/website .
|
||||
```
|
||||
|
||||
## 部署目录结构
|
||||
|
||||
远程服务器 CentOS (IP: 1.13.156.49) 上各项目的部署目录如下:
|
||||
|
||||
```
|
||||
/
|
||||
├── data/
|
||||
│ ├── nodejs/
|
||||
│ │ └── jiebanke/ # 后端服务部署目录
|
||||
│ ├── vue/
|
||||
│ │ └── jiebanke/ # 后台管理系统部署目录
|
||||
│ └── website/
|
||||
│ └── jiebanke/ # 官方网站部署目录
|
||||
```
|
||||
|
||||
## 环境变量配置
|
||||
|
||||
每个模块都需要配置相应的环境变量:
|
||||
|
||||
### 后端服务
|
||||
创建 `.env` 文件:
|
||||
```env
|
||||
# 数据库配置
|
||||
DB_HOST=localhost
|
||||
DB_PORT=3306
|
||||
DB_USER=jiebanke
|
||||
DB_PASSWORD=your_password
|
||||
DB_NAME=jiebanke
|
||||
|
||||
# JWT 密钥
|
||||
JWT_SECRET=your_jwt_secret_key
|
||||
|
||||
# 其他配置...
|
||||
```
|
||||
|
||||
### 后台管理系统
|
||||
创建 `.env.production` 文件:
|
||||
```env
|
||||
VITE_APP_TITLE=结伴客后台管理系统
|
||||
VITE_API_BASE_URL=https://api.jiebanke.com
|
||||
VITE_APP_VERSION=v1.0.0
|
||||
```
|
||||
|
||||
## 常见问题和解决方案
|
||||
|
||||
### SSH 连接问题
|
||||
确保本地 SSH 公钥已添加到远程服务器的 `~/.ssh/authorized_keys` 文件中。
|
||||
|
||||
### 权限问题
|
||||
确保部署脚本有执行权限:
|
||||
```bash
|
||||
chmod +x scripts/deploy.sh
|
||||
```
|
||||
|
||||
### 文件同步问题
|
||||
如果 rsync 命令执行失败,请检查:
|
||||
1. 本地是否安装了 rsync
|
||||
2. 远程服务器 SSH 连接是否正常
|
||||
3. 目标目录权限是否正确
|
||||
|
||||
## 监控和日志
|
||||
|
||||
### 后端服务日志
|
||||
```bash
|
||||
# 使用 PM2 查看日志
|
||||
pm2 logs jiebanke-backend
|
||||
|
||||
# 或查看日志文件
|
||||
tail -f /var/log/jiebanke/backend.log
|
||||
```
|
||||
|
||||
### Nginx 日志
|
||||
```bash
|
||||
# 访问日志
|
||||
tail -f /var/log/nginx/access.log
|
||||
|
||||
# 错误日志
|
||||
tail -f /var/log/nginx/error.log
|
||||
```
|
||||
|
||||
## 回滚方案
|
||||
|
||||
如果部署出现问题,可以通过以下方式回滚:
|
||||
|
||||
1. 使用 Git 版本回滚:
|
||||
```bash
|
||||
git checkout v1.0.0 # 回滚到指定版本
|
||||
```
|
||||
|
||||
2. 使用 Docker 镜像回滚:
|
||||
```bash
|
||||
docker-compose down
|
||||
docker rmi jiebanke/backend:latest
|
||||
docker pull jiebanke/backend:v1.0.0
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 性能优化建议
|
||||
|
||||
1. 使用 Nginx 反向代理和缓存
|
||||
2. 启用 Gzip 压缩
|
||||
3. 使用 CDN 加速静态资源
|
||||
4. 数据库查询优化
|
||||
5. 使用 Redis 缓存热点数据
|
||||
|
||||
Reference in New Issue
Block a user