/pi-cloud

pi-cloud 是基于 Spring Cloud 2022 & Spring Cloud Alibaba 2022、Spring Boot 3.0、MyBatis-Plus、Spring Authorization Server 1.0.0 等最新主流技术栈构建的后台管理系统。

Primary LanguageJavaApache License 2.0Apache-2.0

pi-cloud

简介

pi-cloud 是基于 Spring Cloud 2022 & Spring Cloud Alibaba 2022、Spring Boot 3.0、MyBatis-Plus、Spring Authorization Server 1.0.0 等最新主流技术栈构建的后台管理系统。

特性

  • 基于 Spring Cloud 2022 & Spring Cloud Alibaba 2022 提供微服务开发的一站式解决方案。
  • 基于 Spring Authorization Server 1.0.0、OAuth 2.0 Resource Server、JWT 的统一认证鉴权。
  • 只保留核心功能,无过度自定义封装,易于学习和功能扩展。

预览

image-20221104164240613.png image-20221104164357964
image-20221104164416152 image-20221104164428444
Snipaste_2022-11-22_11-19-14 Snipaste_2022-11-22_11-12-16

源码

Gitee GitHub
后端 https://gitee.com/linjiabin100/pi-cloud.git https://github.com/zengpi/pi-cloud.git
前端 https://gitee.com/linjiabin100/pi-cloud-web.git https://github.com/zengpi/pi-cloud-web.git

参考文档

一定要阅读 pi-cloud 的 参考文档 ,它描述了开发、运行 pi-cloud 的必要信息以及核心原理。

阅读 个人博客 也是一个不错的选择,它是对文档很好的一个补充,阅读它会对项目有更深的理解。

项目模块

- pi-cloud
	- pi-common					公共模块
		- pi-common-feign		OpenFeign
		- pi-common-logging		日志
		- pi-common-mybatis		MyBatis
		- pi-common-redis		Redis
		- pi-common-security	资源服务器
		- pi-common-swagger		OpenAPI 文档
		- pi-common-util		工具
		- pi-common-web			Web
	- pi-core					系统核心模块
		- pi-auth				授权服务【8007】
		- pi-admin				管理服务
			- pi-admin-api		服务调用公共 API 模块
			- pi-admin-biz		业务处理模块【8017】
		- pi-monitor			监控模块【8027】
		- pi-gateway			网关服务【9731】

项目功能模块

- 系统管理
	- 用户管理
	- 菜单管理
	- 角色管理
	- 客户端管理
- 系统监控
	- 接口文档
	- 操作日志
	- 服务监控

快速开始

系统要求

在开始之前,您需要确保您的计算机上安装了必要的环境。

pi-cloud 需要 Java 17+,同时支持 Maven 3.5 及以上版本。实际上,pi-cloud 是在 Jdk 17.0.5 下开发的。

此外,要保证 pi-cloud 的正常运行,还需要在您的计算机中至少存在:Nacos、MySQL、Redis。下表是以上环境版本清单:

版本
* Jdk 17.0.5
* MySQL 8.0.31
* Redis 6.2.7
* Nacos 2.2.0
Maven 3.8.6

请按照上表中的指定版本进行安装,特别是 Nacos,如果版本较低,可能会出现各种问题。

安装方式请点击上表对应链接或查看对应官网。

注意:项目中 MySQL 默认用户名密码均为 root,Redis 需要密码 123456

项目下载

$ git clone https://gitee.com/linjiabin100/pi-cloud.git
# or
$ git clone https://github.com/zengpi/pi-cloud.git

修改 hosts

pi-cloud 配置中的地址均设置为域名,比如:

spring:
    cloud:
        nacos:
          server-addr: pi-nacos:8848

注意 server-addr 的值 pi-nacos 并不是 ip 地址。

如果不想修改它,您需要修改 hosts 文件。Windows 中 hosts 文件位于 C:\Windows\System32\drivers\etc\hosts,打开该文件,在文件末尾追加:

127.0.0.1 pi
192.168.126.128 pi-redis
192.168.126.128 pi-nacos
192.168.126.128 pi-db

其中,192.168.126.128 为我的虚拟机的 IP,您需要将它修改成你自己的。

为方便修改,您还可以选择使用工具 SwitchHosts,你可以很轻松地安装并使用它。

注意:如果 hosts 文件无法写入内容,请将该文件属性的只读复选框取消勾选,具体是:右键 hosts -> 属性 -> 取消勾选“只读”复选框

导入 Nacos

打开浏览器,访问 http://pi-nacos:8848 (pi-nacos 是 hosts 文件中定义的,如果你没有修改该文件,请将它改成你的主机对应的 IP),输入用户名密码(默认为 nacos/nacos),在“配置管理”的“配置列表”中,点击“导入配置”,选择项目目录下的 resources/nacos_config_export_xxx.zip,确认即可。

如果你的 MySQL 和 Redis 的密码与系统要求中的不一致,您需要修改它们。

分别编辑 pi-auth.yaml、pi-mybatis.yaml 和 pi-redis.yaml,找到类似下面的配置,修改成符合你的要求的配置:

spring:
    dataSource:
        type: com.alibaba.druid.pool.DruidDataSource
        username: root
        password: root
        url: jdbc:mysql://pi:3306/${pi.db-name}
    redis:
        host: pi-redis
        password: 123456

注意 dataSource url 属性中的 ${pi.db-name},它是在项目的 bootstrap.yml 中定义的。你可以在 这里 找到关于它的示例:

pi:
  # 数据库名称
  db-name: pi-cloud

导入数据库

使用你喜欢的方式连接到 MySQL 数据库中,新建一个数据库,它的名称是 pi-cloud,并将项目目录下的 doc/pi-cloud_xxx.sql 导入到新建的数据库中。

启动项目

准备好环境后,你可以将项目导入到你熟悉的 IDE 中,然后找到启动类启动必须的服务。核心服务启动位置:

pi-core/pi-admin/pi-admin-boot/**/AdminApp.java
pi-core/pi-auth/**/AuthApp.java
pi-core/pi-gateway/**/GatewayApp.java