# CodingCommunity **Repository Path**: CodingKeep/Blog-Person ## Basic Information - **Project Name**: CodingCommunity - **Description**: CodingCommunity基于 **SpringBoot 3.0.5 + Vue 3 + Naive UI** 的全栈博客系统,集成 MyBatis-Plus、Sa-Token、Redis、RabbitMQ 等主流技术栈,适合用作个人博客、学习项目或毕设参考。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Logo # CodingCommunity **一个现代化的全栈技术博客系统** 基于 **SpringBoot 3** + **Vue 3** + **Naive UI** + **UniApp 小程序** [![JDK](https://img.shields.io/badge/JDK-17+-green?style=flat-square&logo=openjdk)](https://openjdk.org/) [![SpringBoot](https://img.shields.io/badge/SpringBoot-3.0.5-6DB33F?style=flat-square&logo=springboot)](https://spring.io/projects/spring-boot) [![Vue](https://img.shields.io/badge/Vue-3.4-4FC08D?style=flat-square&logo=vuedotjs)](https://vuejs.org/) [![License](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](LICENSE) [![Stars](https://gitee.com/zhongshichaosss/Blog-Person/badge/star.svg?theme=dark)](https://gitee.com/zhongshichaosss/Blog-Person/stargazers)
--- ### 博客前台 | 前台首页 | 文章详情 | |:--------:|:--------:| | ![首页](docs/images/home.png) | ![详情](docs/images/detail.png) | | 归档页面 | 友情链接 | |:--------:|:--------:| | ![归档](docs/images/archives.png) | ![友链](docs/images/friendlink.png) | ### 后台管理 | 登录页面 | 控制台 | |:--------:|:--------:| | ![登录](docs/images/login.png) | ![控制台](docs/images/dashboard.png) | | 文章管理 | 文章编辑 | |:--------:|:--------:| | ![文章管理](docs/images/article-list.png) | ![文章编辑](docs/images/article-edit.png) | | 分类管理 | 标签管理 | |:--------:|:--------:| | ![分类](docs/images/category.png) | ![标签](docs/images/tag.png) | | 评论管理 | 用户管理 | |:--------:|:--------:| | ![评论](docs/images/comment.png) | ![用户](docs/images/user.png) | | 暗黑模式-前台 | 暗黑模式-后台 | |:--------:|:--------:| | ![暗黑前台](docs/images/dark-front.png) | ![暗黑后台](docs/images/dark-admin.png) | ### 微信小程序 | 小程序首页 | 小程序详情 | 小程序我的 | |:--------:|:--------:|:--------:| | ![小程序首页](docs/images/mp-home.png) | ![小程序详情](docs/images/mp-detail.png) | ![小程序我的](docs/images/mp-mine.png) | --- ## 项目简介 CodingCommunity 是一个功能完善的全栈博客系统,前后端分离,适合用作**个人博客**、**学习项目**或**毕设参考**。 **核心亮点:** Sa-Token 权限认证 · Redis 缓存 · RabbitMQ 消息队列 · Redisson 分布式锁 · Gitee/GitHub 社交登录 · 阿里云 OSS · 暗黑主题 · UniApp 小程序 --- ## 技术栈 | 层级 | 技术 | |:----:|:-----| | **后端** | SpringBoot 3 · MyBatis-Plus · Sa-Token · Redis · Redisson · RabbitMQ · MySQL 8 | | **前端** | Vue 3 · Vite 5 · Naive UI · Pinia · Axios · marked · highlight.js | | **小程序** | UniApp · Vue 3 · TypeScript · uview-plus · Pinia · UnoCSS | --- ## 快速开始 ### 环境要求 | 环境 | 版本 | 必须 | |:----:|:----:|:----:| | JDK | 17+ | ✅ | | Node.js | 18+ | ✅ | | MySQL | 8.0+ | ✅ | | Redis | 7.0+ | ✅ | | Maven | 3.6+ | ✅ | | RabbitMQ | 3.x | ❌ 可选 | ### 第一步:克隆项目 ```bash git clone https://gitee.com/zhongshichaosss/Blog-Person.git cd Blog-Person ``` ### 第二步:初始化数据库 ```bash # 登录 MySQL 创建数据库 mysql -u root -p CREATE DATABASE blog_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; exit # 导入初始化脚本(包含表结构和示例数据) mysql -u root -p blog_db < blog-backend/src/main/resources/sql/init.sql ``` ### 第三步:修改后端配置 编辑 `blog-backend/src/main/resources/application.yml`,修改以下必填项: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/blog_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 你的数据库密码 # ← 必改 data: redis: host: localhost port: 6379 password: # ← 无密码留空 rabbitmq: listener: simple: auto-startup: false # ← 没装 RabbitMQ 就写 false ``` ### 第四步:启动后端 ```bash cd blog-backend mvn spring-boot:run ``` > 看到 `CodingCommunity启动成功!` 表示后端启动成功,API 文档:http://localhost:8080/doc.html ### 第五步:启动前端 ```bash cd blog-frontend npm install npm run dev ``` > 启动后访问:http://localhost:3000 ### 第六步:登录 | 角色 | 账号 | 密码 | |:----:|:----:|:----:| | 管理员 | admin | admin123 | | 普通用户 | test | test123 | --- ## 功能概览 ### 博客前台 首页文章列表 · Markdown 渲染 · 代码高亮 · 目录导航 · 分类标签 · 文章归档 · 评论互动 · 点赞收藏 · 全文搜索 · 暗黑主题 · 响应式布局 ### 后台管理 数据仪表盘 · 文章管理(CRUD/草稿/回收站/定时发布/导入导出) · 分类标签管理 · 评论管理 · 用户管理 · 角色权限管理 · 菜单管理 · 操作日志 · 登录日志 · IP 黑名单 · 友链管理 ### 小程序端 文章浏览 · 分类筛选 · 文章搜索 · 评论点赞 · 微信登录 · 消息通知 · 个人中心 · 暗黑模式 · 国际化 --- ## 可选配置 以下功能**不配置也能正常运行**,需要时按说明开启即可。
邮箱验证(密码找回) ```yaml spring: mail: host: smtp.qq.com port: 587 username: 你的QQ邮箱 password: QQ邮箱授权码 # 不是QQ密码,是授权码 ``` 获取授权码:QQ邮箱网页版 → 设置 → 账户 → 开启 SMTP 服务 → 生成授权码
阿里云 OSS 图片上传 ```yaml blog: upload: strategy: oss # 默认 local,改为 oss aliyun: oss: endpoint: oss-cn-hangzhou.aliyuncs.com access-key-id: 你的AccessKeyId access-key-secret: 你的AccessKeySecret bucket-name: 你的Bucket名称 ```
Gitee / GitHub 社交登录 ```yaml oauth: gitee: client-id: 你的ClientId client-secret: 你的ClientSecret redirect-uri: http://localhost:3000/oauth/callback/gitee github: client-id: 你的ClientId client-secret: 你的ClientSecret redirect-uri: http://localhost:3000/oauth/callback/github ``` Gitee:https://gitee.com/oauth/applications 创建应用 GitHub:https://github.com/settings/developers 创建 OAuth App
Elasticsearch 全文搜索 ```yaml blog: search: type: elasticsearch # 默认 mysql spring: elasticsearch: uris: http://localhost:9200 ``` Docker 启动 ES:`docker-compose --profile search up -d`
RabbitMQ 消息队列 ```yaml spring: rabbitmq: host: localhost port: 5672 username: guest password: guest listener: simple: auto-startup: true # 改为 true ``` Docker 启动:`docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management`
--- ## 部署 ### Docker 一键部署 ```bash cp env.example .env # 复制配置模板 vim .env # 修改数据库密码等 docker-compose up -d # 启动所有服务 ``` ### 手动部署 ```bash # 后端打包 cd blog-backend && mvn clean package -DskipTests java -jar target/blog-backend-1.0.0.jar # 前端打包 cd blog-frontend && npm run build # 将 dist 目录部署到 Nginx ``` Nginx 关键配置: ```nginx location / { root /path/to/dist; try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://localhost:8080; } ``` --- ## 项目结构 ``` Blog-Person/ ├── blog-backend/ # 后端 SpringBoot │ ├── src/main/java/com/blog/ │ │ ├── controller/ # 控制器(admin + api) │ │ ├── service/ # 业务层 │ │ ├── mapper/ # 持久层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 请求对象 │ │ ├── vo/ # 返回对象 │ │ ├── config/ # 配置类 │ │ └── utils/ # 工具类 │ └── src/main/resources/ │ ├── sql/init.sql # 数据库初始化脚本 │ └── application.yml # 配置文件 │ ├── blog-frontend/ # 前端 Vue3 │ └── src/ │ ├── views/blog/ # 前台页面 │ ├── views/admin/ # 后台页面 │ ├── api/ # 接口封装 │ ├── stores/ # 状态管理 │ └── router/ # 路由 │ ├── blog-miniprogram/ # 小程序 UniApp │ └── src/ │ ├── pages/ # 页面 │ ├── api/ # 接口 │ └── stores/ # 状态管理 │ ├── docker-compose.yml # Docker 编排 └── README.md ``` --- ## 常见问题 | 问题 | 解决方案 | |:-----|:---------| | 数据库连接失败 | 检查 `application.yml` 中的数据库密码 | | RabbitMQ 连接报错 | 将 `auto-startup` 设为 `false` | | 前端接口 404 | 确认后端已启动,检查 Vite 代理配置 | | 登录后无法访问后台 | 确认 Redis 正常运行,清除浏览器缓存重新登录 | | 邮件发送失败 | 使用 QQ 邮箱**授权码**而非密码 | --- ## 开源协议 [MIT License](LICENSE) — 免费商用,可二次开发,需保留版权声明。 ## 联系作者 - Gitee:[@CodingKeep](https://gitee.com/zhongshichaosss) - 邮箱:3142277367@qq.com - 微信:Keep4212 ---
**如果觉得不错,请点个 ⭐ Star 支持一下!** [![Star](https://gitee.com/zhongshichaosss/Blog-Person/badge/star.svg?theme=dark)](https://gitee.com/zhongshichaosss/Blog-Person/stargazers) [![Fork](https://gitee.com/zhongshichaosss/Blog-Person/badge/fork.svg?theme=dark)](https://gitee.com/zhongshichaosss/Blog-Person/members)