不用买服务器,不用月付一分钱,不用背一条命令,跟着本文从零把一个功能完备的个人博客(Firefly 主题)搭到自己的域名或免费二级域名上。
全程 Windows 平台,AI 编程工具(Trae)负责执行所有终端命令和文件修改,你只需要”说人话”。
一、方案总览
整套方案只有四个角色,全部免费:
| 角色 | 承担职责 | 费用 |
|---|---|---|
| GitHub | 存放博客源码(Fork 官方仓库) | 免费 |
| 本机 + Trae | 写作环境 + AI 干活(装依赖、改配置、提交推送) | 免费 |
| Vercel 或 Cloudflare | 构建并托管博客网站(二选一) | 免费额度完全够用 |
| Firefly 主题 | 博客本体:文章、相册、友链、评论、搜索全都自带 | 开源免费 |
工作原理一句话:你把源码推送到 GitHub → 平台自动拉取、构建、发布 → 以后每次发文推代码,网站几分钟后自动更新。这就是”持续部署”,你从不需要碰服务器。
二、前置准备
2.1 需要注册的账号
| 账号 | 用途 | 注册地址 | 备注 |
|---|---|---|---|
| GitHub | 托管博客源码,触发自动部署 | https://github.com/signup | 邮箱验证后即可用 |
| Vercel | 部署方案 A(推荐新手,国内访问一般但稳定) | https://vercel.com | 直接用 GitHub 账号一键登录 |
| Cloudflare | 部署方案 B(国内访问体验好) | https://dash.cloudflare.com/sign-up | 邮箱注册即可,和 Vercel 二选一 |
部署平台二选一即可,后面第八步会分别给出两套完整步骤。以后想迁移,换个平台重新导入仓库就行,源码始终在你自己的 GitHub 里。
2.2 需要安装的软件
| 软件 | 版本要求 | 用途 | 官网地址 |
|---|---|---|---|
| Node.js | ≥ 22.23.0(装 22.x LTS 即可) | 博客构建运行环境 | https://nodejs.org/zh-cn |
| Git | 最新版即可 | 代码版本管理、推送 GitHub | https://git-scm.com/download/win |
| pnpm | ≥ 11.22.0(Node 装好后一条命令安装) | 依赖管理(项目强制要求 pnpm) | https://pnpm.io/zh/installation |
| Trae | 最新版 | AI 编程助手:替你执行命令、改文件 | https://www.trae.cn/downloads |
| VS Code(可选) | 最新版 | 备用编辑器,手动改配置时更直观 | https://code.visualstudio.com/ |
安装要点(3 分钟)
- Node.js:官网下载
.msi安装包,一路下一步。装完打开 PowerShell 验证:
node -v显示 v22.x.x 即达标。
-
Git:安装时所有选项保持默认即可(默认会加入系统 PATH)。
-
pnpm:在 PowerShell 里执行(不用去官网下安装包):
npm install -g pnpmpnpm -v显示 11.x.x 即达标。
三、第一步:Fork 官方仓库
“Fork”就是把别人的项目完整复制一份到你自己的 GitHub 账号下,你拥有这份副本的全部修改权,将来部署平台也是从你的副本拉代码。
- 浏览器打开 Firefly 官方仓库:https://github.com/CuteLeaf/Firefly
- 点击右上角 Fork 按钮
- 弹出页面保持默认(仓库名
Firefly、勾选 Copy the main branch only),点 Create fork - 等待几秒,页面跳转到
https://github.com/你的用户名/Firefly—— 完成
全程 1 分钟。不要用 Download ZIP 下载,Fork 才能和自动部署联动。
四、第二步:用 Trae 克隆项目到本地
- 安装并打开 Trae,用任意方式登录
- 菜单 文件 → 打开文件夹,新建并选择一个空文件夹(例如
E:\blog) - 在右侧 AI 对话框中,把下面这句发出去(把用户名换成你自己的):
请帮我把我 GitHub 上的仓库 https://github.com/你的用户名/Firefly 克隆到当前打开的文件夹里,克隆完成后告诉我项目结构。AI 会自动执行 git clone 并把仓库内容放进你的工作区。如果你没有开全自动模式(SOLO / Builder),Trae 执行命令前会弹出确认框,点允许即可。
五、第三步:安装依赖
项目克隆下来后,继续在 Trae 对话框发送:
请先检查本机 Node 和 pnpm 版本(项目要求 Node ≥ 22.23.0、pnpm ≥ 11.22.0),符合要求就在项目根目录执行 pnpm install 安装依赖;如果 pnpm 未安装,先用 npm install -g pnpm 安装。完成后告诉我结果。AI 会自动完成版本检查和安装。依赖大约几百个包,国内网络一般 1~3 分钟。
这个项目用
preinstall脚本强制 pnpm,用 npm/yarn 安装会直接报错——让 AI 用 pnpm 就不会遇到。
六、第四步:修改博客配置
Firefly 的所有个性化配置集中在 src/config/ 目录,改文件即可,不需要碰组件代码。下面两张表帮你快速定位。
6.1 核心配置文件速查
高频必改(上线前一定要过一遍):
| 文件 | 管什么 | 常改项 |
|---|---|---|
src/config/siteConfig.ts | 站点全局 | 网站标题、副标题、Banner 文案、语言、时区 |
src/config/profileConfig.ts | 博主信息 | 昵称、头像、一句话简介、社交链接(GitHub/B站/邮箱等) |
src/config/navBarConfig.ts | 顶部导航 | 导航菜单的条目、顺序、下拉分组 |
src/config/footerConfig.ts + FooterConfig.html | 页脚 | 版权声明、ICP 备案号、自定义页脚内容 |
按需修改(想开就开,不想用关掉就行):
| 文件 | 管什么 |
|---|---|
src/config/commentConfig.ts | 评论系统(Waline / Twikoo / Giscus 等,默认关闭) |
src/config/sidebarConfig.ts | 侧边栏组件的开关、排布、显示页面 |
src/config/friendsConfig.ts | 友链页数据 |
src/config/licenseConfig.ts | 文章版权许可协议 |
src/config/analyticsConfig.ts | 访问统计(Umami 等) |
src/config/sponsorConfig.ts | 打赏二维码 |
src/config/musicConfig.ts | 音乐播放器 |
src/config/fontConfig.ts | 字体 |
src/config/effectsConfig.ts | 页面特效 |
src/config/backgroundWallpaper.ts | 背景壁纸 |
src/config/coverImageConfig.ts | 文章封面图策略 |
src/config/displaySettingsConfig.ts | 横幅/布局等显示模式 |
src/config/expressiveCodeConfig.ts | 代码块高亮样式 |
src/config/announcementConfig.ts | 全站公告 |
src/config/galleryConfig.ts | 图集 |
| 其余(mermaid / pio / plantuml / booknav / dynamic) | 图表、看板娘、书签导航、动态页等长尾功能 |
6.2 让 AI 替你改
不需要自己找字段,把需求说清楚发给 Trae:
请帮我完成博客基础配置:1. src/config/siteConfig.ts:网站标题改为「XX 的博客」,副标题改为「记录技术与生活」;2. src/config/profileConfig.ts:作者名改为 XX,GitHub 链接改为 https://github.com/你的用户名,加上我的邮箱 someone@example.com;3. 改完把改动的字段列出来给我确认。AI 会直接定位字段、修改、保存。所有配置文件里都有中文注释说明每个字段的含义,想自己动手用 VS Code 打开照着注释改也一样。
七、第五步:本地预览
在 Trae 对话框发送:
请启动博客开发服务器,并告诉我预览地址。AI 执行 pnpm dev 后,浏览器打开 http://localhost:4321 就能看到你的博客。此时你改任何配置、文章,页面会热更新,保存即生效。
首次启动需要构建缓存,页面出来前可能有十几秒白屏,属正常现象。
八、第六步:新建第一篇文章
Firefly 的文章都是 Markdown 文件,放在 src/content/posts/ 目录。继续对 Trae 说:
请用 pnpm new-post 创建一篇新文章,文件名 hello-world,然后把标题改成「我的第一篇博客」,写一段 200 字左右的开场白介绍这个博客。AI 会生成骨架并替你填充内容。生成的文章顶部有一段 frontmatter(配置头),含义如下,以后写文自己填:
---title: 我的第一篇博客 # 文章标题(必填)published: 2026-09-15 # 发布日期(必填)description: 文章摘要 # 列表页显示的摘要image: ./cover.webp # 封面图(相对路径引用同目录图片,可省略)tags: [随笔] # 标签category: 随笔 # 分类pinned: false # 是否置顶draft: false # true = 草稿,不会发布---正文就是标准 Markdown,写完保存即可。
九、第七步:推送到 GitHub
本地满意后,把改动推上去(这一步同时是部署的触发器)。在 Trae 对话框发送:
请帮我把当前所有改动提交到 Git 并推送到 GitHub,提交信息写「初始化博客配置并发布第一篇文章」。想手动执行的话,等效命令是:
git add .git commit -m "初始化博客配置并发布第一篇文章"git push origin main推送完成后,打开你的 GitHub 仓库页面,能看到刚才的改动记录。
十、第八步:部署上线(二选一)
方案 A:Vercel(最省事,推荐第一次部署选它)
- 打开 https://vercel.com,点 Continue with GitHub,授权登录
- 控制台点 Add New… → Project
- 在 Import Git Repository 列表里找到你的
Firefly仓库,点 Import - 配置页三处确认(其余全部默认):
| 配置项 | 填什么 |
|---|---|
| Framework Preset | Astro(一般已自动识别) |
| Build Command | 手动改成 pnpm build(重要,见下方说明) |
| Output Directory | dist(默认即可) |
- 展开 Environment Variables,添加一条环境变量:
| Name | Value |
|---|---|
NODE_VERSION | 22 |
- 点 Deploy,等 3~5 分钟构建完成
- 完成后会得到一个
你的项目名.vercel.app的免费域名,点击即可访问你的博客
绑定自己的域名(可选):项目页 → Settings → Domains → Add,填入你的域名,按提示到域名解析商那里加一条 CNAME 记录指向 Vercel 给出的地址,等证书自动签发(几分钟)即可 HTTPS 访问。
方案 B:Cloudflare Pages(国内访问体验更好)
- 打开 https://dash.cloudflare.com 登录
- 左侧菜单 Workers 和 Pages → 创建 → 选择 Pages → 连接到 Git
- 授权 GitHub 后选择你的
Firefly仓库,点 开始设置 - 构建配置按下表填写:
| 配置项 | 填什么 |
|---|---|
| 项目名称 | 随意(决定二级域名 xxx.pages.dev) |
| 生产分支 | main |
| Framework 预设 | Astro |
| 构建命令 | pnpm build |
| 构建输出目录 | dist |
- 点开 环境变量(高级),添加:
| 变量名 | 值 |
|---|---|
NODE_VERSION | 22 |
- 点 保存并部署,等 3~5 分钟构建完成,得到
xxx.pages.dev免费域名
绑定自己的域名(可选):项目 → 自定义域 → 设置自定义域,填入域名。如果域名本身就托管在 Cloudflare,DNS 记录自动创建,几分钟就能 HTTPS 访问。
部署失败的通用排查法
无论哪个平台,构建失败都先做一件事——把构建日志里的报错信息发给 Trae:
我的博客在部署平台构建失败,日志报错如下:(粘贴日志)请分析原因并帮我修复。九成问题出在依赖版本或构建环境变量,AI 能直接定位。
十一、后续日常维护
11.1 日常写文章(最常用的循环)
① 对 Trae 说:用 pnpm new-post 创建文章 <文件名>,标题、内容如下:……② 本地 http://localhost:4321 预览效果③ 满意后对 Trae 说:提交并推送到 GitHub④ 平台检测到 push,自动构建,约 3 分钟后线上生效写一篇文章的固定成本:两句话 + 三分钟等待,全程无命令。
11.2 修改配置或样式
同样三步:告诉 Trae 改什么 → 本地预览确认 → 让它提交推送。AI 会在改完后自己跑一遍检查,有问题会先报给你。
11.3 同步官方主题更新
Firefly 官方仓库更新后,你的 Fork 不会自动跟进:
- 打开你 GitHub 上的 Firefly 仓库页面,点 Sync fork → Update branch(把官方更新合并进你的副本)
- 回到本地,对 Trae 说:
我刚刚在 GitHub 上同步了上游更新,请执行 git pull 拉取到本地,然后检查有没有和我的本地改动冲突。- 推送后平台自动重新部署,主题就升级完成
11.4 常见问题速查
| 现象 | 原因与解决 |
|---|---|
pnpm install 报 only-allow pnpm | 用了 npm/yarn。删掉 node_modules 和 pnpm-lock.yaml(如有)后改用 pnpm |
| 本地预览白屏十几秒 | 首次启动正常,等构建缓存完成 |
| 部署平台构建失败:Node 版本 | 确认环境变量 NODE_VERSION=22 已添加 |
| 线上站搜索功能不可用 | 构建命令没改成 pnpm build,回部署平台设置里改 |
| 文章图片加载慢/挂了 | 图片先压缩再使用;或使用图床,image: 直接填外链 |
| 国内访问 Vercel 慢 | 换 Cloudflare Pages 部署,或绑定自有域名走优选 |
十二、总结:这套方案好在哪
- 零服务器成本:不需要买云主机,Vercel / Cloudflare 免费额度对个人博客绰绰有余
- 零记忆负担:装依赖、改配置、建文章、提交推送全部用自然语言让 Trae 完成,命令都在本文可复制
- 自动持续部署:源码在 GitHub,push 即发布,文章更新几分钟内全网上线
- 数据完全自持:仓库在你自己账号下,随时可以换部署平台、换域名,博客不锁死在任何服务商
- 功能开箱即用:暗色模式、全文搜索、评论、相册、友链、RSS、代码高亮,主题全部内置
接下来要做的只有一件事:把本文里所有的「XX」换成你的名字,然后开始写第一篇文章。
分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 0 天
部分内容可能已过时