如何使用 GitHub + Cloudflare Pages 搭建完全免费的个人博客
为什么选择这个方案?
这是当前个人博客搭建的「天花板级免费方案」,完美匹配 免费、安全、隐私优先、高可靠 的需求:
- ✅ 完全0成本,无任何隐性消费
- ✅ 隐私100%可控:所有原始内容存在你自己的GitHub私有仓库,任何第三方都无法获取你的草稿、未发布内容
- ✅ 全球访问速度快:Cloudflare全球300+节点CDN加速,纯静态页面加载仅需几百毫秒
- ✅ 企业级安全:免费HTTPS、DDoS防护、防入侵,比绝大多数自建站更安全
- ✅ 无限流量、无限存储空间,无广告打扰
- ✅ 高度自定义:可以任意更换主题、添加功能,不受平台限制
- ✅ 内容完全可迁移:所有源文件都在你手里,随时可以迁到其他平台
前置准备
你只需要两个免费账号:
- GitHub账号(你Chrome上已经登录了,直接用就行)
- Cloudflare账号(https://dash.cloudflare.com/sign-up 注册,完全免费)
步骤1:创建内容仓库与发布仓库
- 打开GitHub:https://github.com/new
- 填写仓库信息:
- 内容仓库名:比如
my-blog(随便取,英文即可) - 内容仓库类型选择 Private(私有,避免你的原始内容、草稿被公开)
- 勾选
Add a README file - 点击
Create repository创建完成
- 内容仓库名:比如
- 再创建一个发布仓库:
- 发布仓库名:比如
my-blog-public - 发布仓库类型选择 Public 或 Private
- 点击
Create repository创建完成
- 发布仓库名:比如
步骤2:上传博客文件到内容仓库
我已经帮你生成了完整的博客项目文件,存在你本地的 /Users/liwei.ok/.openclaw/workspace/github-cloudflare-blog/ 目录下,直接上传到内容仓库即可:
- 打开刚才创建的内容仓库页面,点击
Add file→Upload files - 把本地
github-cloudflare-blog目录下的所有文件全部拖到上传框里 - 点击
Commit changes完成上传
步骤3:绑定Cloudflare Pages自动部署
- 打开Cloudflare控制台:https://dash.cloudflare.com/
- 左侧菜单找到
Pages→ 点击Create project→ 选择Connect to Git - 授权Cloudflare访问你刚才创建的发布仓库
- 配置部署参数:
- 项目名称:随便取,比如
my-blog,这个就是你的免费二级域名前缀,最终访问地址是https://项目名.pages.dev - 生产分支:
public/release - 构建命令:
hugo - 构建输出目录:
public
- 项目名称:随便取,比如
- 点击
Save and Deploy,等待1分钟左右,部署就完成了! - 部署成功后,Cloudflare会给你一个免费的访问地址,打开就能看到你的博客了。
- 在内容仓库配置 CI,同步构建产物到发布仓库的 public/release 分支
后续怎么发布新文章?
超级简单,两步搞定:
- 本地写好Markdown格式的文章,放到
content/posts/目录下 - 提交到内容仓库的 main 分支,CI 会同步到发布仓库并触发 Cloudflare 部署
可选优化
- 绑定自定义域名:Cloudflare Pages支持免费绑定你自己的域名,自动签发SSL证书,全程免费
- 添加评论功能:推荐用Giscus(基于GitHub Discussions),支持匿名评论,完全免费,不需要额外服务器
- 更换主题:Hugo有上千款免费开源主题,下载后放到themes目录,修改配置文件即可切换
- 添加全文搜索:很多主题自带搜索功能,开启即可,不需要额外服务
避坑提醒
- 仓库一定要设为私有,否则你的未发布草稿、源文件会被所有人看到
- 原始Markdown文件建议本地再备份一份,双重保险
- 不要在博客里泄露个人真实身份、联系方式等敏感信息 \n> 测试发布:此段用于验证双仓与 CI 镜像发布流程是否正常触发。