基于go-zero框架搭建的知识平台 ve-blog 是一个现代化的全栈博客系统,采用 Go 语言开发后端,基于微服务架构,提供完整的博客解决方案。
- 后端:Golang + Go-zero + gRPC + Gorm + Redis + RabbitMQ + Kafka
- 前端:Vue3 + Pinia + TypeScript + Element Plus + Naive UI
- 部署:Docker Compose 一键部署
- 用户系统:支持账号密码、Github、QQ、微信等多种登录方式
- 权限管理:基于 RBAC 的权限模型,支持动态权限、菜单和路由
- 文章管理:支持 Markdown 编辑器、文章分类、标签、评论、点赞
- 社交功能:说说、友链、相册、留言弹幕墙、音乐播放器、聊天室
- 消息通知:评论回复邮件提醒、系统消息推送
- 微服务架构:采用 go-zero 框架,支持服务注册发现、负载均衡,实现高可用架构
- 高性能:使用 Redis 缓存、消息队列优化,支持高并发访问,轻松应对流量高峰
- 安全性:JWT 认证、数据加密、权限控制,全方位保障系统安全
- 可扩展性:模块化设计,支持功能扩展和定制,满足个性化需求
- 开发效率:提供完整的代码生成工具,快速开发新功能
| 项目 | 功能 | Github |
|---|---|---|
| ve-blog-golang | 博客后端服务 | ve-blog-golang |
| ve-blog-naive | 博客前台展示 | ve-blog-naive |
| ve-admin-element | 博客后台管理 | ve-admin-element |
ve-blog-golang/
├── blog-gin/ # Gin 框架实现(示例)
├── blog-gozero/ # Go-zero 微服务实现
├── kit/ # 通用工具包
├── tools/ # 代码生成工具
└── deploy/ # 部署配置
- Go 1.20+
- MySQL 8.0+
- Redis 6.2+
- Docker & Docker Compose
- IDE: Intellij IDEA Ultimate
- 数据库: Navicat
- Redis: Another Redis Desktop Manager
- 容器: Docker Desktop
运行接口服务
# 克隆项目
git clone https://github.com/ve-weiyi/ve-blog-golang.git
# 进入项目目录
cd ve-blog-golang/blog-gozero
# 安装依赖
go mod tidy
# 启动rpc服务
go run service/rpc/blog/blog.go -f service/rpc/blog/etc/blog.yaml
# 启动前台接口服务
go run service/api/blog/blog.go -f service/api/blog/etc/blog.yaml
# 启动后台接口服务
go run service/api/admin/admin.go -f service/api/admin/etc/admin.yaml运行前台服务
# 克隆项目
git clone https://github.com/ve-weiyi/ve-blog-navie.git
# 进入项目目录
cd ve-blog-naive
# 安装依赖
pnpm install
# 启动运行
pnpm run dev运行后台服务
# 克隆项目
git clone https://github.com/ve-weiyi/ve-admin-element.git
# 进入项目目录
cd ve-admin-element
# 安装依赖
pnpm install
# 启动运行
pnpm run dev- 前台接口地址:
http://localhost:9090/blog-api/v1/swagger/index.html - 后台接口地址:
http://localhost:9091/admin-api/v1/swagger/index.html - 前台服务地址:
http://localhost:9420 - 后台服务地址:
http://localhost:9421
- 用户评论邮件提醒
- 集成 ElasticSearch 搜索引擎
- 添加 Prometheus 监控
- 集成 ChatGPT 聊天功能
- 优化性能监控
- 增加更多社交功能
欢迎提交 Issue 和 Pull Request,一起完善项目!您的参与将帮助我们打造更好的博客系统。
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/your-feature - 提交更改:
git commit -m 'Add some feature' - 推送到分支:
git push origin feature/your-feature - 提交 Pull Request
感谢以下项目的启发:
