Skip to content
/ Jank Public

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

License

Notifications You must be signed in to change notification settings

Done-0/Jank

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published