介绍我开源的轻量级博客系统:madongdong
- 杂谈
- 5天前
- 32热度
- 0评论
在开发博客系统的过程中,我一直在寻找一种极简的解决方案——不需要复杂的配置、臃肿的插件,也不需要高昂的服务器成本。于是,我用 Python + FastAPI + Vue 3 + SQLite 打造了 madongdong,一个专注于写作、没有任何花哨功能的开源博客系统。
项目地址:https://github.com/Lumosylva/madongdong
目前进度
开发中,初步完成了博客首页及管理员后台。
为什么做这个项目?
现有的博客平台和框架要么功能繁杂,要么定制起来非常繁琐。我希望有一个系统:
- 打开就能写,不需要捣鼓半天环境;
- 部署简单,甚至可以跑在2核2G的云服务器上;
- 前端干净,没有弹窗广告、推荐算法等干扰;
- 代码清晰,方便自己按需修改。
madongdong 正是基于这些想法诞生的。它不追求大而全,只做好一件事:让你安静地写作与发布。
技术栈
| 层级 | 技术 |
|---|---|
| 后端框架 | FastAPI(异步高性能,自动生成 API 文档) |
| 前端框架 | Vue 3 + Composition API + Vite |
| 数据库 | SQLite(零配置,单文件数据库) |
| 验证方案 | JWT + HTTP‑only Cookie(安全且无状态) |
| 部署 | 直接 uvicorn |
由于 SQLite 的轻量特性,整个系统几乎不需要任何外部依赖,一个 Python 环境即可运行。FastAPI 的异步能力保证了响应速度,而 Vue 3 提供了流畅的单页应用体验。
主要功能
- 文章管理:发布、编辑、删除文章,支持 Markdown 编辑器(实时预览)。
- 分类与标签:简单的分类和标签系统,帮你整理内容。
- 评论系统:访客可匿名评论(可选审核模式),内置简单的反垃圾机制。
- 站点配置:修改博客名称、描述、每页文章数等,无需手动改代码。
- 暗色模式:跟随系统或手动切换,照顾夜间阅读体验。
- 后台管理:基于 Vue 3 的管理面板,文章列表、评论管理、基础统计一目了然。
没有的功能(也就是刻意舍弃的):
- 插件市场
- 页面访问统计(只有简单的计数)
- 任何形式的广告系统
为什么选择 SQLite?
很多人的第一反应是:“博客系统用 SQLite 靠谱吗?”对于个人博客而言,SQLite 完全足够——它支持并发读取,写入性能对于每天几十篇更新的场景绰绰有余。最重要的是:零运维,不需要安装 MySQL/PostgreSQL,迁移备份只需要复制一个文件。当博客大到需要换数据库时,考虑提供导出到 PostgreSQL 的脚本。
定制与扩展
项目结构非常清晰:
app/– FastAPI 应用,包含路由、模型、数据库操作。web/– Vue 3 实现的博客前端。admin/– Vue 3 实现的博客后台管理。
开源协议
采用 Apache-2.0 license 协议,你可以任意使用、修改、再发布,甚至用于商业项目。如果你觉得有用,点个 Star ⭐ 就是对我最大的鼓励。
后续计划
- 继续完善
结语
madongdong 是一个因个人需求而生的项目,它可能不够强大,但足够安静。如果你也厌倦了复杂厚重的博客系统,欢迎试用、提 issue 或者贡献代码。
GitHub 地址:https://github.com/Lumosylva/madongdong
感谢你的阅读。
