个人 Blog 托管方案

1. 背景

随着公众号推送、短视频等新业态媒体的兴起,传统内容输出型博客已然日渐式微。不过考虑到文字输出的效率、对内容的自主版权以及搜索引擎的索引等等,博客仍然有其不可替代之处。

笔者仍然相信,基于文字输出的博客相对于视频有更高的信息熵、更好的阅读体验,以及在 “没有记忆” 的互联网中可以将个人的知识和经验积累予以有效保存。这不仅是一种个人备忘的方式,也是所谓 “互联网精神” 的延续。

下面总结一下个人 Blog 的托管方案,以期抛砖引玉。

2. 系统选型

2.1. 静态博客

纯前端实现,一般在本地或部署平台上将源码编译为前端页面并托管,比如成熟的博客框架 hexohugo 等。优点是部署灵活成本低廉、部署无需服务器因此不存在网络攻击与数据安全问题;缺点是具有一定上手难度、缺少图形化后台管理、功能丰富性不如动态博客、文章跨设备编辑相对不便等。

2.2. 动态博客

拥有后端支持的博客系统,具有丰富的功能和前后端插件支持,比如著名的 CMS 引擎 WordPress 等。优点是功能强大,易于上手、数据管理和文章写作容易;缺点是部署需要服务器并需要定期维护更新引擎、存在被攻击风险,另外部署维护成本也相对较高。

2.3. 个人选型

个人对博客系统有如下要求:

  • 部署成本低,维护简单,即使长期不维护也不易掉线 / 丢失
  • 支持 Markdown 写作
  • 便于跨设备阅读 / 编辑
  • 最重要的是内容输出,其他辅助功能可有可无

综合考虑,最终选择了静态博客引擎 Hexo 作为博客框架,主要看中其强大的插件生态,以及支持 Serverless 部署的能力。

3. 架构设计

  • 部署:使用 Cloudflare Pages 部署 Hexo 框架,Serverless 部署无需操心服务器和维护问题,极小的网络攻击风险,自动解决 HTTPS,无需操心备案,网站无需维护也可以长期保持在线
  • 数据管理
    • 文章储存于 GitHub 仓库,使用 Git 进行版本管理,拥有完善的历史管理功能
    • GitHub 仓库可以无缝对接 Cloudflare Pages 一键部署,心智负担较小
    • GitHub 仓库数据持久性好,即使发生极端情况也拥有本地 Git 仓库副本,不致于丢失数据
  • 文章写作:写作在本地 Git 仓库中使用 Markdown 编辑器写作,写作完成后推送到远程仓库,Cloudflare Pages 会自动部署最新版本文章上线,全程无需人工干预十分省心
  • 图床:使用 Cloudflare R2 对象储存,在本地使用 PicGo/PicList 上传图片到图床,获取公开链接后插入到 Markdown 中
  • 评论区:使用 Fluid 主题自带的 giscus 插件实现,将 GitHub Discussion 变为博文评论区

4. 主题推荐

Hexo 框架拥有众多美观且好用的主题,下面作一些推荐:

更多主题,请前往 Hexo 官方主题页面:Themes | Hexo 自行挑选

5. 插件推荐

推荐一些 hexo 博客使用的插件推荐,可以有效提高生活质量:

6. 评论区

本博客评论区使用 giscus​ 实现,将 GitHub 仓库的 Discussion 转化为每篇文章的评论区,这样就不需要托管单独的评论数据服务器了

7. TODO

简述搭建步骤、常见坑等


个人 Blog 托管方案
https://blog.openyq.top/posts/65274/
作者
yqs112358
许可协议