# BlogHub
**Repository Path**: mantoucode/blog-hub
## Basic Information
- **Project Name**: BlogHub
- **Description**: 使用Cursor AI创建的博客管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-06-06
- **Last Updated**: 2025-06-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BlogHub - 现代博客管理系统
BlogHub是一个现代化的全栈博客管理系统,采用微前端架构和模块联邦技术,支持多端响应式设计和完整的DevOps流程。系统具备强大的内容管理、用户权限控制和SEO优化功能,适用于个人博客、企业内容管理等多种场景。
## 技术栈
### 前端
- **基座应用**:Vue3 + Vite + TypeScript
- **管理后台**:Vue3 + Element Plus + Pinia
- **博客展示端**:Vue3 + Element Plus + Vant(移动端)+ SCSS
- **共享模块**:TypeScript通用组件库 + axios封装
### 后端
- **框架**:Koa2 + TypeScript
- **数据库**:
- MySQL(文章/用户数据)
- Redis(会话/热点数据)
- Elasticsearch(全文检索)
- **其他**:
- JWT认证
- OSS文件上传
- WebSocket实时通知
## 项目结构
```
BlogHub/
├─ deploy/ # 部署相关配置
│ ├─ docker/ # Docker配置
│ └─ k8s/ # Kubernetes配置
├─ packages/ # 前端微应用
│ ├─ admin/ # 管理后台
│ │ └─ src/ # 源代码
│ ├─ blog/ # 博客展示端
│ │ └─ src/ # 源代码
│ ├─ host/ # 基座应用
│ │ └─ src/ # 源代码
│ └─ shared/ # 共享模块
│ └─ src/ # 源代码
└─ server/ # 后端服务
├─ config/ # 配置文件
├─ scripts/ # 脚本文件
├─ src/ # 源代码
│ ├─ controllers/ # 控制器
│ ├─ database/ # 数据库连接
│ ├─ middlewares/ # 中间件
│ ├─ models/ # 数据模型
│ ├─ routes/ # 路由
│ └─ services/ # 业务逻辑
└─ tests/ # 测试文件
```
## 功能特点
### 管理端(PC)
1. **内容管理**
- Markdown编辑器(支持图片上传)
- 文章分类/标签管理
- 评论审核系统
- 数据看板(访问量/用户增长统计)
2. **用户权限**
- RBAC角色控制(管理员/编辑/访客)
- JWT身份验证
3. **SEO工具**
- 自定义URL/Slug生成
- Meta标签编辑器
### 展示端(PC + Mobile + Pad)
1. **响应式设计**
- 三端自适应布局(Tailwind CSS + Flex/Grid)
- 移动端优先的交互设计
2. **多模式渲染**
- 静态生成(SSG)用于文章页
- 客户端渲染(CSR)用于管理后台
3. **增强功能**
- 暗黑模式切换
- 文章全文检索(Elasticsearch集成)
## 安装与启动
### 前提条件
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
- Elasticsearch 7.x
### 本地开发环境搭建
1. 克隆仓库
```bash
git clone https://gitee.com/mantoucode/blog-hub.git
cd blog-hub
```
2. 安装依赖
```bash
# 安装根目录依赖
npm install
# 安装所有子项目依赖
npm run install:all
```
3. 配置环境变量
开发环境和生产环境的配置文件已经预设,如需自定义可修改:
- `server/.env.development` - 开发环境配置
- `server/.env.production` - 生产环境配置
4. 初始化数据库
确保MySQL服务已启动,然后执行:
```bash
npm run db:init
```
5. 启动开发服务器
```bash
# 启动所有服务
npm run dev
# 或者分别启动各个服务
npm run dev:host # 基座应用
npm run dev:admin # 管理后台
npm run dev:blog # 博客展示端
npm run dev:server # 后端服务
```
访问地址:
- 基座应用:http://localhost:5000
- 管理后台:http://localhost:5001
- 博客展示端:http://localhost:5002
- 后端API服务:http://localhost:3000
## 构建与部署
### 构建
```bash
# 构建所有前端应用
npm run build:packages
# 构建后端服务
npm run build:server
```
### Docker部署
项目提供了Docker和Kubernetes配置文件,可以快速部署到容器环境:
```bash
# 使用Docker Compose启动所有服务
docker-compose -f deploy/docker/docker-compose.yml up -d
```
### Kubernetes部署
```bash
# 部署到Kubernetes集群
kubectl apply -f deploy/k8s/
```
## 开发指南
### 项目结构说明
- **微前端架构**:项目采用模块联邦实现微前端架构,各子应用可独立开发、部署
- **Monorepo管理**:使用Lerna和Workspaces管理多包项目
- **共享组件**:通过shared包共享通用组件和工具函数
### 开发规范
1. **代码风格**:项目使用ESLint和Prettier确保代码风格一致
2. **Git工作流**:
- 主分支:`master`(生产环境)和`develop`(开发环境)
- 功能分支:`feature/xxx`
- 修复分支:`fix/xxx`
3. **提交规范**:
- 格式:`type(scope): message`
- 类型:`feat`、`fix`、`docs`、`style`、`refactor`、`test`、`chore`等
### 测试
```bash
# 运行所有测试
npm run test
```
## 常见问题
### 1. 无法连接数据库
确保MySQL服务已启动,并且`.env`文件中的连接信息正确。
### 2. 模块联邦加载失败
检查各子应用的端口是否正确,以及`vite.config.ts`中的模块联邦配置是否一致。
### 3. 图片上传失败
确保文件上传服务配置正确,检查OSS配置或本地存储路径权限。
## 贡献指南
欢迎提交问题和功能需求!如果您想贡献代码,请遵循以下步骤:
1. Fork本仓库
2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'feat: add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开Pull Request
## 版本历史
- 1.0.0 (2023-09-01) - 首次发布
## 许可证
本项目采用MIT许可证 - 详情请参阅 [LICENSE](LICENSE) 文件
## 联系方式
- 项目维护者:WY
- 项目仓库:[https://gitee.com/mantoucode/blog-hub.git](https://gitee.com/mantoucode/blog-hub.git)
- 问题反馈:请提交Issue