refactor(dashboard): 重构用户管理页面和路由结构 feat(server): 实现部门管理API和RBAC增强功能 docs: 更新用户手册和管理员指南文档 style: 统一图标使用和组件命名规范 test: 添加部门服务和数据隔离测试用例 chore: 更新依赖和配置文件
10 KiB
10 KiB
部署文档
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:
# 添加 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:
# 添加 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:
- 访问 Node.js 官网
- 下载并安装 Node.js LTS 版本
- 验证安装:打开命令提示符,运行
node -v和npm -v
4.1.2 安装 MySQL
Ubuntu/Debian:
# 安装 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:
# 安装 MySQL
sudo yum update
sudo yum install -y mysql-server
# 启动 MySQL 服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 配置 MySQL
mysql_secure_installation
Windows:
- 访问 MySQL 官网
- 下载并安装 MySQL Installer
- 按照向导完成安装和配置
4.1.3 安装 Redis
Ubuntu/Debian:
# 安装 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:
# 安装 Redis
sudo yum update
sudo yum install -y redis
# 启动 Redis 服务
sudo systemctl start redis
sudo systemctl enable redis
Windows:
- 访问 Redis 官网
- 下载并安装 Redis for Windows
- 启动 Redis 服务
4.1.4 安装 NGINX
Ubuntu/Debian:
# 安装 NGINX
sudo apt-get update
sudo apt-get install -y nginx
# 启动 NGINX 服务
sudo systemctl start nginx
sudo systemctl enable nginx
CentOS/RHEL:
# 安装 NGINX
sudo yum update
sudo yum install -y nginx
# 启动 NGINX 服务
sudo systemctl start nginx
sudo systemctl enable nginx
Windows:
- 访问 NGINX 官网
- 下载并解压 NGINX
- 启动 NGINX 服务
4.2 系统安装
4.2.1 克隆代码库
# 克隆代码库
git clone https://github.com/crawlful/crawlful-hub.git
cd crawlful-hub
4.2.2 安装依赖
# 安装后端依赖
cd server
npm install
# 安装前端依赖
cd ../dashboard
npm install
4.2.3 配置环境变量
后端配置:
在 server 目录下创建 .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 文件:
# 前端配置
REACT_APP_API_URL=http://localhost:3000/api/v1
REACT_APP_SYSTEM_NAME=Crawlful Hub
REACT_APP_ENV=production
4.2.4 数据库初始化
# 进入后端目录
cd server
# 运行数据库迁移
npm run migrate
# 初始化数据
npm run seed
4.2.5 构建前端
# 进入前端目录
cd ../dashboard
# 构建前端
npm run build
# 将构建产物复制到后端静态目录
cp -r build/* ../server/public/
5. 配置说明
5.1 数据库配置
5.1.1 创建数据库
CREATE DATABASE crawlful_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5.1.2 创建用户
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):
# 绑定地址
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):
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;
}
启用配置:
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):
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 管理
# 启动服务
pm install -g pm2
cd /path/to/crawlful-hub
pm run start:pm2
# 查看状态
pm run status
# 停止服务
npm run stop
# 重启服务
npm run restart
6.2 直接启动
# 启动后端
cd /path/to/crawlful-hub/server
npm start
# 启动前端(开发模式)
cd /path/to/crawlful-hub/dashboard
npm start
6.3 系统服务
创建系统服务文件(/etc/systemd/system/crawlful.service):
[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
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable crawlful
sudo systemctl start crawlful
7. 监控和维护
7.1 日志管理
后端日志:
# 查看后端日志
cd /path/to/crawlful-hub/server
npm run logs
# 或使用 PM2 查看日志
pm run logs:pm2
NGINX 日志:
# 查看访问日志
tail -f /var/log/nginx/access.log
# 查看错误日志
tail -f /var/log/nginx/error.log
7.2 数据库备份
# 备份数据库
mysqldump -u root -p crawlful_hub > crawlful_hub_backup.sql
# 恢复数据库
mysql -u root -p crawlful_hub < crawlful_hub_backup.sql
7.3 系统更新
# 拉取最新代码
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 监控:
# 查看监控面板
pm run monit
使用 Redis 监控:
# 连接 Redis
redis-cli
# 查看 Redis 信息
info
使用 MySQL 监控:
# 连接 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 查看错误日志
# 查看后端错误日志
cd /path/to/crawlful-hub/server
npm run logs
# 查看系统错误日志
tail -f /var/log/syslog
9.2 检查服务状态
# 检查后端服务状态
npm run status
# 检查数据库服务状态
sudo systemctl status mysql
# 检查 Redis 服务状态
sudo systemctl status redis
# 检查 NGINX 服务状态
sudo systemctl status nginx
9.3 测试 API 接口
# 测试 API 接口
curl -X GET http://localhost:3000/api/v1/system/info
9.4 数据库连接测试
# 测试数据库连接
mysql -u root -p -e "SELECT 1;"
9.5 Redis 连接测试
# 测试 Redis 连接
redis-cli ping
10. 联系支持
如果您在部署过程中遇到任何问题,可以通过以下方式联系支持:
- 在线客服:系统右下角的在线客服按钮
- 邮件支持:support@crawlful.com
- 电话支持:400-123-4567
- 技术支持:tech@crawlful.com
本指南会定期更新,以反映系统的最新部署和配置要求。