{"id":23407788,"url":"https://github.com/battcn/wemirr-platform","last_synced_at":"2025-04-04T15:05:14.095Z","repository":{"id":45514220,"uuid":"390992120","full_name":"battcn/wemirr-platform","owner":"battcn","description":"一款纯为爱发电的开源多租户、SAAS、系统，SpringCloud2024、Mysql、Mybatis-Plus、Spring Cloud Alibaba2023 、有BUG第一时间修复","archived":false,"fork":false,"pushed_at":"2025-02-14T01:36:44.000Z","size":22867,"stargazers_count":148,"open_issues_count":3,"forks_count":49,"subscribers_count":7,"default_branch":"v3-dev","last_synced_at":"2025-03-28T14:04:43.870Z","etag":null,"topics":["java","mysql","rabbitmq","redis","saas","spring-cloud","vue3"],"latest_commit_sha":null,"homepage":"https://cloud.battcn.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/battcn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-30T08:36:11.000Z","updated_at":"2025-03-25T09:02:53.000Z","dependencies_parsed_at":"2023-09-24T10:46:04.416Z","dependency_job_id":"c6457f49-410f-4182-b074-46133718a097","html_url":"https://github.com/battcn/wemirr-platform","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/battcn%2Fwemirr-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/battcn%2Fwemirr-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/battcn%2Fwemirr-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/battcn%2Fwemirr-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/battcn","download_url":"https://codeload.github.com/battcn/wemirr-platform/tar.gz/refs/heads/v3-dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198440,"owners_count":20900079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","mysql","rabbitmq","redis","saas","spring-cloud","vue3"],"created_at":"2024-12-22T14:30:25.271Z","updated_at":"2025-04-04T15:05:14.078Z","avatar_url":"https://github.com/battcn.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wemirr-platform\n\n[![个人信息](https://img.shields.io/badge/author-唐亚峰-blue.svg)](http://blog.battcn.com/)\n[![项目交流群](https://img.shields.io/badge/chat-项目交流群-yellow.svg)](https://qm.qq.com/cgi-bin/qm/qr?k=7HSbjhK2b23CyodXUX2tR_ldigjrAlPT\u0026jump_from=webapi)\n![JDK Version](https://img.shields.io/badge/JAVA-JDK8+-red.svg)\n\n![Total visits](https://visitor-badge.laobi.icu/badge?page_id=wemirr-platform\u0026title=total%20visits)  [![Total lines](https://tokei.rs/b1/github/battcn/wemirr-platform?category=lines)](https://tokei.rs/b1/github/battcn/wemirr-platform?category=lines)  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?label=license)](https://www.codacy.com/gh/battcn/wemirr-platform/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=battcn/wemirr-platform\u0026amp;utm_campaign=Badge_Grade)  [![Stars](https://img.shields.io/github/stars/battcn/wemirr-platform.svg?label=Stars\u0026tyle=flat\u0026logo=GitHub)](https://github.com/battcn/wemirr-platform/stargazers)  [![Stars](https://gitee.com/battcn/wemirr-platform/badge/star.svg?theme=gvp)](https://gitee.com/battcn/wemirr-platform/stargazers)\n\n[![Spring Boot](https://img.shields.io/maven-central/v/org.springframework.boot/spring-boot-dependencies.svg?label=Spring%20Boot\u0026logo=Spring)](https://search.maven.org/artifact/org.springframework.boot/spring-boot-dependencies)  [![Spring Cloud](https://img.shields.io/maven-central/v/org.springframework.cloud/spring-cloud-dependencies.svg?label=Spring%20Cloud\u0026logo=Spring)](https://search.maven.org/artifact/org.springframework.cloud/spring-cloud-dependencies)  [![Spring Cloud Alibaba](https://img.shields.io/maven-central/v/com.alibaba.cloud/spring-cloud-alibaba-dependencies.svg?label=Spring%20Cloud%20Alibaba\u0026logo=Spring)](https://search.maven.org/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies)\n\n**WP的使命：打破假开源，做全网最优秀、最简单、最漂亮的开源SAAS、多租户云平台架构。从开源中来,到开源中去,让大家有更多时间`摸鱼`、`学习`、`陪伴家人`、`锻炼身体`、`找对象`**\n\n## 谢鸣\n\n**欢迎更多的朋友来添砖加瓦,在大AI时代来领之前留下浓墨一笔**\n\n| 来源  | 作者    | 贡献           |\n|-----|-------|--------------|\n| QQ群 | ddCat | WMS 核心功能     |\n| 微信群 | xJh_  | 文件存储/存储设置    |\n| 微信群 | 千里风   | 提供 PR 环境 服务器 |\n\n\n\n## 版本管理\n\n**项目代码全部开源,非阉割版,有`Spring Cloud` 工作经验的 无需付费协助一样可以玩转项目**\n\n**v2 -\u003e v3 是破坏性升级,不推荐已稳定运行的系统升级,工程量比较大**\n\n**经过多方调研和反馈,国内大部分都是伪 OAuth2.x 用户,V3版登录未采用登录 OAuth2.x 协议,但权限框架是 `sa-token` 可以很方便就配置 `sso-server`\n和 `oauth2-server`**\n\n| 版本     | 描述                                                             |\n|--------|----------------------------------------------------------------|\n| v3-dev | JDK17、SCA2023、SC2024、Sa-Token、新用户推荐使用 v3-dev 分支（强烈推荐,后期重心在它）   |\n| v2-dev | JDK17、SCA2022、SC2023、OAuth2.1、Security 请使用 v2-dev 分支（只提供BUG修复） |\n| v1-dev | ~~~JDK8 - JDK11 的请使用 vben 分支（废弃）~~~                            |\n\n\u003e 开发文档\n\n[开发文档 WP-DOC](https://docs.battcn.com)\n\n**本项目反馈BUG和运行报错提供无偿技术支持（包括远程协助排查问题）**\n\n\n\u003e 付费功能\n\n**对于 `wemirr-platform` 开源永远是第一位，业务模块企业想偷懒可以考虑付费购买降低企业成本**\n\n**可以进微信群交流和提需求（提了不一定做,请理性付费，合理的需求提交ISSUE或者添加作者微信沟通也一样）**\n\n**模块定制化开发、远程支持、协助私有化部署**\n\n\u003e 赞赏\n\n- 敬请期待（**微信： battcn2022**）\n\n## 演示地址\n\n[演示地址](https://cloud.battcn.com/)\n\n\u003e 平台账号 0000 账号 admin 密码 123456\n\n\u003e 租户账号 8888 账号 admin 密码 123456\n\n## 软件架构\n\n\u003e 技术交流Q群： 789517089\n\nVue、Spring Cloud Alibaba 2023、Spring Cloud 2023、Nacos、Sentinel、 Mybatis-Plus、多租户、灰度、Sa-Token、Redis、Mysql、\n\n### 特点\n\n- 链路追踪：支持 `skywalking`、`zikpin`、`pinpoint` 等多种链路追踪（案例采用 `skywalking`）\n- 布局优雅：简洁、多套主题以及导览模式任意组合搭配\n- 功能齐全：SAAS/多租户/RBAC权限控制全都具备，下载代码开箱即用\n- 消息推送：内置基于WebSocket、Redis实现的分布式消息\n- 动态网关：支持页面配置(`Redis`)与 `Nacos` 两种推送方式、动态开启关闭网关路由\n- 网关管理：支持流量控制、拉黑名单等\n- 消息总线：使用 `RabbitMq` 做总线用于支持`动态数据`源消息广播\n- 插拔组件：除去必要工程，可选的都在 `wemirr-platform-plugin` 按需使用\n- 大道至简：代码优雅、简短、不管是开发前端还是后端,快就完事了，下面给出一个简单的示例\n- 性能高效：集成链路追踪在2M网络环境下接口最慢不超过 `300毫秒` 普遍 `10-150 毫秒` 之间\n- 标准文档：集成标准的 `SpringDoc =\u003e Swagger V3` 功能更强大,UI更优美\n- 分布式任务：整合 `snail-job` 替换 `xxl-job` 提供分布式调度任务功能\n\n\u003e Vue 开发只需要几行简短的代码即可完成单表的CRUD，大大提升开发效率\n\n``` vue\n\u003ctemplate\u003e\n  \u003cfs-crud ref=\"crudRef\" v-bind=\"crudBinding\"/\u003e\n\u003c/template\u003e\n```\n\n## 介绍\n\n开源里面UI最好、最容易上手的、中台 、SAAS 、 多租户功能、最最少的代码实现功能\n\n[配套前端](https://gitee.com/battcn/wemirr-platform-ui) 配套的 UI\n\n[OpenAPi3](https://springdoc.org/) Swagger 标准版\n\n### 注意事项\n\n**下载项目后请先本地 `mvn install wemirr-platform-dependencies` 和 `mvn install wemirr-platform-framework`**\n\n### 环境安装\n\n提供 `docker-compose.yml` 安装（文件在`附件/docker/docker-compose.yml`）\n\n一般安装 `latest` 版本即可，也可以自行指定版本 `docker search` 或者自己上 `docker hub` 看版本\n\n如果 `docker` 运行开发环境，建议先创建一个网络 `docker network create wemirr` 后面容器都走统一网络\n\n\u003e 具体用法: **`docker run --net wemirr --name xxx`**\n\n\u003e 必要环境\n\n``` shell script\ndocker pull redis:latest\ndocker run -itd --name redis -p 6379:6379 redis\n\n安装 Mysql \ndocker pull mysql:latest\ndocker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql\n\n\n安装 Nacos\ndocker pull nacos/nacos-server\ndocker run --name nacos -itd -p 8848:8848 -p 9848:9848 -p 9849:9849 --restart=always -e MODE=standalone nacos/nacos-server\n\n安装 RabbitMQ\ndocker pull docker.io/macintoshplus/rabbitmq-management\ndocker run -d  -p 5671:5671 -p 5672:5672  -p 15672:15672 -p 15671:15671  -p 25672:25672  rabbitmq_image_id\n```\n\n\u003e 可选环境\n\n``` shell script\n## 非必须 =\u003e  Sentinel 流量保护大部分公司是用不上的,如果为了技术而技术,当我没说\n安装 Sentinel-Dashboard\ndocker pull bladex/sentinel-dashboard\ndocker run -i -t -d -p 8858:8858 -p 8719:8719  bladex/sentinel-dashboard\n\n##非必须 =\u003e 安装 skywalking（如果你公司没运维，那你大概率用不上 skywalking 如不需要使用那后面的命令都可以不用看了 ）\n# 8.7.0 启动有问题\n\ndocker pull elasticsearch:7.9.3\ndocker pull apache/skywalking-oap-server:8.5.0-es7\ndocker pull apache/skywalking-ui:8.5.0\n\n# 如果要后台运行 请加 -d\ndocker network create wemirr\ndocker run --name elasticsearch --net wemirr -p 9200:9200 -p 9300:9300 -d -e \"discovery.type=single-node\" elasticsearch:7.9.3\ndocker run --name oap --net wemirr --restart always -p 1234:1234 -p 12800:12800 -p 11800:11800 -d -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:8.5.0-es7\ndocker run --name oap-ui --net wemirr --restart always -p 10086:8080 -d -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=oap:12800 apache/skywalking-ui:8.5.0\n\n# IDEA 配置\nVmOption -javaagent:/Users/battcn/Desktop/apache-skywalking-apm-bin/agent/skywalking-agent.jar\nEnvironment variables SW_AGENT_NAME=wemirr-platform-gateway\nEnvironment variables SW_AGENT_NAME=wemirr-platform-iam\n\n# 启动命令\nnohup java -javaagent:/opt/wemirr-platform/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=wemirr-platform-gateway -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar wemirr-platform-gateway.jar -d \u003e logs/start_gateway.log \u0026\nnohup java -javaagent:/opt/wemirr-platform/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=wemirr-platform-iam -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar wemirr-platform-iam.jar -d --spring.profiles.active=demo \u003e logs/start_iam.log \u0026\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbattcn%2Fwemirr-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbattcn%2Fwemirr-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbattcn%2Fwemirr-platform/lists"}