一个很酷的博客系统
推荐关注
责编:猿哥 | 来源:GitHub猿 整理
上次是谁要的博客系统啊,猿哥帮你找到了。
本项目系统是一个基于微服务架构的前后端分离博客系统。Web端使用Vue + Element , 移动端使用uniapp和ColorUI。后端使用Spring cloud + Spring boot + mybatis-plus进行开发,使用 Jwt + Spring Security做登录验证和权限校验,使用ElasticSearch和Solr作为全文检索服务,使用Github Actions完成博客的持续集成,使用ELK收集博客日志,文件支持上传七牛云和Minio,支持Docker Compose脚本一键部署。扩展:接私活神器!
项目特点
友好的代码结构及注释,便于阅读及二次开发
实现前后端分离,通过 Json 进行数据交互,前端再也不用关注后端技术
页面交互使用 Vue2.x,极大的提高了开发效率。
引入Swagger 文档支持,方便编写 API 接口文档。
引入RabbitMQ 消息队列,用于邮件发送、更新 Redis 和 Solr
引入JustAuth 第三方登录开源库,支持 Gitee、Github 账号登录。
引入ElasticSearch 和 Solr 作为全文检索服务,并支持可插拔配置
引入Github Actions 工作流,完成蘑菇博客的持续集成、持续部署。
引入七牛云对象存储,同时支持本地文件存储
引入 RBAC 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
引入 Zipkin 链路追踪,聚合各业务系统调用延迟数据,可以一眼看出延迟高的服务
采用自定义参数校验注解,轻松实现后端参数校验
采用 AOP + 自定义注解 + Redis 实现限制IP接口访问次数
采用自研的评论模块,实现评论邮件通知
采用 Nacos 作为服务发现和配置中心,轻松完成项目的配置的维护
采用 Sentinel 流量控制框架,通过配置再也不怕网站被爆破
采用uniapp 和ColorUi 完成蘑菇博客的移动端门户页面搭建
支持多种文本编辑器,Markdown 编辑器(Vditor)和富文本编辑器(CKEditor)随心切换
采用 ElasticStack【ElasticSearch + Beats + Kibana + Logstash】搭建蘑菇博客日志收集
采用 Docker Compose 完成容器编排,Portainer 实现容器可视化,支持一键部署线上环境
项目目录
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作为全文检索工具,支持可插拔配置,默认使用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搜索引擎优化
(目前还未完善)
架构图展示
移动端功能演示
功能演示
项目源码,怎么领取?
扫码下方二维码,后台回复【蘑菇博客】即可获取所有系统
在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
猿哥个人微信
添加猿哥个人微信即送一份惊喜大礼包
→ 技术资料共享
→ 技术交流社群
看看人家那在线学习系统,那叫一个优雅(附源码)一个很酷的教育系统
最近,GitHub猿建了一个「GitHub猿交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub猿」公众号后台回复【加群】邀请你入群。