dazBlog 是一个基于 Go 语言开发的博客系统
使用了 Golang
+ Gin
+ MySQL
+ chatGPT
+ Docker
+ Nginx
- 使用了简洁架构,目录结构规范清晰
- 使用众多常用 Go 包
- 具备认证 (Gin JWT) 以及授权 (Casbin) 功能
- 使用 langchaingo 调用 OPENAI, 使用 GPT-3.5-turbo 模型总结文章内容
- 独立封装 log, error 包
- 使用 Makefile 高效管理项目
- 静态代码检查
- 带有单元测试,性能测试,模糊测试,Mock测试
- 实现了众多的 Web 功能
- HTTP, HTTPS, gRPC
- 优雅关停,中间件,跨域,异常恢复
- 使用 MariaDB 存储数据
- RESTful API 设计规范以及 OpenAPI 3.0/Swagger 2.0 API 文档
- 支持 Docker 部署
- 接入腾讯公益 404 页面
- 完善的文档
git clone [email protected]:Daz-3ux/dBlog.git
cd dBlog
make tool.verify && make ca && make
./_output/platforms/linux/amd64/dBlog -c configs/dazBlog.yaml
docker build -t dazblog-image:latest .
docker run --network=host \
-e DB_HOST=your_db_host \
-e DB_PORT=your_db_port \
-e DB_USER=your_db_user \
-e DB_PASSWORD=your_db_password \
-e DB_NAME=your_db_name \
-e OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxx \
--restart always \
dazblog-image:latest
docker pull realdaz/dazblog
docker run --network=host \
-e DB_HOST=your_db_host \
-e DB_PORT=your_db_port \
-e DB_USER=your_db_user \
-e DB_PASSWORD=your_db_password \
-e DB_NAME=your_db_name \
-e OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxx \
--restart always \
realdaz/dazblog
- 用户管理
- 用户注册
- 用户登录
- 获取用户列表
- 获取用户详情
- 更新用户信息
- 修改用户密码
- 注销用户
- 基于 MySQL 触发器会自动删除用户所有博客并清除权限
- 博客管理
- 创建博客
- 获取博客列表
- 获取博客详情
- 更新博客
- 删除博客
- 批量删除博客
- OpenAI 调用
- 创建 AI 内容分析
- 调用 OPENAI GPT-3.5-turbo 模型总结文章内容
- 获取 AI 内容
- 更新 AI 内容
- 列出 AI 内容
- 删除 AI 内容
- 创建 AI 内容分析
- 模型层 -- 控制层 -- 业务层 -- 仓库层
- model -- controller -- biz -- store
- 存储对象结构与其方法 -- 业务路由 -- 业务逻辑处理 -- 与数据库/第三方服务进行 CRUD
- 开发顺序:
- Model -> Store -> Biz -> Controller
- 从下到上,优先开发依赖少的组件
- 一次性开发完一整条链路, 从而保证整个链路的可用性
- Model
- Store
- Biz
- Controller