Jank,一个轻量级的博客系统,基于 Go 语言和 Echo 框架开发,强调极简、低耦合和高扩展
简体中文 | English
Jank 是一个轻量级的博客系统,基于 Go 语言和 Echo 框架开发,设计理念强调极简、低耦合和高扩展,旨在为用户提供功能丰富、界面简洁、操作简单且安全可靠的博客体验。
- Go 语言:热门后端开发语言,适合构建高并发应用。
- Echo 框架:高性能的 Web 框架,支持快速开发和灵活的路由管理。
- MySQL:成熟的关系型数据库管理系统,支持复杂查询和事务处理。
- Redis:热门缓存解决方案,提供快速数据存取和持久化选项。
- JWT:安全的用户身份验证机制,确保数据传输的完整性和安全性。
- Docker:容器化部署工具,简化应用的打包和分发流程。
- 前端:Vue 3 + Nuxt + Shadcn-vue(原项目已不再维护,诚邀前端大佬加入开发)。
- 账户模块:实现 JWT 身份验证,支持用户登录、注册、注销、密码修改和个人信息更新。
- 文章模块:提供文章的创建、查看、更新和删除功能。
- 分类模块:支持类目树及子类目树递归查询,单一类目查询,以及类目的创建、更新和删除。
- 评论模块:火热开发中...
- 其他功能:
- 提供 OpenAPI 接口文档
- 集成 Air 实现热重载
- 使用 Logrus 实现日志记录
- 支持 CORS 跨域请求
- 提供 CSRF 和 XSS 防护
- 支持 Markdown 的服务端渲染
其他模块正在开发中,欢迎提供宝贵意见和建议!
-
安装依赖:
go mod tidy
-
配置数据库和邮箱:
修改configs/config.yaml
文件中的数据库配置和邮箱配置,示例如下:# 数据库密码 DB_PSW: "<DATABASE_PASSWORD>" # QQ 邮箱和 SMTP 授权码(可选) QQ_SMTP: "<QQ_SMTP>" FROM_EMAIL: "<FROM_QQ_EMAIL>"
-
启动服务:
使用以下命令启动应用:go run main.go
或使用 Air 进行热重载:
air -c ./configs/.air.toml
-
访问接口:
打开浏览器,访问 http://localhost:9010/ping
docker-compose up -d
-
本地启动查看 swagger 文档:本地启动应用后,通过浏览器访问 http://localhost:9010/swagger/index.html
-
postman 文档:在项目根目录下,导入
docs/Jank_blog.postman_collection.json
至 Postman 查看。
架构图及可视化接口文档:在项目根目录中打开 docs/jank_blog_architecture.drawio
文件。
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Go 74 556 566 4334
JSON 2 0 0 2259
YAML 3 7 5 1145
Markdown 28 76 0 257
TOML 1 6 0 36
-------------------------------------------------------------------------------
TOTAL 108 645 571 8031
-------------------------------------------------------------------------------
如果有任何疑问或建议,欢迎加入官方社区交流。
欢迎支持 Jank 项目的开发,您的支持是我前进的动力。
- QQ: 927171598
- 邮箱:[email protected]
本项目遵循 MIT 协议。