refactor(dashboard): 重构用户管理页面和路由结构 feat(server): 实现部门管理API和RBAC增强功能 docs: 更新用户手册和管理员指南文档 style: 统一图标使用和组件命名规范 test: 添加部门服务和数据隔离测试用例 chore: 更新依赖和配置文件
624 lines
10 KiB
Markdown
624 lines
10 KiB
Markdown
# 部署文档
|
||
|
||
## 1. 系统概述
|
||
|
||
Crawlful Hub 是一个多平台电商管理系统,支持多租户、多店铺管理,提供商品、订单、财务、营销等核心功能。本指南将帮助您部署和配置系统。
|
||
|
||
## 2. 硬件要求
|
||
|
||
### 2.1 最低配置
|
||
|
||
| 组件 | 要求 |
|
||
|------|------|
|
||
| CPU | 4核 |
|
||
| 内存 | 8GB |
|
||
| 存储 | 100GB SSD |
|
||
| 网络 | 100Mbps |
|
||
|
||
### 2.2 推荐配置
|
||
|
||
| 组件 | 要求 |
|
||
|------|------|
|
||
| CPU | 8核 |
|
||
| 内存 | 16GB |
|
||
| 存储 | 200GB SSD |
|
||
| 网络 | 1Gbps |
|
||
|
||
## 3. 软件依赖
|
||
|
||
### 3.1 核心依赖
|
||
|
||
| 软件 | 版本 | 用途 |
|
||
|------|------|------|
|
||
| Node.js | 16.x 或更高 | 运行时环境 |
|
||
| npm | 8.x 或更高 | 包管理工具 |
|
||
| MySQL | 8.0 或更高 | 数据库 |
|
||
| Redis | 6.0 或更高 | 缓存和队列 |
|
||
| NGINX | 1.18 或更高 | 反向代理 |
|
||
|
||
### 3.2 可选依赖
|
||
|
||
| 软件 | 版本 | 用途 |
|
||
|------|------|------|
|
||
| Docker | 20.10 或更高 | 容器化部署 |
|
||
| Docker Compose | 1.29 或更高 | 容器编排 |
|
||
| PM2 | 5.x 或更高 | 进程管理 |
|
||
|
||
## 4. 安装步骤
|
||
|
||
### 4.1 环境准备
|
||
|
||
#### 4.1.1 安装 Node.js 和 npm
|
||
|
||
**Ubuntu/Debian**:
|
||
|
||
```bash
|
||
# 添加 Node.js 源
|
||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||
|
||
# 安装 Node.js 和 npm
|
||
sudo apt-get install -y nodejs
|
||
|
||
# 验证安装
|
||
node -v
|
||
npm -v
|
||
```
|
||
|
||
**CentOS/RHEL**:
|
||
|
||
```bash
|
||
# 添加 Node.js 源
|
||
sudo curl -fsSL https://rpm.nodesource.com/setup_16.x | bash -
|
||
|
||
# 安装 Node.js 和 npm
|
||
sudo yum install -y nodejs
|
||
|
||
# 验证安装
|
||
node -v
|
||
npm -v
|
||
```
|
||
|
||
**Windows**:
|
||
|
||
1. 访问 [Node.js 官网](https://nodejs.org/en/download/)
|
||
2. 下载并安装 Node.js LTS 版本
|
||
3. 验证安装:打开命令提示符,运行 `node -v` 和 `npm -v`
|
||
|
||
#### 4.1.2 安装 MySQL
|
||
|
||
**Ubuntu/Debian**:
|
||
|
||
```bash
|
||
# 安装 MySQL
|
||
sudo apt-get update
|
||
sudo apt-get install -y mysql-server
|
||
|
||
# 启动 MySQL 服务
|
||
sudo systemctl start mysql
|
||
sudo systemctl enable mysql
|
||
|
||
# 配置 MySQL
|
||
mysql_secure_installation
|
||
```
|
||
|
||
**CentOS/RHEL**:
|
||
|
||
```bash
|
||
# 安装 MySQL
|
||
sudo yum update
|
||
sudo yum install -y mysql-server
|
||
|
||
# 启动 MySQL 服务
|
||
sudo systemctl start mysqld
|
||
sudo systemctl enable mysqld
|
||
|
||
# 配置 MySQL
|
||
mysql_secure_installation
|
||
```
|
||
|
||
**Windows**:
|
||
|
||
1. 访问 [MySQL 官网](https://dev.mysql.com/downloads/installer/)
|
||
2. 下载并安装 MySQL Installer
|
||
3. 按照向导完成安装和配置
|
||
|
||
#### 4.1.3 安装 Redis
|
||
|
||
**Ubuntu/Debian**:
|
||
|
||
```bash
|
||
# 安装 Redis
|
||
sudo apt-get update
|
||
sudo apt-get install -y redis-server
|
||
|
||
# 启动 Redis 服务
|
||
sudo systemctl start redis-server
|
||
sudo systemctl enable redis-server
|
||
```
|
||
|
||
**CentOS/RHEL**:
|
||
|
||
```bash
|
||
# 安装 Redis
|
||
sudo yum update
|
||
sudo yum install -y redis
|
||
|
||
# 启动 Redis 服务
|
||
sudo systemctl start redis
|
||
sudo systemctl enable redis
|
||
```
|
||
|
||
**Windows**:
|
||
|
||
1. 访问 [Redis 官网](https://github.com/tporadowski/redis/releases)
|
||
2. 下载并安装 Redis for Windows
|
||
3. 启动 Redis 服务
|
||
|
||
#### 4.1.4 安装 NGINX
|
||
|
||
**Ubuntu/Debian**:
|
||
|
||
```bash
|
||
# 安装 NGINX
|
||
sudo apt-get update
|
||
sudo apt-get install -y nginx
|
||
|
||
# 启动 NGINX 服务
|
||
sudo systemctl start nginx
|
||
sudo systemctl enable nginx
|
||
```
|
||
|
||
**CentOS/RHEL**:
|
||
|
||
```bash
|
||
# 安装 NGINX
|
||
sudo yum update
|
||
sudo yum install -y nginx
|
||
|
||
# 启动 NGINX 服务
|
||
sudo systemctl start nginx
|
||
sudo systemctl enable nginx
|
||
```
|
||
|
||
**Windows**:
|
||
|
||
1. 访问 [NGINX 官网](https://nginx.org/en/download.html)
|
||
2. 下载并解压 NGINX
|
||
3. 启动 NGINX 服务
|
||
|
||
### 4.2 系统安装
|
||
|
||
#### 4.2.1 克隆代码库
|
||
|
||
```bash
|
||
# 克隆代码库
|
||
git clone https://github.com/crawlful/crawlful-hub.git
|
||
cd crawlful-hub
|
||
```
|
||
|
||
#### 4.2.2 安装依赖
|
||
|
||
```bash
|
||
# 安装后端依赖
|
||
cd server
|
||
npm install
|
||
|
||
# 安装前端依赖
|
||
cd ../dashboard
|
||
npm install
|
||
```
|
||
|
||
#### 4.2.3 配置环境变量
|
||
|
||
**后端配置**:
|
||
|
||
在 `server` 目录下创建 `.env` 文件:
|
||
|
||
```env
|
||
# 服务器配置
|
||
PORT=3000
|
||
NODE_ENV=production
|
||
|
||
# 数据库配置
|
||
DB_HOST=localhost
|
||
DB_PORT=3306
|
||
DB_USER=root
|
||
DB_PASSWORD=your_password
|
||
DB_NAME=crawlful_hub
|
||
|
||
# Redis 配置
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=
|
||
|
||
# JWT 配置
|
||
JWT_SECRET=your_jwt_secret
|
||
JWT_EXPIRES_IN=24h
|
||
|
||
# 邮件配置
|
||
SMTP_HOST=smtp.example.com
|
||
SMTP_PORT=587
|
||
SMTP_USER=your_email@example.com
|
||
SMTP_PASSWORD=your_email_password
|
||
|
||
# 其他配置
|
||
API_PREFIX=/api/v1
|
||
CORS_ORIGIN=*
|
||
```
|
||
|
||
**前端配置**:
|
||
|
||
在 `dashboard` 目录下创建 `.env` 文件:
|
||
|
||
```env
|
||
# 前端配置
|
||
REACT_APP_API_URL=http://localhost:3000/api/v1
|
||
REACT_APP_SYSTEM_NAME=Crawlful Hub
|
||
REACT_APP_ENV=production
|
||
```
|
||
|
||
#### 4.2.4 数据库初始化
|
||
|
||
```bash
|
||
# 进入后端目录
|
||
cd server
|
||
|
||
# 运行数据库迁移
|
||
npm run migrate
|
||
|
||
# 初始化数据
|
||
npm run seed
|
||
```
|
||
|
||
#### 4.2.5 构建前端
|
||
|
||
```bash
|
||
# 进入前端目录
|
||
cd ../dashboard
|
||
|
||
# 构建前端
|
||
npm run build
|
||
|
||
# 将构建产物复制到后端静态目录
|
||
cp -r build/* ../server/public/
|
||
```
|
||
|
||
## 5. 配置说明
|
||
|
||
### 5.1 数据库配置
|
||
|
||
#### 5.1.1 创建数据库
|
||
|
||
```sql
|
||
CREATE DATABASE crawlful_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
```
|
||
|
||
#### 5.1.2 创建用户
|
||
|
||
```sql
|
||
CREATE USER 'crawlful'@'localhost' IDENTIFIED BY 'your_password';
|
||
GRANT ALL PRIVILEGES ON crawlful_hub.* TO 'crawlful'@'localhost';
|
||
FLUSH PRIVILEGES;
|
||
```
|
||
|
||
### 5.2 Redis 配置
|
||
|
||
编辑 Redis 配置文件(通常位于 `/etc/redis/redis.conf`):
|
||
|
||
```conf
|
||
# 绑定地址
|
||
bind 127.0.0.1
|
||
|
||
# 端口
|
||
port 6379
|
||
|
||
# 密码
|
||
requirepass your_redis_password
|
||
|
||
# 内存限制
|
||
maxmemory 2gb
|
||
maxmemory-policy allkeys-lru
|
||
|
||
# 持久化
|
||
save 900 1
|
||
save 300 10
|
||
save 60 10000
|
||
```
|
||
|
||
### 5.3 NGINX 配置
|
||
|
||
创建 NGINX 配置文件(通常位于 `/etc/nginx/sites-available/crawlful.conf`):
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name example.com;
|
||
|
||
location / {
|
||
root /path/to/crawlful-hub/server/public;
|
||
index index.html;
|
||
try_files $uri $uri/ /index.html;
|
||
}
|
||
|
||
location /api/ {
|
||
proxy_pass http://localhost:3000;
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Upgrade $http_upgrade;
|
||
proxy_set_header Connection 'upgrade';
|
||
proxy_set_header Host $host;
|
||
proxy_cache_bypass $http_upgrade;
|
||
}
|
||
|
||
error_page 404 /404.html;
|
||
error_page 500 502 503 504 /500.html;
|
||
}
|
||
```
|
||
|
||
启用配置:
|
||
|
||
```bash
|
||
sudo ln -s /etc/nginx/sites-available/crawlful.conf /etc/nginx/sites-enabled/
|
||
sudo nginx -t
|
||
sudo systemctl reload nginx
|
||
```
|
||
|
||
### 5.4 PM2 配置
|
||
|
||
创建 PM2 配置文件(`ecosystem.config.js`):
|
||
|
||
```javascript
|
||
module.exports = {
|
||
apps: [
|
||
{
|
||
name: 'crawlful-api',
|
||
script: 'server.js',
|
||
cwd: '/path/to/crawlful-hub/server',
|
||
instances: 2,
|
||
exec_mode: 'cluster',
|
||
env: {
|
||
NODE_ENV: 'production'
|
||
},
|
||
restart_delay: 1000,
|
||
max_memory_restart: '1G'
|
||
}
|
||
]
|
||
};
|
||
```
|
||
|
||
## 6. 启动和停止
|
||
|
||
### 6.1 使用 PM2 管理
|
||
|
||
```bash
|
||
# 启动服务
|
||
pm install -g pm2
|
||
cd /path/to/crawlful-hub
|
||
pm run start:pm2
|
||
|
||
# 查看状态
|
||
pm run status
|
||
|
||
# 停止服务
|
||
npm run stop
|
||
|
||
# 重启服务
|
||
npm run restart
|
||
```
|
||
|
||
### 6.2 直接启动
|
||
|
||
```bash
|
||
# 启动后端
|
||
cd /path/to/crawlful-hub/server
|
||
npm start
|
||
|
||
# 启动前端(开发模式)
|
||
cd /path/to/crawlful-hub/dashboard
|
||
npm start
|
||
```
|
||
|
||
### 6.3 系统服务
|
||
|
||
创建系统服务文件(`/etc/systemd/system/crawlful.service`):
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Crawlful Hub
|
||
After=network.target mysql.service redis.service
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=ubuntu
|
||
WorkingDirectory=/path/to/crawlful-hub/server
|
||
ExecStart=/usr/bin/node server.js
|
||
Restart=on-failure
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
启用服务:
|
||
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable crawlful
|
||
sudo systemctl start crawlful
|
||
```
|
||
|
||
## 7. 监控和维护
|
||
|
||
### 7.1 日志管理
|
||
|
||
**后端日志**:
|
||
|
||
```bash
|
||
# 查看后端日志
|
||
cd /path/to/crawlful-hub/server
|
||
npm run logs
|
||
|
||
# 或使用 PM2 查看日志
|
||
pm run logs:pm2
|
||
```
|
||
|
||
**NGINX 日志**:
|
||
|
||
```bash
|
||
# 查看访问日志
|
||
tail -f /var/log/nginx/access.log
|
||
|
||
# 查看错误日志
|
||
tail -f /var/log/nginx/error.log
|
||
```
|
||
|
||
### 7.2 数据库备份
|
||
|
||
```bash
|
||
# 备份数据库
|
||
mysqldump -u root -p crawlful_hub > crawlful_hub_backup.sql
|
||
|
||
# 恢复数据库
|
||
mysql -u root -p crawlful_hub < crawlful_hub_backup.sql
|
||
```
|
||
|
||
### 7.3 系统更新
|
||
|
||
```bash
|
||
# 拉取最新代码
|
||
git pull
|
||
|
||
# 更新依赖
|
||
cd server && npm install && cd ..
|
||
cd dashboard && npm install && cd ..
|
||
|
||
# 构建前端
|
||
cd dashboard && npm run build && cp -r build/* ../server/public/ && cd ..
|
||
|
||
# 重启服务
|
||
npm run restart
|
||
```
|
||
|
||
### 7.4 性能监控
|
||
|
||
**使用 PM2 监控**:
|
||
|
||
```bash
|
||
# 查看监控面板
|
||
pm run monit
|
||
```
|
||
|
||
**使用 Redis 监控**:
|
||
|
||
```bash
|
||
# 连接 Redis
|
||
redis-cli
|
||
|
||
# 查看 Redis 信息
|
||
info
|
||
```
|
||
|
||
**使用 MySQL 监控**:
|
||
|
||
```bash
|
||
# 连接 MySQL
|
||
mysql -u root -p
|
||
|
||
# 查看 MySQL 状态
|
||
SHOW GLOBAL STATUS;
|
||
```
|
||
|
||
## 8. 常见问题
|
||
|
||
### 8.1 数据库连接失败
|
||
|
||
- 检查数据库服务是否运行
|
||
- 检查数据库配置是否正确
|
||
- 检查数据库用户权限是否正确
|
||
|
||
### 8.2 Redis 连接失败
|
||
|
||
- 检查 Redis 服务是否运行
|
||
- 检查 Redis 配置是否正确
|
||
- 检查 Redis 密码是否正确
|
||
|
||
### 8.3 前端无法访问后端 API
|
||
|
||
- 检查后端服务是否运行
|
||
- 检查 NGINX 配置是否正确
|
||
- 检查 CORS 配置是否正确
|
||
|
||
### 8.4 系统性能问题
|
||
|
||
- 检查服务器资源使用情况
|
||
- 优化数据库查询
|
||
- 增加服务器资源
|
||
- 启用缓存
|
||
|
||
### 8.5 安全问题
|
||
|
||
- 定期更新系统和依赖
|
||
- 使用 HTTPS
|
||
- 配置防火墙
|
||
- 定期备份数据
|
||
|
||
## 9. 故障排查
|
||
|
||
### 9.1 查看错误日志
|
||
|
||
```bash
|
||
# 查看后端错误日志
|
||
cd /path/to/crawlful-hub/server
|
||
npm run logs
|
||
|
||
# 查看系统错误日志
|
||
tail -f /var/log/syslog
|
||
```
|
||
|
||
### 9.2 检查服务状态
|
||
|
||
```bash
|
||
# 检查后端服务状态
|
||
npm run status
|
||
|
||
# 检查数据库服务状态
|
||
sudo systemctl status mysql
|
||
|
||
# 检查 Redis 服务状态
|
||
sudo systemctl status redis
|
||
|
||
# 检查 NGINX 服务状态
|
||
sudo systemctl status nginx
|
||
```
|
||
|
||
### 9.3 测试 API 接口
|
||
|
||
```bash
|
||
# 测试 API 接口
|
||
curl -X GET http://localhost:3000/api/v1/system/info
|
||
```
|
||
|
||
### 9.4 数据库连接测试
|
||
|
||
```bash
|
||
# 测试数据库连接
|
||
mysql -u root -p -e "SELECT 1;"
|
||
```
|
||
|
||
### 9.5 Redis 连接测试
|
||
|
||
```bash
|
||
# 测试 Redis 连接
|
||
redis-cli ping
|
||
```
|
||
|
||
## 10. 联系支持
|
||
|
||
如果您在部署过程中遇到任何问题,可以通过以下方式联系支持:
|
||
|
||
- **在线客服**:系统右下角的在线客服按钮
|
||
- **邮件支持**:support@crawlful.com
|
||
- **电话支持**:400-123-4567
|
||
- **技术支持**:tech@crawlful.com
|
||
|
||
---
|
||
|
||
本指南会定期更新,以反映系统的最新部署和配置要求。 |