当前位置: 首页 > article >正文

Go 语言:Jank 简客博客系统

Jank 简客博客系统

什么?最近我开源了一个项目?

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

Github 仓库地址:https://github.com/Done-0/Jank
Gitcode 仓库地址:https://gitcode.com/2402_83735444/Jank/overview
欢迎加入社区(供学习和开发):https://qm.qq.com/q/P3CSH8wF22

技术栈
  • Go 语言:热门后端开发语言,适合构建高并发应用。
  • Echo 框架:高性能的 Web 框架,支持快速开发和灵活的路由管理。
  • MySQL:成熟的关系型数据库管理系统,支持复杂查询和事务处理。
  • Redis:热门缓存解决方案,提供快速数据存取和持久化选项。
  • JWT:安全的用户身份验证机制,确保数据传输的完整性和安全性。
  • Docker:容器化部署工具,简化应用的打包和分发流程。
  • 前端:Vue 3 + Nuxt + Shadcn-vue(暂时搁置)。
功能模块
  • 账户模块:实现 JWT 身份验证,支持用户登录、注册、注销、密码修改和个人信息更新。
  • 文章模块:提供文章的创建、查看、更新和删除功能。
  • 分类模块:支持类目树及子类目树递归查询,单一类目查询,以及类目的创建、更新和删除。
  • 其他功能
    • 提供 OpenAPI 接口文档
    • 集成 Air 实现热重载
    • 使用 Logrus 实现日志记录
    • 支持 CORS 跨域请求
    • 提供 CSRF 和 XSS 防护
    • 支持 Markdown 的服务端渲染

其他模块正在开发中,欢迎提供宝贵意见和建议!

本地开发
  1. 安装依赖

    go mod tidy
    
  2. 配置数据库和邮箱
    修改 configs/config.yaml 文件中的数据库配置和邮箱配置,示例如下:

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

    go run main.go
    

    或使用 Air 进行热重载:

    air -c ./configs/.air.toml
    
  4. 访问接口
    打开浏览器,访问 http://localhost:9010/ping

Docker 容器部署
docker-compose up -d
联系方式
  • QQ 群:828270460
  • 作者 QQ:927171598
许可证

本项目采用 MIT 开源许可证。

代码统计
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                              65            521            458           3857
JSON                             1              0              0           1456
YAML                             3              8              6            986
Markdown                        27             32              0             98
TOML                             1              6              0             36
-------------------------------------------------------------------------------
TOTAL                           97            567            464           6433
-------------------------------------------------------------------------------

http://www.kler.cn/a/463848.html

相关文章:

  • 如何使用Termux 通过 SSH 连接到远程服务器
  • UE5 Debug的一些心得
  • C# 在PDF中添加和删除水印注释 (Watermark Annotation)
  • 低代码引擎插件开发:开启开发的便捷与创新之路
  • NSGA-II(非支配排序遗传算法II)详解与实现
  • js的一些处理
  • 基于单片机的电子安全密码锁的设计初探
  • Linux硬盘分区 --- fdisk命令MBR分区、添加硬盘、lsblk命令
  • 电商项目-数据同步解决方案(四)商品下架同步更新ES索引库数据
  • 小程序发版后,强制更新为最新版本
  • WebRTC的线程切换
  • 【网络安全】系统0day分析
  • 基本算法——回归
  • Android 系统 Activity 系统层深度定制的方法、常见问题以及解决办法
  • 面试经典 150 题——数组/字符串(一)
  • Mono里运行C#脚本8—mono_image_storage_open打开EXE文件
  • 代码随想录算法训练营Day37 | 322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包、背包问题总结
  • C++笔记之C语言和C++中未初始化变量的默认值问题
  • WKWebView打开pdf文件乱码?各种方案整理。
  • HTML——42.自定义列表
  • 【python】unittest单元测试
  • 家教系统|Java|SSM|VUE| 前后端分离
  • Ethernet 系列(13)-- 基础学习::VLAN
  • 019-spring-基于aop的事务控制原理
  • 【网络安全实验室】脚本关实战详情
  • 使用 MySQL 实现数据交互:从数据存储到查询优化