English Version: English
Go 开发的极简个人博客系统,专注于内容创作和技术积累,一键部署前后端。
mkBlog 是一个轻量级的个人博客系统,支持 Markdown 文章、文章分类。系统设计简洁,易于部署和维护。
修改头像,个性签名和自我介绍可以在 配置文件 里进行,修改对应 site 下的值
编写博客时,如果有带图片,路径不需要填写后缀,如果填写后缀需要填写 webp ,因为后端接收图片时会将图片转换成 webp 格式。
上传文件可以通过 CLI 提供的 mkblog push 命令上传,但主包目前使用的方案是通过 vscode 插件作为一个后台管理,通过填写地址实现对博客的增删改
- Go 1.24 - 主要编程语言
- Gin - Web 框架
- GORM - ORM 框架
- MySQL - 数据库
- ✅ 文章管理 - 支持 Markdown 格式文章的创建、编辑和展示
- ✅ 文章分类 - 按分类组织文章内容
- ✅ 文章搜索 - 支持关键词搜索文章
- ✅ 分页显示 - 文章列表分页展示
- ✅ 友链管理 - 友链展示和申请功能
- ✅ 图片支持 - 文章内图片展示
- ✅ 文章评论 - 文章下评论及展示功能
新增: vscode 插件管理博客,在 plugin 文件夹下,目前实现了文章及图片的创建,删除,以及 md 文件的标签解析,但文章检查,排版等都还不完善,所以暂时不上架。后续的计划是在 vscode 端通过插件的形式实现博客后端管理,包括文章图片的创建,上传,删除,再做一定的格式检查。
添加布隆过滤器,限流器,并加入黑名单模式。
- Go 1.24+
- MySQL 8.0+ (需要 ngram 分词器)
-
配置数据库
# 创建数据库 CREATE DATABASE mkblog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
配置文件
在 config.yaml
里,前往 配置文件 查看注释
- 启动后端服务
go mod tidy
go run main.go
数据库 Docker 部署:
cd docker
docker-compose up -d
前后端统一地址,所以没有跨域问题
如果需要配置 TLS 证书,可以在 config.yaml 里 tls 配置项的 enabled 选项打开,然后把 TLS 证书拷贝到 static 文件夹下