# 蘑菇博客 **Repository Path**: source-backup/mogu_blog_v2 ## Basic Information - **Project Name**: 蘑菇博客 - **Description**: 蘑菇博客(MoguBlog),一个基于微服务架构的前后端分离博客系统。Web端使用Vue + Element , 移动端使用uniapp和ColorUI。后端使用Spring cloud + Spring boot + mybatis-plus进行开发,使用 Jwt + Spring Security做登录验证和权限校验,使用ElasticSearch和Solr作为全文检索服务,使用Github Actions完成博客的持续集成,使用ELK收集博客日志,文件支持上传七牛云和Minio,支持Docker Compose脚本一键部署。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: Nacos - **Homepage**: http://www.moguit.cn/#/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3053 - **Created**: 2024-10-22 - **Last Updated**: 2024-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蘑菇博客
蘑菇博客,一个基于微服务架构的前后端分离博客系统
[项目介绍](#项目介绍) | [站点演示](#站点演示) | [项目特点](#项目特点) | [技术架构](#技术选型) | [项目目录](#项目目录) | [项目文档](#项目文档) | [快速开始](#快速开始) | [视频教程](#视频教程)| [项目截图](#移动端截图) | [更新记录](https://gitee.com/moxi159753/mogu_blog_v2/releases) | [笔记仓库](https://gitee.com/moxi159753/LearningNotes) ## 前言 [**陌溪**](https://gitee.com/moxi159753/LearningNotes/raw/master/doc/images/qq/添加陌溪.png) 是一个从三本院校一路摸滚翻爬上来的程序员。目前就职于字节跳动的Data商业化广告部门,是字节跳动全线产品的商业变现研发团队。这两天创建了一个 **微信公众号【[陌溪教你学编程](https://gitee.com/moxi159753/LearningNotes/raw/master/doc/images/qq/公众号2.jpg)】**,未来将会在公众号上持续性的输出很多原创小知识以及学习资源,欢迎各位小伙伴关注我,和我一起共同学习,同时我也希望各位小伙伴能够给**蘑菇博客**项目多多 **Star** 支持,您的**点赞**就是我维护的动力!
     
 |
## 后期维护
项目后台目前有 **Eureka** 版本和 **Nacos** 版本,其中 **Eureka** 版本使用的是 **SpringCloud** 一些组件,**Nacos** 版本使用的是 **SpringCloudAlibaba** 的一些组件,例如 **Nacos**、**Sentinel** 等
- **Eureka** 版本请切换至 **Eureka** 分支(**已停止维护**,将不再进行新功能的开发)
- **Nacos** 版本请切换至 **Nacos** 分支(作为以后**长期维护**的分支)
- **master** 分支为主分支,是基于 **Nacos** 分支的稳定版本
## 蘑菇博客社区版
蘑菇博客的定位是个人博客系统,而蘑菇博客社区版定位是多人博客系统。蘑菇社区版在原有蘑菇博客的基础上加入了更多的社区玩法,如:支持用户投稿、个人主页、用户签到、关注/取关、收藏/点赞、积分模块、VIP特权功能、用户动态(蘑菇圈)、面经模块、课程模块、消息通知、公众号登录/管理、私信/群聊模块、SEO优化、图片敏感审核、任务模块、成就模块、勋章模块、支付模块、提现模块、消息触达、资源模块、抽奖模块等。。
关于蘑菇社区功能模块的介绍,可查看:[蘑菇社区功能模块介绍](https://vsp58xj3kr.feishu.cn/wiki/wikcnHtRsM9HojaYqrvHWjMu0Ah)
关于蘑菇社区版的**学习**/**商用授权**,以及查看版本对比,可以查看:[点我跳转](https://www.moguit.cn/version)
社区版演示环境如下,目前 [蘑菇官网](https://www.moguit.cn/) 使用的是蘑菇博客社区版代码。
> 【社区演示前端】:http://w.moguit.cn
>
> 【社区演示后端】:http://a.moguit.cn
>
> 【演示账号】:[点击获取](https://gitee.com/moxi159753/mogu_blog_v2/raw/Nacos/doc/images/qq/%E8%8E%B7%E5%8F%96%E6%BC%94%E7%A4%BA%E7%8E%AF%E5%A2%83%E8%B4%A6%E5%8F%B7.jpg)
目前,蘑菇社区版源码暂未开源,可通过 [赞助蘑菇](https://www.moguit.cn/version) 的方式获取源码授权,详情可添加陌溪微信了解:[coder_moxi](https://gitee.com/moxi159753/mogu_blog_v2/raw/Nacos/doc/images/qq/coder_moxi.png) (备注:蘑菇社区)
## 蘑菇博客Go版本
[**mogu_blog_go**](https://gitee.com/moxi159753/mogu_blog_go) 是根据**蘑菇博客**改编的一个 **Golang** 简化版分支,实现了蘑菇博客后台原有的大部分**基础功能**,同时前端代码和数据库基本没有变化,因此可以直接使用蘑菇博客原有的前端页面。
[**mogu_blog_go**](https://gitee.com/moxi159753/mogu_blog_go) 目前采用的技术有:**beego**、**gorm**、**mysql**、**redis** 和 **nginx**。相比于蘑菇博客微服务版,**Golang**版蘑菇能够做到 **1C2G** 的服务器轻松运行,再也不怕网站第二天起来就宕机了~。
参考[蘑菇博客Golang版安装指南](http://moguit.cn/info/593),快速在 **Windows** 平台搭建蘑菇博客Go版开发环境
## 项目中初始用户和密码
- **后台登录**:用户:admin,密码:mogu2018
- 前台登录:用户:mogu2018,密码:mogu2018
- **Mysql**:用户:root,密码:mogu2018
- **Redis**:密码:mogu2018
- **远程SSH初始密码**:用户:root,密码:mogu2018
- **RabbitMQ管理页面:** 用户:admin,密码:mogu2018
- **Nacos管理页面:** 用户:nacos,密码:nacos
- **Sentinel管理页面:** 用户:sentinel,密码:sentinel
- **蘑菇博客监控页面**:用户:user,密码:password123
- **Druid初始密码:** 用户:admin,密码:123456
## 项目特点
- 友好的代码结构及注释,便于阅读及二次开发
- 实现前后端分离,通过 **Json** 进行数据交互,前端再也不用关注后端技术
- 页面交互使用 **Vue2.x**,极大的提高了开发效率。
- 引入**Swagger** 文档支持,方便编写 **API** 接口文档。
- 引入**RabbitMQ** 消息队列,用于邮件发送、更新 **Redis** 和 **Solr**
- 引入**JustAuth** 第三方登录开源库,支持 **Gitee**、**Github** 账号登录。
- 引入**ElasticSearch** 和 **Solr** 作为全文检索服务,并支持可插拔配置
- 引入**Github Actions** 工作流,完成蘑菇博客的持续集成、持续部署。
- 引入七牛云对象存储,同时支持本地文件存储
- 引入 **RBAC** 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
- 引入 **Zipkin** 链路追踪,聚合各业务系统调用延迟数据,可以一眼看出延迟高的服务
- 采用**自定义参数校验注解**,轻松实现后端参数校验
- 采用 **AOP** + 自定义注解 + **Redis** 实现限制IP接口访问次数
- 采用自研的评论模块,实现评论邮件通知
- 采用 **Nacos** 作为服务发现和配置中心,轻松完成项目的配置的维护
- 采用 **Sentinel** 流量控制框架,通过配置再也不怕网站被爆破
- 采用[uniapp](https://uniapp.dcloud.io/) 和[ColorUi](https://github.com/weilanwl/ColorUI) 完成蘑菇博客的移动端门户页面搭建
- 支持多种文本编辑器,**Markdown** 编辑器([Vditor](https://github.com/Vanessa219/vditor))和富文本编辑器([CKEditor](https://github.com/ckeditor/ckeditor4))随心切换
- 采用 **ElasticStack**【**ElasticSearch** + **Beats** + **Kibana** + **Logstash**】[搭建蘑菇博客日志收集](http://moguit.cn/info/436)
- 采用 **Docker Compose** 完成容器编排,**Portainer** 实现容器可视化,支持[一键部署线上环境](http://www.moguit.cn/info/565)
## 项目文档
文档地址:http://docs.moguit.cn
## 项目地址
目前项目托管在 **Gitee** 和 **Github** 平台上中,欢迎大家 **Star** 和 **Fork** 支持~
- Gitee地址:https://gitee.com/moxi159753/mogu_blog_v2
- Github地址:https://github.com/moxi624/mogu_blog_v2
## 项目目录
- MoguBlog 是一款基于最新技术开发的多人在线、简洁的博客系统。
- mogu_admin: 提供admin端API接口服务;
- mogu_web:提供web端API接口服务;
- mogu_eureka: 服务发现和注册【注: Nacos分支没有该目录,用Nacos作为服务发现组件】
- mogu_picture: 图片服务,用于图片上传和下载;
- mogu_sms:消息服务,用于更新ElasticSearch、Solr索引、邮件和短信发送
- mogu_monitor:监控服务,集成SpringBootAdmin用于管理和监控SpringBoot应用程序
- mogu_spider:爬虫服务`(目前还未完善)`
- mogu_gateway:网关服务`(目前还未完善)`
- mogu_zipkin:链路追踪服务,`目前使用java -jar的方式启动`
- mogu_search:搜索服务,ElasticSearch和Solr作为全文检索工具,[支持可插拔配置](http://www.moguit.cn/info/119),默认使用SQL搜索
- mogu_commons:公共模块,主要用于存放Entity实体类、Feign远程调用接口、以及公共config配置
- mogu_utils: 是常用工具类;
- mogu_xo: 是存放 VO、Service,Dao层的
- mogu_base: 是一些Base基类
- doc: 是蘑菇博客的一些文档和数据库文件
- vue_mogu_admin:VUE的后台管理页面
- vue_mogu_web:VUE的门户网站
- uniapp_mogu_web:基于uniapp 和 colorUi 的蘑菇博客移动端门户页面(Nacos分支)
- nuxt_mogu_web:Nuxt的门户网站,主要用于支持SEO搜索引擎优化`(目前还未完善)`
## 技术选型
### 系统架构图

>  蘑菇博客系统架构图,使用 [Processon](https://www.processon.com/i/5e380df1e4b05b335ffa81e9) 在线绘制
### 后端技术
|      技术      |           说明            |                             官网                             |
| :------------: | :-----------------------: | :----------------------------------------------------------: |
|   SpringBoot   |          MVC框架          | [ https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) |
|  SpringCloud   |        微服务框架         |           https://spring.io/projects/spring-cloud/           |
| SpringSecurity |      认证和授权框架       |          https://spring.io/projects/spring-security          |
|  MyBatis-Plus  |          ORM框架          |                   https://mp.baomidou.com/                   |
|   Swagger-UI   |       文档生产工具        | [ https://github.com/swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui) |
|     Kibana     |     分析和可视化平台      |               https://www.elastic.co/cn/kibana               |
| Elasticsearch  |         搜索引擎          | [ https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch) |
|     Beats      |     轻量型数据采集器      |               https://www.elastic.co/cn/beats/               |
|    Logstash    | 用于接收Beats的数据并处理 |              https://www.elastic.co/cn/logstash              |
|      Solr      |         搜索引擎          |                http://lucene.apache.org/solr/                |
|    RabbitMQ    |         消息队列          |   [ https://www.rabbitmq.com/](https://www.rabbitmq.com/)    |
|     Redis      |        分布式缓存         |                      https://redis.io/                       |
|     Docker     |        容器化部署         |      [ https://www.docker.com](https://www.docker.com/)      |
|     Druid      |       数据库连接池        | [ https://github.com/alibaba/druid](https://github.com/alibaba/druid) |
|     七牛云     |     七牛云 - 对象储存     |         https://developer.qiniu.com/sdk#official-sdk         |
|      JWT       |        JWT登录支持        |                 https://github.com/jwtk/jjwt                 |
|     SLF4J      |         日志框架          |                    http://www.slf4j.org/                     |
|     Lombok     |     简化对象封装工具      | [ https://github.com/rzwitserloot/lombok](https://github.com/rzwitserloot/lombok) |
|     Nginx      |  HTTP和反向代理web服务器  |                      http://nginx.org/                       |
|    JustAuth    |     第三方登录的工具      |             https://github.com/justauth/JustAuth             |
|     Hutool     |      Java工具包类库       |                  https://hutool.cn/docs/#/                   |
|    阿里大于    |       短信发送平台        |            https://doc.alidayu.com/doc2/index.htm            |
| Github Actions |        自动化部署         |              https://help.github.com/en/actions              |
|     Zipkin     |         链路追踪          |             https://github.com/openzipkin/zipkin             |
| Flexmark-java  |     Markdown转换Html      |            https://github.com/vsch/flexmark-java             |
|   Ip2region    |     离线IP地址定位库      |          https://github.com/lionsoul2014/ip2region           |
|     Minio      |     本地对象存储服务      |                       https://min.io/                        |
| Docker Compose |      Docker容器编排       |               https://docs.docker.com/compose/               |
|   Portainer    |     Docker可视化管理      |            https://github.com/portainer/portainer            |
### 前端技术
|         技术          |                  说明                   |                             官网                             |
| :-------------------: | :-------------------------------------: | :----------------------------------------------------------: |
|        Vue.js         |                前端框架                 |                      https://vuejs.org/                      |
|      Vue-router       |                路由框架                 |                  https://router.vuejs.org/                   |
|         Vuex          |            全局状态管理框架             |                   https://vuex.vuejs.org/                    |
|        Nuxt.js        |        创建服务端渲染 (SSR) 应用        |                    https://zh.nuxtjs.org/                    |
|        Element        |               前端ui框架                |    [ https://element.eleme.io](https://element.eleme.io/)    |
|         Axios         |              前端HTTP框架               | [ https://github.com/axios/axios](https://github.com/axios/axios) |
|        Echarts        |                图表框架                 |                      www.echartsjs.com                       |
|       CKEditor        |              富文本编辑器               |                    https://ckeditor.com/                     |
|     Highlight.js      |            代码语法高亮插件             |         https://github.com/highlightjs/highlight.js          |
|        Vditor         |             Markdown编辑器              |             https://github.com/Vanessa219/vditor             |
|      vue-cropper      |              图片裁剪组件               |           https://github.com/xyxiao001/vue-cropper           |
| vue-image-crop-upload |           vue图片剪裁上传组件           |      https://github.com/dai-siki/vue-image-crop-upload       |
|   vue-emoji-comment   |          Vue Emoji表情评论组件          |       https://github.com/pppercyWang/vue-emoji-comment       |
|     clipboard.js      |            现代化的拷贝文字             |                  http://www.clipboardjs.cn/                  |
|      js-beautify      |           美化JavaScript代码            |         https://github.com/beautify-web/js-beautify          |
|     FileSaver.js      |            保存文件在客户端             |           https://github.com/eligrey/FileSaver.js            |
|      SortableJS       |       功能强大的JavaScript 拖拽库       |                  http://www.sortablejs.com/                  |
|   vue-side-catalog    |               目录导航栏                |        https://github.com/yaowei9363/vue-side-catalog        |
|        uniapp         |            移动端跨平台语言             |                  https://uniapp.dcloud.io/                   |
|        colorUi        |         专注视觉的小程序组件库          |             https://github.com/weilanwl/ColorUI              |
|       showdown        | 用Javascript编写的Markdown 到Html转换器 |            https://github.com/showdownjs/showdown            |
|       turndown        | 用JavaScript编写的HTML到Markdown转换器  |           https://github.com/domchristie/turndown            |
## 快速开始
### 【推荐】一条命令部署蘑菇博客
参考 [如何使用一条命令完成蘑菇博客部署](http://www.moguit.cn/info/597), 在云服务器上执行下面命令,完成一键部署蘑菇博客
```bash
wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh
```
Bilibili一键部署视频:[20分钟部署一个微服务架构的博客系统](https://www.bilibili.com/video/BV13y4y1V7Us)
### [推荐] Windows+VMware一键搭建蘑菇博客本地开发环境
参考 [Windows+VMware一键搭建蘑菇博客本地开发环境](http://www.moguit.cn/info/583),快速在 **Windows** 平台搭建蘑菇博客开发环境,将中间件安装在 **VMware** 中。
### Windows环境下搭建蘑菇博客
参考 [window环境下配置蘑菇博客环境](http://www.moguit.cn/info/14),能够在 **Windows**下搭建蘑菇博客的开发环境,同时将**所有组件**安装在**Windows** 环境中
### [推荐] DockerCompose一键部署蘑菇博客(Nacos版)
参考 [DockerCompose一键部署蘑菇博客(Nacos版)](http://www.moguit.cn/info/1151) ,在 **Linux** 服务器中,一键完成蘑菇博客项目的部署
### Docker搭建蘑菇博客
参考 [使用Docker快速搭建蘑菇博客(Eureka分支)](http://www.moguit.cn/info/299),快速在Linux服务器中搭建好博客运行环境,通过发布 **Jar** 包的方式完成部署
参考 [使用Docker快速搭建蘑菇博客(Nacos分支)](http://www.moguit.cn/info/224),快速在Linux服务器中搭建好博客运行环境,通过发布 **Jar** 包的方式完成部署
### 蘑菇博客部署到云服务器
【**推荐**】参考[IDEA发布蘑菇博客Docker镜像到云服务器(适用于DockerCompose部署)](http://moguit.cn/info/588),在你修改Nacos分支博客源码后,将重新制作镜像部署到云服务器,然后通过DockerCompose进行启动。
参考[蘑菇博客如何部署到阿里云服务器(Eureka分支)](http://moguit.cn/info/238),在你修改Eureka分支博客源码后将项目打包部署到云服务器
参考[蘑菇博客如何部署到阿里云服务器(Nacos分支)](http://moguit.cn/info/405),在你修改Nacos分支博客源码后将项目打包部署到云服务器
### 使用Github Actions完成蘑菇博客持续集成
参考 [使用Github Action完成蘑菇博客持续集成](http://moguit.cn/info/13) ,在你提交一个 **push** 请求后,通过 **Github Actions** 能够完成蘑菇博客自动化 编译、打包、部署等操作。
### 切换搜索模式
参考[蘑菇博客切换搜索模式](http://moguit.cn/info/119),完成蘑菇博客的搜索引擎切换,目前支持 **Solr**、**ElasticSearch**、**SQL** 的方式
### 配置七牛云对象存储
参考[蘑菇博客切换七牛云存储](http://moguit.cn/info/202),配置文件的七牛云对象存储,及本地文件存储
### 使用Zipkin搭建蘑菇博客链路追踪
参考[使用Zipkin搭建蘑菇博客链路追踪](http://www.moguit.cn/info/95),通过聚合各业务系统调用延迟数据,达到链路调用监控跟踪,快速定位其中延迟高的服务
### 使用Nacos搭建蘑菇博客服务注册和配置中心
参考[蘑菇博客Nacos部署指南](http://www.moguit.cn/info/248),搭建蘑菇博客的服务注册和配置中心
### 使用Sentinel搭建蘑菇博客流量控制
参考[蘑菇博客Sentinel安装指南](http://www.moguit.cn/info/198),**Sentinel** 被称为分布式系统的流量防卫兵,相当于Hystrix
### 蘑菇博客QQ小程序发布
参考[蘑菇博客QQ小程序发布指南](http://www.moguit.cn/info/223),完成蘑菇博客 **uniapp** 移动端的启动和发布
### 【推荐】蘑菇博客微信小程序发布
参考[蘑菇博客微信小程序部署指南](http://www.moguit.cn/info/605),完成蘑菇博客 **uniapp** 移动端的启动和发布
### 蘑菇博客扩展新的功能和页面
参考[蘑菇博客如何扩展新的功能和页面](http://www.moguit.cn/info/141),在蘑菇博客现有架构基础上,开发自己需要的页面。
###  使用ELK搭建蘑菇博客日志收集
参考[搭建蘑菇博客日志收集](http://www.moguit.cn/info/436),使用 **Docker** 快速搭建 **ELK** 环境用于蘑菇博客日志收集
## 搭建网站免费CDN加速访问
参考 [网站打开花了20秒,我决定自建蘑菇CDN](http://www.moguit.cn/info/976) ,免费搭建自己的CDN加速
## 环境搭建
### 开发工具
|     工具     |       说明        |                             官网                             |
| :----------: | :---------------: | :----------------------------------------------------------: |
|     IDEA     |    Java开发IDE    |           https://www.jetbrains.com/idea/download            |
|   WebStorm   |    前端开发IDE    |             https://www.jetbrains.com/webstorm/              |
| RedisDesktop |  Redis可视化工具  | [ https://redisdesktop.com/download](https://redisdesktop.com/download) |
| SwitchHosts  |   本地Host管理    |             https://oldj.github.io/SwitchHosts/              |
|   X-shell    | Linux远程连接工具 |               https://xshell.en.softonic.com/                |
|    X-ftp     | Linux文件传输工具 |         https://www.netsarang.com/zh/all-downloads/          |
|    SQLyog    |  数据库连接工具   |               https://sqlyog.en.softonic.com/                |
| ScreenToGif  |    Gif录制工具    | [ https://www.screentogif.com/](https://www.screentogif.com/) |
### 开发环境
|     工具      | 版本号 |                             下载                             |
| :-----------: | :----: | :----------------------------------------------------------: |
|      JDK      |  1.8   | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
|     Maven     | 3.3.0+ |                   http://maven.apache.org/                   |
| Elasticsearch | 6.3.0  |               https://www.elastic.co/downloads               |
|     Solr      |  7.0   |                http://lucene.apache.org/solr/                |
|     MySQL     |  5.6   |                    https://www.mysql.com/                    |
|    Erlang     |  20.3  |                   https://www.erlang.org/                    |
|   RabbitMQ    | 3.7.4  |            http://www.rabbitmq.com/download.html             |
|     Nginx     |  1.10  |              http://nginx.org/en/download.html               |
|     Redis     | 3.3.0  |                  https://redis.io/download                   |
|    Zipkin     | 2.12.5 | https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec |
|     Nacos     | 1.3.2  |          https://github.com/alibaba/nacos/releases           |
|   Sentinel    | 1.7.2  |         https://github.com/alibaba/Sentinel/releases         |
## 致谢
**蘑菇博客**起初参考了很多**开源项目**的**解决方案**,**开源不易,感谢分享**
- [
 |
## 后期维护
项目后台目前有 **Eureka** 版本和 **Nacos** 版本,其中 **Eureka** 版本使用的是 **SpringCloud** 一些组件,**Nacos** 版本使用的是 **SpringCloudAlibaba** 的一些组件,例如 **Nacos**、**Sentinel** 等
- **Eureka** 版本请切换至 **Eureka** 分支(**已停止维护**,将不再进行新功能的开发)
- **Nacos** 版本请切换至 **Nacos** 分支(作为以后**长期维护**的分支)
- **master** 分支为主分支,是基于 **Nacos** 分支的稳定版本
## 蘑菇博客社区版
蘑菇博客的定位是个人博客系统,而蘑菇博客社区版定位是多人博客系统。蘑菇社区版在原有蘑菇博客的基础上加入了更多的社区玩法,如:支持用户投稿、个人主页、用户签到、关注/取关、收藏/点赞、积分模块、VIP特权功能、用户动态(蘑菇圈)、面经模块、课程模块、消息通知、公众号登录/管理、私信/群聊模块、SEO优化、图片敏感审核、任务模块、成就模块、勋章模块、支付模块、提现模块、消息触达、资源模块、抽奖模块等。。
关于蘑菇社区功能模块的介绍,可查看:[蘑菇社区功能模块介绍](https://vsp58xj3kr.feishu.cn/wiki/wikcnHtRsM9HojaYqrvHWjMu0Ah)
关于蘑菇社区版的**学习**/**商用授权**,以及查看版本对比,可以查看:[点我跳转](https://www.moguit.cn/version)
社区版演示环境如下,目前 [蘑菇官网](https://www.moguit.cn/) 使用的是蘑菇博客社区版代码。
> 【社区演示前端】:http://w.moguit.cn
>
> 【社区演示后端】:http://a.moguit.cn
>
> 【演示账号】:[点击获取](https://gitee.com/moxi159753/mogu_blog_v2/raw/Nacos/doc/images/qq/%E8%8E%B7%E5%8F%96%E6%BC%94%E7%A4%BA%E7%8E%AF%E5%A2%83%E8%B4%A6%E5%8F%B7.jpg)
目前,蘑菇社区版源码暂未开源,可通过 [赞助蘑菇](https://www.moguit.cn/version) 的方式获取源码授权,详情可添加陌溪微信了解:[coder_moxi](https://gitee.com/moxi159753/mogu_blog_v2/raw/Nacos/doc/images/qq/coder_moxi.png) (备注:蘑菇社区)
## 蘑菇博客Go版本
[**mogu_blog_go**](https://gitee.com/moxi159753/mogu_blog_go) 是根据**蘑菇博客**改编的一个 **Golang** 简化版分支,实现了蘑菇博客后台原有的大部分**基础功能**,同时前端代码和数据库基本没有变化,因此可以直接使用蘑菇博客原有的前端页面。
[**mogu_blog_go**](https://gitee.com/moxi159753/mogu_blog_go) 目前采用的技术有:**beego**、**gorm**、**mysql**、**redis** 和 **nginx**。相比于蘑菇博客微服务版,**Golang**版蘑菇能够做到 **1C2G** 的服务器轻松运行,再也不怕网站第二天起来就宕机了~。
参考[蘑菇博客Golang版安装指南](http://moguit.cn/info/593),快速在 **Windows** 平台搭建蘑菇博客Go版开发环境
## 项目中初始用户和密码
- **后台登录**:用户:admin,密码:mogu2018
- 前台登录:用户:mogu2018,密码:mogu2018
- **Mysql**:用户:root,密码:mogu2018
- **Redis**:密码:mogu2018
- **远程SSH初始密码**:用户:root,密码:mogu2018
- **RabbitMQ管理页面:** 用户:admin,密码:mogu2018
- **Nacos管理页面:** 用户:nacos,密码:nacos
- **Sentinel管理页面:** 用户:sentinel,密码:sentinel
- **蘑菇博客监控页面**:用户:user,密码:password123
- **Druid初始密码:** 用户:admin,密码:123456
## 项目特点
- 友好的代码结构及注释,便于阅读及二次开发
- 实现前后端分离,通过 **Json** 进行数据交互,前端再也不用关注后端技术
- 页面交互使用 **Vue2.x**,极大的提高了开发效率。
- 引入**Swagger** 文档支持,方便编写 **API** 接口文档。
- 引入**RabbitMQ** 消息队列,用于邮件发送、更新 **Redis** 和 **Solr**
- 引入**JustAuth** 第三方登录开源库,支持 **Gitee**、**Github** 账号登录。
- 引入**ElasticSearch** 和 **Solr** 作为全文检索服务,并支持可插拔配置
- 引入**Github Actions** 工作流,完成蘑菇博客的持续集成、持续部署。
- 引入七牛云对象存储,同时支持本地文件存储
- 引入 **RBAC** 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
- 引入 **Zipkin** 链路追踪,聚合各业务系统调用延迟数据,可以一眼看出延迟高的服务
- 采用**自定义参数校验注解**,轻松实现后端参数校验
- 采用 **AOP** + 自定义注解 + **Redis** 实现限制IP接口访问次数
- 采用自研的评论模块,实现评论邮件通知
- 采用 **Nacos** 作为服务发现和配置中心,轻松完成项目的配置的维护
- 采用 **Sentinel** 流量控制框架,通过配置再也不怕网站被爆破
- 采用[uniapp](https://uniapp.dcloud.io/) 和[ColorUi](https://github.com/weilanwl/ColorUI) 完成蘑菇博客的移动端门户页面搭建
- 支持多种文本编辑器,**Markdown** 编辑器([Vditor](https://github.com/Vanessa219/vditor))和富文本编辑器([CKEditor](https://github.com/ckeditor/ckeditor4))随心切换
- 采用 **ElasticStack**【**ElasticSearch** + **Beats** + **Kibana** + **Logstash**】[搭建蘑菇博客日志收集](http://moguit.cn/info/436)
- 采用 **Docker Compose** 完成容器编排,**Portainer** 实现容器可视化,支持[一键部署线上环境](http://www.moguit.cn/info/565)
## 项目文档
文档地址:http://docs.moguit.cn
## 项目地址
目前项目托管在 **Gitee** 和 **Github** 平台上中,欢迎大家 **Star** 和 **Fork** 支持~
- Gitee地址:https://gitee.com/moxi159753/mogu_blog_v2
- Github地址:https://github.com/moxi624/mogu_blog_v2
## 项目目录
- MoguBlog 是一款基于最新技术开发的多人在线、简洁的博客系统。
- mogu_admin: 提供admin端API接口服务;
- mogu_web:提供web端API接口服务;
- mogu_eureka: 服务发现和注册【注: Nacos分支没有该目录,用Nacos作为服务发现组件】
- mogu_picture: 图片服务,用于图片上传和下载;
- mogu_sms:消息服务,用于更新ElasticSearch、Solr索引、邮件和短信发送
- mogu_monitor:监控服务,集成SpringBootAdmin用于管理和监控SpringBoot应用程序
- mogu_spider:爬虫服务`(目前还未完善)`
- mogu_gateway:网关服务`(目前还未完善)`
- mogu_zipkin:链路追踪服务,`目前使用java -jar的方式启动`
- mogu_search:搜索服务,ElasticSearch和Solr作为全文检索工具,[支持可插拔配置](http://www.moguit.cn/info/119),默认使用SQL搜索
- mogu_commons:公共模块,主要用于存放Entity实体类、Feign远程调用接口、以及公共config配置
- mogu_utils: 是常用工具类;
- mogu_xo: 是存放 VO、Service,Dao层的
- mogu_base: 是一些Base基类
- doc: 是蘑菇博客的一些文档和数据库文件
- vue_mogu_admin:VUE的后台管理页面
- vue_mogu_web:VUE的门户网站
- uniapp_mogu_web:基于uniapp 和 colorUi 的蘑菇博客移动端门户页面(Nacos分支)
- nuxt_mogu_web:Nuxt的门户网站,主要用于支持SEO搜索引擎优化`(目前还未完善)`
## 技术选型
### 系统架构图

>  蘑菇博客系统架构图,使用 [Processon](https://www.processon.com/i/5e380df1e4b05b335ffa81e9) 在线绘制
### 后端技术
|      技术      |           说明            |                             官网                             |
| :------------: | :-----------------------: | :----------------------------------------------------------: |
|   SpringBoot   |          MVC框架          | [ https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) |
|  SpringCloud   |        微服务框架         |           https://spring.io/projects/spring-cloud/           |
| SpringSecurity |      认证和授权框架       |          https://spring.io/projects/spring-security          |
|  MyBatis-Plus  |          ORM框架          |                   https://mp.baomidou.com/                   |
|   Swagger-UI   |       文档生产工具        | [ https://github.com/swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui) |
|     Kibana     |     分析和可视化平台      |               https://www.elastic.co/cn/kibana               |
| Elasticsearch  |         搜索引擎          | [ https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch) |
|     Beats      |     轻量型数据采集器      |               https://www.elastic.co/cn/beats/               |
|    Logstash    | 用于接收Beats的数据并处理 |              https://www.elastic.co/cn/logstash              |
|      Solr      |         搜索引擎          |                http://lucene.apache.org/solr/                |
|    RabbitMQ    |         消息队列          |   [ https://www.rabbitmq.com/](https://www.rabbitmq.com/)    |
|     Redis      |        分布式缓存         |                      https://redis.io/                       |
|     Docker     |        容器化部署         |      [ https://www.docker.com](https://www.docker.com/)      |
|     Druid      |       数据库连接池        | [ https://github.com/alibaba/druid](https://github.com/alibaba/druid) |
|     七牛云     |     七牛云 - 对象储存     |         https://developer.qiniu.com/sdk#official-sdk         |
|      JWT       |        JWT登录支持        |                 https://github.com/jwtk/jjwt                 |
|     SLF4J      |         日志框架          |                    http://www.slf4j.org/                     |
|     Lombok     |     简化对象封装工具      | [ https://github.com/rzwitserloot/lombok](https://github.com/rzwitserloot/lombok) |
|     Nginx      |  HTTP和反向代理web服务器  |                      http://nginx.org/                       |
|    JustAuth    |     第三方登录的工具      |             https://github.com/justauth/JustAuth             |
|     Hutool     |      Java工具包类库       |                  https://hutool.cn/docs/#/                   |
|    阿里大于    |       短信发送平台        |            https://doc.alidayu.com/doc2/index.htm            |
| Github Actions |        自动化部署         |              https://help.github.com/en/actions              |
|     Zipkin     |         链路追踪          |             https://github.com/openzipkin/zipkin             |
| Flexmark-java  |     Markdown转换Html      |            https://github.com/vsch/flexmark-java             |
|   Ip2region    |     离线IP地址定位库      |          https://github.com/lionsoul2014/ip2region           |
|     Minio      |     本地对象存储服务      |                       https://min.io/                        |
| Docker Compose |      Docker容器编排       |               https://docs.docker.com/compose/               |
|   Portainer    |     Docker可视化管理      |            https://github.com/portainer/portainer            |
### 前端技术
|         技术          |                  说明                   |                             官网                             |
| :-------------------: | :-------------------------------------: | :----------------------------------------------------------: |
|        Vue.js         |                前端框架                 |                      https://vuejs.org/                      |
|      Vue-router       |                路由框架                 |                  https://router.vuejs.org/                   |
|         Vuex          |            全局状态管理框架             |                   https://vuex.vuejs.org/                    |
|        Nuxt.js        |        创建服务端渲染 (SSR) 应用        |                    https://zh.nuxtjs.org/                    |
|        Element        |               前端ui框架                |    [ https://element.eleme.io](https://element.eleme.io/)    |
|         Axios         |              前端HTTP框架               | [ https://github.com/axios/axios](https://github.com/axios/axios) |
|        Echarts        |                图表框架                 |                      www.echartsjs.com                       |
|       CKEditor        |              富文本编辑器               |                    https://ckeditor.com/                     |
|     Highlight.js      |            代码语法高亮插件             |         https://github.com/highlightjs/highlight.js          |
|        Vditor         |             Markdown编辑器              |             https://github.com/Vanessa219/vditor             |
|      vue-cropper      |              图片裁剪组件               |           https://github.com/xyxiao001/vue-cropper           |
| vue-image-crop-upload |           vue图片剪裁上传组件           |      https://github.com/dai-siki/vue-image-crop-upload       |
|   vue-emoji-comment   |          Vue Emoji表情评论组件          |       https://github.com/pppercyWang/vue-emoji-comment       |
|     clipboard.js      |            现代化的拷贝文字             |                  http://www.clipboardjs.cn/                  |
|      js-beautify      |           美化JavaScript代码            |         https://github.com/beautify-web/js-beautify          |
|     FileSaver.js      |            保存文件在客户端             |           https://github.com/eligrey/FileSaver.js            |
|      SortableJS       |       功能强大的JavaScript 拖拽库       |                  http://www.sortablejs.com/                  |
|   vue-side-catalog    |               目录导航栏                |        https://github.com/yaowei9363/vue-side-catalog        |
|        uniapp         |            移动端跨平台语言             |                  https://uniapp.dcloud.io/                   |
|        colorUi        |         专注视觉的小程序组件库          |             https://github.com/weilanwl/ColorUI              |
|       showdown        | 用Javascript编写的Markdown 到Html转换器 |            https://github.com/showdownjs/showdown            |
|       turndown        | 用JavaScript编写的HTML到Markdown转换器  |           https://github.com/domchristie/turndown            |
## 快速开始
### 【推荐】一条命令部署蘑菇博客
参考 [如何使用一条命令完成蘑菇博客部署](http://www.moguit.cn/info/597), 在云服务器上执行下面命令,完成一键部署蘑菇博客
```bash
wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh
```
Bilibili一键部署视频:[20分钟部署一个微服务架构的博客系统](https://www.bilibili.com/video/BV13y4y1V7Us)
### [推荐] Windows+VMware一键搭建蘑菇博客本地开发环境
参考 [Windows+VMware一键搭建蘑菇博客本地开发环境](http://www.moguit.cn/info/583),快速在 **Windows** 平台搭建蘑菇博客开发环境,将中间件安装在 **VMware** 中。
### Windows环境下搭建蘑菇博客
参考 [window环境下配置蘑菇博客环境](http://www.moguit.cn/info/14),能够在 **Windows**下搭建蘑菇博客的开发环境,同时将**所有组件**安装在**Windows** 环境中
### [推荐] DockerCompose一键部署蘑菇博客(Nacos版)
参考 [DockerCompose一键部署蘑菇博客(Nacos版)](http://www.moguit.cn/info/1151) ,在 **Linux** 服务器中,一键完成蘑菇博客项目的部署
### Docker搭建蘑菇博客
参考 [使用Docker快速搭建蘑菇博客(Eureka分支)](http://www.moguit.cn/info/299),快速在Linux服务器中搭建好博客运行环境,通过发布 **Jar** 包的方式完成部署
参考 [使用Docker快速搭建蘑菇博客(Nacos分支)](http://www.moguit.cn/info/224),快速在Linux服务器中搭建好博客运行环境,通过发布 **Jar** 包的方式完成部署
### 蘑菇博客部署到云服务器
【**推荐**】参考[IDEA发布蘑菇博客Docker镜像到云服务器(适用于DockerCompose部署)](http://moguit.cn/info/588),在你修改Nacos分支博客源码后,将重新制作镜像部署到云服务器,然后通过DockerCompose进行启动。
参考[蘑菇博客如何部署到阿里云服务器(Eureka分支)](http://moguit.cn/info/238),在你修改Eureka分支博客源码后将项目打包部署到云服务器
参考[蘑菇博客如何部署到阿里云服务器(Nacos分支)](http://moguit.cn/info/405),在你修改Nacos分支博客源码后将项目打包部署到云服务器
### 使用Github Actions完成蘑菇博客持续集成
参考 [使用Github Action完成蘑菇博客持续集成](http://moguit.cn/info/13) ,在你提交一个 **push** 请求后,通过 **Github Actions** 能够完成蘑菇博客自动化 编译、打包、部署等操作。
### 切换搜索模式
参考[蘑菇博客切换搜索模式](http://moguit.cn/info/119),完成蘑菇博客的搜索引擎切换,目前支持 **Solr**、**ElasticSearch**、**SQL** 的方式
### 配置七牛云对象存储
参考[蘑菇博客切换七牛云存储](http://moguit.cn/info/202),配置文件的七牛云对象存储,及本地文件存储
### 使用Zipkin搭建蘑菇博客链路追踪
参考[使用Zipkin搭建蘑菇博客链路追踪](http://www.moguit.cn/info/95),通过聚合各业务系统调用延迟数据,达到链路调用监控跟踪,快速定位其中延迟高的服务
### 使用Nacos搭建蘑菇博客服务注册和配置中心
参考[蘑菇博客Nacos部署指南](http://www.moguit.cn/info/248),搭建蘑菇博客的服务注册和配置中心
### 使用Sentinel搭建蘑菇博客流量控制
参考[蘑菇博客Sentinel安装指南](http://www.moguit.cn/info/198),**Sentinel** 被称为分布式系统的流量防卫兵,相当于Hystrix
### 蘑菇博客QQ小程序发布
参考[蘑菇博客QQ小程序发布指南](http://www.moguit.cn/info/223),完成蘑菇博客 **uniapp** 移动端的启动和发布
### 【推荐】蘑菇博客微信小程序发布
参考[蘑菇博客微信小程序部署指南](http://www.moguit.cn/info/605),完成蘑菇博客 **uniapp** 移动端的启动和发布
### 蘑菇博客扩展新的功能和页面
参考[蘑菇博客如何扩展新的功能和页面](http://www.moguit.cn/info/141),在蘑菇博客现有架构基础上,开发自己需要的页面。
###  使用ELK搭建蘑菇博客日志收集
参考[搭建蘑菇博客日志收集](http://www.moguit.cn/info/436),使用 **Docker** 快速搭建 **ELK** 环境用于蘑菇博客日志收集
## 搭建网站免费CDN加速访问
参考 [网站打开花了20秒,我决定自建蘑菇CDN](http://www.moguit.cn/info/976) ,免费搭建自己的CDN加速
## 环境搭建
### 开发工具
|     工具     |       说明        |                             官网                             |
| :----------: | :---------------: | :----------------------------------------------------------: |
|     IDEA     |    Java开发IDE    |           https://www.jetbrains.com/idea/download            |
|   WebStorm   |    前端开发IDE    |             https://www.jetbrains.com/webstorm/              |
| RedisDesktop |  Redis可视化工具  | [ https://redisdesktop.com/download](https://redisdesktop.com/download) |
| SwitchHosts  |   本地Host管理    |             https://oldj.github.io/SwitchHosts/              |
|   X-shell    | Linux远程连接工具 |               https://xshell.en.softonic.com/                |
|    X-ftp     | Linux文件传输工具 |         https://www.netsarang.com/zh/all-downloads/          |
|    SQLyog    |  数据库连接工具   |               https://sqlyog.en.softonic.com/                |
| ScreenToGif  |    Gif录制工具    | [ https://www.screentogif.com/](https://www.screentogif.com/) |
### 开发环境
|     工具      | 版本号 |                             下载                             |
| :-----------: | :----: | :----------------------------------------------------------: |
|      JDK      |  1.8   | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
|     Maven     | 3.3.0+ |                   http://maven.apache.org/                   |
| Elasticsearch | 6.3.0  |               https://www.elastic.co/downloads               |
|     Solr      |  7.0   |                http://lucene.apache.org/solr/                |
|     MySQL     |  5.6   |                    https://www.mysql.com/                    |
|    Erlang     |  20.3  |                   https://www.erlang.org/                    |
|   RabbitMQ    | 3.7.4  |            http://www.rabbitmq.com/download.html             |
|     Nginx     |  1.10  |              http://nginx.org/en/download.html               |
|     Redis     | 3.3.0  |                  https://redis.io/download                   |
|    Zipkin     | 2.12.5 | https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec |
|     Nacos     | 1.3.2  |          https://github.com/alibaba/nacos/releases           |
|   Sentinel    | 1.7.2  |         https://github.com/alibaba/Sentinel/releases         |
## 致谢
**蘑菇博客**起初参考了很多**开源项目**的**解决方案**,**开源不易,感谢分享**
- [ ](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=mogu)感谢 [七牛云](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=mogu) 提供的 **免费云存储** 和 **CDN** 服务
- [
](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=mogu)感谢 [七牛云](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=mogu) 提供的 **免费云存储** 和 **CDN** 服务
- [ ](https://www.jetbrains.com/?from=mogu_blog_v2)感谢 **[jetbrains](https://www.jetbrains.com/?from=mogu_blog_v2)** 提供的开源 **License** 
- 感谢 **杨青小姐姐** 的博客模板:[http://www.yangqq.com/](http://www.yangqq.com/)
- 感谢**PanJiaChen**的Vue后台管理模板:[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- **Vue** 项目搭建参考这篇博客:[https://segmentfault.com/a/1190000009506097](https://segmentfault.com/a/1190000009506097)
- 感谢 **苞米豆** 提供的 **Mybatis-plus**框架:[http://mp.baomidou.com/](http://mp.baomidou.com/)
- 感谢 **yadong.zhang** 提供的第三方登录开源库:[https://gitee.com/yadong.zhang/JustAuth](https://gitee.com/yadong.zhang/JustAuth)
- 感谢 **bihell** 的 **Dice** 博客项目:[https://github.com/bihell/Dice](https://github.com/bihell/Dice)
- 感谢 **pppercyWang** 提供的Emoji表情评论组件:[vue-emoji-comment](https://github.com/pppercyWang/vue-emoji-comment)
- 感谢 **若依** 提供的 **RuoYi** 项目:[https://gitee.com/y_project/RuoYi](https://gitee.com/y_project/RuoYi)
- 感谢 **yaowei9363** 提供的 **Vue侧目录组件**: [vue-side-catalog](https://github.com/yaowei9363/vue-side-catalog) 
- 感谢 **奇文社区** 提供的 **奇文网盘** 项目:https://gitee.com/qiwen-cloud/qiwen-file
- 感谢 **weilanwl** 提供的 **ColorUI**:https://github.com/weilanwl/ColorUI
## 关注&交流
为了方便小伙伴们沟通交流,我创建了QQ群 (**加群备注**:`蘑菇博客`)  和 **微信群**(备注:**加群**),目前项目还存在很多不足之处,欢迎各位老哥进群进行技术交流,为了防止广告进入,希望加群的时候能添加备注,谢谢~
|                   微信群【备注:加群】                   |          ~~QQ群(备注:`蘑菇博客`)【群满】~~          | QQ群(备注:`蘑菇博客`)【推荐】                       |
| :------------------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------ |
|
](https://www.jetbrains.com/?from=mogu_blog_v2)感谢 **[jetbrains](https://www.jetbrains.com/?from=mogu_blog_v2)** 提供的开源 **License** 
- 感谢 **杨青小姐姐** 的博客模板:[http://www.yangqq.com/](http://www.yangqq.com/)
- 感谢**PanJiaChen**的Vue后台管理模板:[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- **Vue** 项目搭建参考这篇博客:[https://segmentfault.com/a/1190000009506097](https://segmentfault.com/a/1190000009506097)
- 感谢 **苞米豆** 提供的 **Mybatis-plus**框架:[http://mp.baomidou.com/](http://mp.baomidou.com/)
- 感谢 **yadong.zhang** 提供的第三方登录开源库:[https://gitee.com/yadong.zhang/JustAuth](https://gitee.com/yadong.zhang/JustAuth)
- 感谢 **bihell** 的 **Dice** 博客项目:[https://github.com/bihell/Dice](https://github.com/bihell/Dice)
- 感谢 **pppercyWang** 提供的Emoji表情评论组件:[vue-emoji-comment](https://github.com/pppercyWang/vue-emoji-comment)
- 感谢 **若依** 提供的 **RuoYi** 项目:[https://gitee.com/y_project/RuoYi](https://gitee.com/y_project/RuoYi)
- 感谢 **yaowei9363** 提供的 **Vue侧目录组件**: [vue-side-catalog](https://github.com/yaowei9363/vue-side-catalog) 
- 感谢 **奇文社区** 提供的 **奇文网盘** 项目:https://gitee.com/qiwen-cloud/qiwen-file
- 感谢 **weilanwl** 提供的 **ColorUI**:https://github.com/weilanwl/ColorUI
## 关注&交流
为了方便小伙伴们沟通交流,我创建了QQ群 (**加群备注**:`蘑菇博客`)  和 **微信群**(备注:**加群**),目前项目还存在很多不足之处,欢迎各位老哥进群进行技术交流,为了防止广告进入,希望加群的时候能添加备注,谢谢~
|                   微信群【备注:加群】                   |          ~~QQ群(备注:`蘑菇博客`)【群满】~~          | QQ群(备注:`蘑菇博客`)【推荐】                       |
| :------------------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------ |
|  |
 |  |
 |  |
## 未来计划
- [x] 集成Github Actions,完成蘑菇博客持续集成服务
- [x] 门户网站增加登录页面
- [x] 支持第三方登录
- [x] 集成ElasticSearch和Solr
- [x] 将图片存储在七牛云中
- [x] 写一个评论模块,用于替换搜狐畅言
- [x] 按钮级别的细粒度权限控制
- [x] 增加评论表情
- [x] 增加数据字典管理
- [x] 前端增加用户个人中心
- [x] 增加一个FAQ常见问题文档
- [x] 集成表单构建页面,来源于[RuoYi](https://gitee.com/y_project/RuoYi)
- [x] 增加博客详情页目录导航,来源于[vue-side-catalog](https://github.com/yaowei9363/vue-side-catalog)
- [x] 资源管理页面集成网盘管理
- [x] 新建Nacos分支,用于替换Eureka作为服务发现组件和配置中心
- [x] 使用Sentinel做服务限流和熔断
- [x] 增加蘑菇博客小程序项目 uniapp_mogu_web,基于[ColorUI](https://github.com/weilanwl/ColorUI) 和 [Uniapp](https://uniapp.dcloud.io/)
- [x] 富文本编辑器和Markdown编辑器任意切换
- [x] 使用ELK搭建[蘑菇博客日志收集功能](http://www.moguit.cn/#/info?blogUid=fd9ab58588d93ef792ec72a359a09f6c)
- [x] 使用Minio [搭建对象存储服务](http://www.moguit.cn/#/info?blogUid=a1058b2d030310e2c5d7b0584e514f1f)
- [x] 使用DockerCompose完成 [博客一键部署](http://www.moguit.cn/info/565)
- [x] 使用Portainer对Docker镜像可视化管理
- [x] 适配门户页面的移动端布局
- [x] 完善网盘管理
- [x] 增加更新记录
- [x] 完善爬虫模块
- [x] 完善网关模块
- [ ] 增加K8S部署蘑菇博客教程
- [ ] 增加大屏数据展示页面
- [ ] 增加定时任务模块
- [ ] 使用Freemark页面静态化技术对博客详情页静态化
- [ ] 解决Nuxt_mogu_web中存在的问题,使博客能被搜索引擎收录
- [ ] 让原创文章能够同步到多平台,如:CSDN,掘金,博客园等
- [ ] 增加博客迁移功能,让其它平台的博客,如:CSDN、博客园,WordPress能够同步到蘑菇博客中
## 贡献代码
开源项目离不开大家的支持,如果您有好的想法,遇到一些 **BUG** 并修复了,以及 [蘑菇博客文档](https://gitee.com/moxi159753/mogu_blog_doc) 上有错误的地方订正过来了,欢迎小伙伴们提交 **Pull Request** 参与开源贡献
1. **fork** 本项目到自己的 **repo**
2. 把 **fork** 过去的项目也就是你仓库中的项目 **clone** 到你的本地
3. 修改代码
4. **commit** 后 **push** 到自己的库
5. 发起**PR**( **pull request**) 请求,提交到  **Nacos** 分支
6. 等待作者合并
## 开源协议
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)
## 赞赏
**服务器**和**域名**等服务的购买和续费都会**产生一定的费用**,为了**维持项目的正常运作**,如果觉得本项目**对您有帮助**的话,欢迎朋友能够**给予一些支持**,陌溪将用于**提升服务器配置**,感谢小伙伴们的支持( **ps**: 小伙伴赞赏的时候可以备注一下下~)
|                       微信                       |                      支付宝                       |
| :----------------------------------------------: | :-----------------------------------------------: |
|
 |
## 未来计划
- [x] 集成Github Actions,完成蘑菇博客持续集成服务
- [x] 门户网站增加登录页面
- [x] 支持第三方登录
- [x] 集成ElasticSearch和Solr
- [x] 将图片存储在七牛云中
- [x] 写一个评论模块,用于替换搜狐畅言
- [x] 按钮级别的细粒度权限控制
- [x] 增加评论表情
- [x] 增加数据字典管理
- [x] 前端增加用户个人中心
- [x] 增加一个FAQ常见问题文档
- [x] 集成表单构建页面,来源于[RuoYi](https://gitee.com/y_project/RuoYi)
- [x] 增加博客详情页目录导航,来源于[vue-side-catalog](https://github.com/yaowei9363/vue-side-catalog)
- [x] 资源管理页面集成网盘管理
- [x] 新建Nacos分支,用于替换Eureka作为服务发现组件和配置中心
- [x] 使用Sentinel做服务限流和熔断
- [x] 增加蘑菇博客小程序项目 uniapp_mogu_web,基于[ColorUI](https://github.com/weilanwl/ColorUI) 和 [Uniapp](https://uniapp.dcloud.io/)
- [x] 富文本编辑器和Markdown编辑器任意切换
- [x] 使用ELK搭建[蘑菇博客日志收集功能](http://www.moguit.cn/#/info?blogUid=fd9ab58588d93ef792ec72a359a09f6c)
- [x] 使用Minio [搭建对象存储服务](http://www.moguit.cn/#/info?blogUid=a1058b2d030310e2c5d7b0584e514f1f)
- [x] 使用DockerCompose完成 [博客一键部署](http://www.moguit.cn/info/565)
- [x] 使用Portainer对Docker镜像可视化管理
- [x] 适配门户页面的移动端布局
- [x] 完善网盘管理
- [x] 增加更新记录
- [x] 完善爬虫模块
- [x] 完善网关模块
- [ ] 增加K8S部署蘑菇博客教程
- [ ] 增加大屏数据展示页面
- [ ] 增加定时任务模块
- [ ] 使用Freemark页面静态化技术对博客详情页静态化
- [ ] 解决Nuxt_mogu_web中存在的问题,使博客能被搜索引擎收录
- [ ] 让原创文章能够同步到多平台,如:CSDN,掘金,博客园等
- [ ] 增加博客迁移功能,让其它平台的博客,如:CSDN、博客园,WordPress能够同步到蘑菇博客中
## 贡献代码
开源项目离不开大家的支持,如果您有好的想法,遇到一些 **BUG** 并修复了,以及 [蘑菇博客文档](https://gitee.com/moxi159753/mogu_blog_doc) 上有错误的地方订正过来了,欢迎小伙伴们提交 **Pull Request** 参与开源贡献
1. **fork** 本项目到自己的 **repo**
2. 把 **fork** 过去的项目也就是你仓库中的项目 **clone** 到你的本地
3. 修改代码
4. **commit** 后 **push** 到自己的库
5. 发起**PR**( **pull request**) 请求,提交到  **Nacos** 分支
6. 等待作者合并
## 开源协议
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)
## 赞赏
**服务器**和**域名**等服务的购买和续费都会**产生一定的费用**,为了**维持项目的正常运作**,如果觉得本项目**对您有帮助**的话,欢迎朋友能够**给予一些支持**,陌溪将用于**提升服务器配置**,感谢小伙伴们的支持( **ps**: 小伙伴赞赏的时候可以备注一下下~)
|                       微信                       |                      支付宝                       |
| :----------------------------------------------: | :-----------------------------------------------: |
|  |
 |  |
## 移动端截图
> 目前移动端版本的代码已经开源至Nacos分支,如果想体验的小伙伴可以移动至Nacos分支

## 网站截图
|                        Admin端                         |                                                       |
| :----------------------------------------------------: | :---------------------------------------------------: |
|             |        |
|              |         |
|        |         |
|           |    |
|          |       |
|           |             |
|           |          |
|             |     |
|                                                        |                                                       |
|            |        |
|             |          |
|           |      |
|                                                        |                                                       |
|      |   |
|     |    |
|    |  |
|  |                                                       |
|                       **Web端**                        |                                                       |
|               |             |
|              |            |
|               |              |
|                |           |
|                |         |
 |
## 移动端截图
> 目前移动端版本的代码已经开源至Nacos分支,如果想体验的小伙伴可以移动至Nacos分支

## 网站截图
|                        Admin端                         |                                                       |
| :----------------------------------------------------: | :---------------------------------------------------: |
|             |        |
|              |         |
|        |         |
|           |    |
|          |       |
|           |             |
|           |          |
|             |     |
|                                                        |                                                       |
|            |        |
|             |          |
|           |      |
|                                                        |                                                       |
|      |   |
|     |    |
|    |  |
|  |                                                       |
|                       **Web端**                        |                                                       |
|               |             |
|              |            |
|               |              |
|                |           |
|                |         |