从零搭建属于自己的高可用个人博客
前言:为什么要自建博客?
一直以来,我都使用第三方平台(如 CSDN、博客园)来记录知识。但随着时间推移,一个隐忧越来越大:平台一旦出现危机、调整策略或停止服务,我的知识库将无法及时、完整地备份。 内容和平台强绑定,导出往往不完整或丢失排版。
为了彻底解决这个问题,我决定搭建属于自己的博客。核心原则只有一个:让内容以平台无关的格式存在,自己掌控数据的所有权。
一、技术选型:为什么是 Hexo + Butterfly?
为了让文章本身不受任何平台限制,最稳妥的方案是:使用纯文本(Markdown)写作,并通过 Git 进行版本管理。
1. 静态站点生成器:Hexo vs Hugo
在生成器上,我对比了目前最主流的两个框架:
- Hugo:Go 语言编写,构建速度极快,无需依赖,但中文主题生态相对较弱,定制门槛略高。
- Hexo:Node.js 编写,中文社区极其繁荣,遇到问题极易搜到解决方案。
由于我目前的文章量还不大,构建速度的优先级不高,我更看重开箱即用的生态和丰富的教程,因此选择了 Hexo。
2. 主题选择:Butterfly
既然使用 Markdown,网页好看与否完全取决于“外衣”(主题)。Butterfly 是目前 Hexo 生态中功能最全、配置最丰富的主题之一。它不仅自带暗黑模式,还能极其方便地接入背景图、看板娘等视觉元素。未来如果想让博客更好看,直接改配置文件即可,无需修改文章本身。
3. 托管与架构:GitHub + Cloudflare Pages
- 不选 Gitee:Gitee Pages 已下线,且存在图片防盗链,无法作为公开托管平台。
- 不选 Vercel:免费版带宽有限(100GB/月),国内访问略慢。
- 最终方案:Cloudflare Pages。它提供无限免费带宽,拉取 GitHub 私有仓库自动构建,国内外访问速度都相对稳定。
- 架构:源码存储在 GitHub 私有仓库(保障隐私) -> Cloudflare Pages 自动拉取并构建发布。图片使用独立的 GitHub 公开仓库 + jsDelivr 作为稳定图床。
二、实战部署踩坑记录
搭建过程整体顺利,但也遇到了几个经典的问题,记录下来备查:
初始化与主题安装
1
2
3
4
5hexo init wbz-blog
cd wbz-blog
npm install
npm install hexo-theme-butterfly
npm install hexo-renderer-pug hexo-renderer-stylus --save注意:务必将主题的 _config.yml 复制一份到根目录,重命名为 _config.butterfly.yml,以后的配置都在这里改,避免主题更新时配置被覆盖。
Git 推送时的 LF/CRLF 警告
Windows 系统下,Git 提示换行符转换,这不是报错,直接忽略继续提交即可。Cloudflare Pages 构建失败:hexo: not found
在 Cloudflare 的构建环境中,没有全局安装 Hexo,直接写 hexo generate 会报错。
解决办法:在构建配置中,将 Build command 改为 npx hexo generate 即可顺利通过。
三、日常写作与发布流程
现在,我的工作流变得非常清晰且高效:
新建文章:hexo new “我的文章标题”
本地编辑:在 source/_posts 目录下用 Markdown 编写内容。
本地预览:hexo s,在 http://localhost:4000 查看效果。
一键发布:
1
2
3git add .
git commit -m "更新文章"
git push
推送后,Cloudflare 会自动在后台完成构建和部署,喝杯咖啡的功夫,线上博客就更新了。
关于模板机制
如果文章有固定的结构,不需要每次手动复制。直接修改根目录下 scaffolds/post.md 文件,设定好常用的 Front-matter 字段,以后每次 hexo new 都会自动套用这个“母版”。
四、未来的折腾计划
博客目前已经跑通,纯文字内容完全可以自由输出。接下来预留了以下折腾空间:
评论系统:暂不开启,未来需要时在 _config.butterfly.yml 中填入 Twikoo 配置即可,按需接入。
图片外链:计划使用 PicGo + GitHub 公开仓 + jsDelivr CDN,彻底解决图片失效问题。
视觉美化:参考 Butterfly 官方文档和优秀案例,慢慢调整背景、动效和字体排版。
结语
摆脱第三方平台后,最大的感受是安心。所有的文章都以 .md 格式安稳地躺在我的本地硬盘和 Git 仓库里。无论未来博客框架怎么换,这些知识资产本身永远不会被绑架。
这不仅是搭建了一个网站,更是为自己建立了一个安全、长期的数字花园。