VortMall 本地体验部署指南
VortMall 本地体验部署指南
文档说明
适用场景:本地体验、功能验收、演示展示。使用开发者模式运行(IDEA 启动后端 + VS Code 启动前端),快速看到系统效果。
不适用于:正式生产环境。生产部署请参阅入门版/标准版/企业版部署指南。
最低配置:1 台机器,8C 32G 内存,200G SSD 磁盘。
约定:<尖括号> 表示需替换为实际值的占位符。
前置条件
| 工具 | 版本要求 | 用途 |
|---|---|---|
| Docker | 24.0+ | 运行中间件 |
| Docker Compose | v2.20+ | 中间件编排 |
| JDK | 21+ | 后端编译运行 |
| Maven | 3.9+ | 后端构建 |
| Node.js | 18+ | 前端开发 |
| IntelliJ IDEA | 最新版 | 后端开发 |
| VS Code | 最新版 | 前端开发 |
Docker 安装(如未安装):
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker && systemctl enable docker
docker --version && docker compose version
步骤 1:启动中间件
将项目 deployment/DockerCompose/ 目录上传到服务器(或在本机执行),运行一键启动脚本:
cd deployment/DockerCompose
bash start-core.sh
脚本会提示输入服务器 IP 地址(本机部署填本机内网 IP),然后依次启动 MySQL、Redis、Nacos 及其他中间件。
验证(等待约 2 分钟后逐项检查):
| 服务 | 验证方式 | 预期结果 |
|---|---|---|
| MySQL | docker exec mysql-8 mysqladmin ping -uroot -pvortmall666 | mysqld is alive |
| Redis | docker exec redis redis-cli ping | PONG |
| Nacos | 浏览器打开 http://<IP>:8848/nacos(账号 nacos/nacos) | 能登录控制台 |
| RocketMQ | 浏览器打开 http://<IP>:8080 | Dashboard 页面正常 |
| XXL-Job | 浏览器打开 http://<IP>:8082/xxl-job-admin(账号 admin/123456) | 能登录 |
| MinIO | 浏览器打开 http://<IP>:9001(账号 vortmall/vortmall666) | 能登录控制台 |
全部验证通过后再进入下一步。如果某项失败,执行
docker compose ps检查对应容器状态。
步骤 2:初始化数据库
docker exec -i mysql-8 mysql -uroot -pvortmall666 < db/version/mysql/demo.sql
体验环境推荐导入
demo.sql(含演示数据),正式环境使用pure.sql(空库)。
验证(应有 15 个 vortmall_* 数据库):
docker exec mysql-8 mysql -uroot -pvortmall666 -e "
SELECT TABLE_SCHEMA, COUNT(*) AS '表数量'
FROM information_schema.TABLES
WHERE TABLE_SCHEMA LIKE 'vortmall_%'
GROUP BY TABLE_SCHEMA;
"
步骤 3:配置 Nacos
- 浏览器打开
http://<IP>:8848/nacos,用nacos/nacos登录 - 左侧菜单 → 命名空间 → 新建命名空间:
- 命名空间 ID:
public - 命名空间名:
VortMall
- 命名空间 ID:
- 切换到
public命名空间 → 配置管理 → 配置列表 → 创建配置:- Data ID:
datasource-multiple.yml - Group:
DEFAULT_GROUP - 格式:YAML
- 内容:
- Data ID:
spring:
datasource:
dynamic:
primary: master
strict: true
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://<中间件IP>:3306/${vortmall.datasource.db-name}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false
username: root
password: vortmall666
${vortmall.datasource.db-name}是变量,每个服务会自动填入自己的库名,不需要替换。只需把<中间件IP>替换为实际 IP。
验证:在配置列表中能看到刚创建的 datasource-multiple.yml。
步骤 4:IDEA 启动后端
- 用 IntelliJ IDEA 打开项目根目录
- 编辑
vortmall-common/vortmall-common-nacos/src/main/resources/env.yml,将vortmall.host改为中间件 IP:
vortmall:
host: <中间件IP>
- 等待 Maven 索引完成
- 按以下顺序启动服务(右键 → Run):
| 启动顺序 | 模块 | 启动类 |
|---|---|---|
| 1 | vortmall-gateway | GatewayApplication |
| 2 | vortmall-auth | AuthApplication |
| 3~17 | vortmall-biz-* (15 个业务服务) | 各自的 Application 类 |
先启动 gateway 和 auth,其他 biz 服务启动顺序不限。每个服务启动约 15~30 秒。
验证:登录 Nacos 控制台 → 服务管理 → 服务列表 → 选择 public 命名空间,已注册服务数 ≥ 17。
步骤 5:启动前端
前端共三个项目,分别用 VS Code 打开并启动:
管理后台(Vue 3)
cd <Vort-Admin项目目录>
npm install
npm run dev
启动后访问:http://localhost:3100(默认端口以项目配置为准)
PC 商城(Nuxt 3)
cd <Vortmall-Pc项目目录>
npm install
npm run dev
启动后访问:http://localhost:3000
H5 移动端(UniApp)
cd <vortmall-uniapp项目目录>
npm install
npm run dev:h5
启动后访问:http://localhost:5173(默认端口以项目配置为准)
前端项目首次启动需要安装依赖(
npm install),后续启动只需npm run dev。
步骤 6:验证
| 检查项 | 方式 | 预期 |
|---|---|---|
| 管理后台 | 浏览器打开管理后台地址 | 显示登录页 |
| PC 商城 | 浏览器打开 PC 商城地址 | 页面正常渲染 |
| API 健康检查 | curl http://localhost:8000/actuator/health | {"status":"UP"} |
| Nacos 服务数 | Nacos 控制台 → 服务列表 | ≥ 17 个已注册 |
| XXL-Job 执行器 | XXL-Job 控制台 → 执行器管理 | 包含已注册的执行器 |
常见问题
服务启动失败:连不上中间件
日志出现 Connection refused 或 Nacos connected failed。
- 检查
env.yml中vortmall.host是否为中间件的正确 IP - 检查中间件是否已全部启动:
docker compose ps - 检查防火墙是否放通了中间件端口(8848、3306、6379、9876 等)
Nacos 服务列表为空
- 确认命名空间 ID 为
public(不是名称VortMall) - 确认
env.yml中的 Nacos 地址正确 - 确认
datasource-multiple.yml已在public命名空间创建
前端页面报跨域错误
- 确认 Gateway 服务已正常启动
- 检查前端配置文件中的 API 代理地址是否指向正确的 Gateway 地址
数据库初始化失败
- 确认 MySQL 容器状态为
healthy:docker inspect mysql-8 --format='{{.State.Health.Status}}' - SQL 文件路径需要从项目根目录计算,确认路径正确
附录 A:中间件端口速查
| 服务 | 端口 | 说明 |
|---|---|---|
| MySQL | 3306 | 数据库 |
| Redis | 6379 | 缓存 |
| Nacos | 8848, 9848 | 配置中心 + 服务发现 |
| RocketMQ NameServer | 9876 | MQ 名称服务 |
| RocketMQ Broker | 10909, 10911, 10912 | MQ Broker |
| RocketMQ Dashboard | 8080 | MQ 管理界面 |
| XXL-Job Admin | 8082 | 任务调度 |
| Seata | 7091, 8091 | 分布式事务 |
| MinIO | 9000 (API), 9001 (Console) | 对象存储 |
| EMQX | 1883 (MQTT), 18083 (Dashboard) | 消息 |
| ES | 9200, 9300 | 搜索引擎 |
附录 B:后端服务端口
| 服务 | 端口 | 说明 |
|---|---|---|
| vortmall-gateway | 8000 | API 网关 |
| vortmall-auth | 8001 | 认证授权 |
| vortmall-biz-product | 19901 | 商品、分类、品牌 |
| vortmall-biz-payment | 19902 | 支付、退款 |
| vortmall-biz-system | 19903 | 系统配置、权限 |
| vortmall-biz-marketing | 19904 | 营销、优惠券 |
| vortmall-biz-order | 19905 | 订单、购物车 |
| vortmall-biz-content | 19906 | 文章、公告 |
| vortmall-biz-organize | 19907 | 组织架构、店铺 |
| vortmall-biz-logistics | 19908 | 物流、运费模板 |
| vortmall-biz-aftersales | 19909 | 售后、退货 |
| vortmall-biz-distribution | 19910 | 分销 |
| vortmall-biz-decoration | 19911 | 页面装修 |
| vortmall-biz-message | 19912 | 消息、通知 |
| vortmall-biz-user | 19913 | 用户、会员 |
| vortmall-biz-file | 19914 | 文件上传 |
| vortmall-biz-pos | 19915 | 收银台、门店 |
赣公网安备36010902001041号