witos慧知开源Saas多租户开发平台witos慧知开源Saas多租户开发平台
开发指南
在线体验
个人博客
Gitee
GitHub
开发指南
在线体验
个人博客
Gitee
GitHub
  • 文档

    • 介绍
    • 快速了解
    • 环境部署
    • 项目介绍
    • 后台手册
    • 前端手册
    • 组件文档
    • 更新日志
  • 微服务

    • 服务网关
    • 认证中心
    • 注册中心
    • 配置中心
    • 服务调用
    • 服务监控
    • 系统接口
    • 链路追踪
    • 熔断和降级
    • 分布式文件
    • 分布式事务
    • 分布式日志
    • 应用容器部署
  • 其他

    • 常见问题
    • 捐赠支持

环境部署

准备工作

JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0 (witos-Platform >= 3.0.0需要下载nacos >= 2.x.x版本)
sentinel >= 1.6.0

运行系统

后端运行

1、前往Gitee下载页面(https://github.com/roinli/HUIZHI-witos-cloud.git (opens new window))下载解压到工作目录
2、导入到Idea,菜单 File -> Open,选择工作目录,然后点击 Open 按钮,即可成功导入。
Idea会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)
3、创建数据库witos_platform并导入数据脚本witos_platform.sql(必须) 4、创建数据库witos_config并导入数据脚本witos_config.sql(必须)
5、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置

# db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/witos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=password

提示

配置文件application.properties是在下载的nacos-server包conf目录下。
最新witos-Platform版本>=1.0.1需要下载的nacos-server必须>=2.x.x版本。
默认配置单机模式,nacos集群/多集群部署模式参考 (Nacos支持三种部署模式 (opens new window))

6、打开运行基础模块(启动没有先后顺序)

  • witosGatewayApplication (网关模块 必须)
  • witosAuthApplication (认证模块 必须)
  • witosSystemApplication (系统模块 必须)
  • witosMonitorApplication (监控中心 可选)
  • witosGenApplication (代码生成 可选)
  • witosFileApplication (文件服务 可选)

7、集成seata分布式事务(可选配置,默认不启用)

创建数据库witos_seata并导入数据脚本witos_seata.sql

参考集成nacos配置中心

前端运行

# 进入项目目录
cd witos-ui

# 安装依赖
npm install

# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npm.taobao.org

# 本地开发 启动项目
npm run dev

4、打开浏览器,输入:(http://localhost:80 (opens new window)) 默认账户/密码 admin/admin123)
若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功

建议使用Git克隆,因为克隆的方式可以和witos随时保持更新同步。使用Git命令克隆

git clone https://github.com/roinli/HUIZHI-witos-cloud.git.git

提示

因为本项目是前后端完全分离的,所以需要前后端都单独启动好,才能进行访问。
前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现奇怪的问题)

部署系统

提示

因为本项目是前后端分离的,所以需要前后端都部署好,才能进行访问

后端部署

  • 打包工程文件

在witos项目的bin目录下执行package.bat打包Web工程,生成war/jar包文件。
然后会在项目下生成target文件夹包含war或jar

提示

不同模块版本会生成在witos/witos-xxxx模块下target文件夹

  • 部署工程文件

1、jar部署方式
使用命令行执行:java –jar witos-xxxx.jar 或者执行脚本:witos/bin/run-xxxx.bat

2、war部署方式
witos/pom.xml中的packaging修改为war,放入tomcat服务器webapps

   <packaging>war</packaging>

提示

不同模块版本在witos/witos-xxxx模块下修改pom.xml

  • SpringBoot去除内嵌Tomcat(PS:此步骤不重要,因为不排除也能在容器中部署war)
<!-- 排除内置tomcat -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</exclusion>
	</exclusions>
</dependency>

前端部署

当项目开发完毕,只需要运行一行命令就可以打包你的应用

# 打包正式环境
npm run build:prod

# 打包预发布环境
npm run build:stage

构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。

通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。

publicPath 提示

部署时改变页面js 和 css 静态引入路径 ,只需修改 vue.config.js 文件资源路径即可。

publicPath: "./"; //请根据自己路径来配置更改
export default new Router({
  mode: "hash", // hash模式
});

环境变量

所有测试环境或者正式环境变量的配置都在 .env.development (opens new window)等 .env.xxxx文件中。

它们都会通过 webpack.DefinePlugin 插件注入到全局。

注意!!!

环境变量必须以VUE_APP_为开头。如:VUE_APP_API、VUE_APP_TITLE

你在代码中可以通过如下方式获取:

console.log(process.env.VUE_APP_xxxx);

Tomcat配置

修改server.xml,Host节点下添加

<Context docBase="" path="/" reloadable="true" source=""/>

dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>

Nginx配置

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

		location / {
            root   /home/witos/projects/witos-ui;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

		location /prod-api/{
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

建议开启Gzip压缩

在http.server中加入如下代码对相应的资源进行压缩,可以减少文件体积和加快网页访问速度。

# 开启gzip压缩
gzip on;
# 不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 16 64K;
# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.1;
# 压缩级别,1-10,数字越大压缩的越好,时间也越长
gzip_comp_level 5;
# 进行压缩的文件类型
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary on;
# IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";

常见问题

  1. 如果使用Mac需要修改nacos配置witos-file-dev.yml文件路径path
  2. 如果使用Linux 提示表不存在,设置大小写敏感配置在/etc/my.cnf添加lower_case_table_names=1,重启MYSQL服务
  3. 如果提示当前权限不足,无法写入文件请检查witos-file-dev.yml中的path路径或logback.xml中的log.path路径是否有可读可写操作权限

如遇到无法解决的问题请到Issues (opens new window)反馈,会不定时进行解答。

最近更新:: 2025/9/3 14:24
Contributors: 王前跃, liwenhui
Prev
快速了解
Next
项目介绍