Skip to content

Latest commit

 

History

History
147 lines (107 loc) · 5.41 KB

README.md

File metadata and controls

147 lines (107 loc) · 5.41 KB

Jank

Jank,一个轻量级的博客系统,基于 Go 语言和 Echo 框架开发,强调极简、低耦合和高扩展

Stars   Forks   Contributors   Issues   Pull Requests   License

简体中文 | English


Jank 是一个轻量级的博客系统,基于 Go 语言和 Echo 框架开发,设计理念强调极简、低耦合和高扩展,旨在为用户提供功能丰富、界面简洁、操作简单且安全可靠的博客体验。

本项目仍处于开发阶段,欢迎提供宝贵意见!

技术栈

  • Go 语言:热门后端开发语言,适合构建高并发应用。
  • Echo 框架:高性能的 Web 框架,支持快速开发和灵活的路由管理。
  • MySQL:成熟的关系型数据库管理系统,支持复杂查询和事务处理。
  • Redis:热门缓存解决方案,提供快速数据存取和持久化选项。
  • JWT:安全的用户身份验证机制,确保数据传输的完整性和安全性。
  • Docker:容器化部署工具,简化应用的打包和分发流程。
  • 前端:Vue 3 + Nuxt + Shadcn-vue(原项目已不再维护,诚邀各位前端大佬共同开发)。

功能模块

  • 账户模块:实现 JWT 身份验证,支持用户登录、注册、注销、密码修改和个人信息更新。
  • 文章模块:提供文章的创建、查看、更新和删除功能。
  • 分类模块:支持类目树及子类目树递归查询,单一类目查询,以及类目的创建、更新和删除。
  • 评论模块:火热开发中...
  • 其他功能
    • 提供 OpenAPI 接口文档
    • 集成 Air 实现热重载
    • 使用 Logrus 实现日志记录
    • 支持 CORS 跨域请求
    • 提供 CSRF 和 XSS 防护
    • 支持 Markdown 的服务端渲染(暂停维护)
    • 其他模块正在开发中,欢迎提供宝贵意见和建议!

本地开发

  1. 安装依赖

    # 安装 swagger 工具
    go install github.com/swaggo/swag/cmd/swag@latest
    
    # 安装依赖包
    go mod tidy
  2. 配置数据库和邮箱
    修改 configs/config.yaml 文件中的数据库配置和邮箱配置,示例如下:

    # mysql 数据库密码
    DB_PSW: "<DATABASE_PASSWORD>"
    
    # QQ 邮箱和 SMTP 授权码(可选)
    QQ_SMTP: "<QQ_SMTP>"
    FROM_EMAIL: "<FROM_QQ_EMAIL>"
  3. 启动服务
    使用以下命令启动应用:

    go run main.go

    或使用 Air 进行热重载:

    此方法最为便捷,但提前配置环境变量 GOPATH。

    # 安装 air,需要 go 1.22 或更高版本
    go install github.com/air-verse/air@latest
    
    # 热重载启动
    air -c ./configs/.air.toml
  4. 访问接口
    本地启动应用后,浏览器访问 http://localhost:9010/ping

Docker 容器部署

docker-compose up -d

接口文档

  1. 本地启动查看 swagger 文档:本地启动应用后,通过浏览器访问 http://localhost:9010/swagger/index.html

  2. postman 文档:在项目根目录下,导入 docs/Jank_blog.postman_collection.json 至 Postman 查看。

架构图

架构图及可视化接口文档:在项目根目录中打开 docs/jank_blog_architecture.drawio 文件。

注:该文档由 draw.io 绘制,需要安装 draw.io 软件查看。

官方社区

如果有任何疑问或建议,欢迎加入官方社区交流。

官方社区

联系合作

许可证

本项目遵循 MIT 协议

GitHub 统计

GitHub Stats

增长趋势

GitHub Stats