不会写代码,也能让 AI 全托管一个博客:从 Fork 到日常维护(保姆级教程)
不用买服务器、不用背命令、不用会写代码:Fork 一份开源模板,让 AI 编程工具全程施工——先立规矩、再改配置、部署 Vercel、独立评论后端、自建播放器源站、优选 IP 提速,一篇保姆级教程走完从建站到日常维护。

不用买服务器,不用背一条命令,不用会写代码。跟着本文,你能把一个功能完备的个人博客搭到自己的域名上,并且从搭建到日常维护全程由 AI 干活——你只需要讲需求、看结果、点确认。
本文以我自己的实验站灵感屋(idea.lanerc.me)为实例:它基于开源博客模板 my-blog(Astro 框架),由 AI 编程工具(本文用 DSH + DeepSeek,其他 AI 编程工具同理)全程施工,这个站本人没有手写过一行代码。模板也可以选
Firefly(我主站
lanerc.me 用的就是它)——两套都是 Astro、都是 Fork 后照本文流程走,只在第三步选仓库、第八步选生产分支时有区别,文中都标注了。
一、方案总览
整套方案只有四个角色,全部免费或近乎免费:
| 角色 | 承担职责 | 费用 |
|---|---|---|
| GitHub | 存放博客源码(Fork 一份模板到自己账号下) | 免费 |
| 本机 + AI 编程工具 | 写作环境 + AI 干活(装依赖、改配置、写代码、提交推送) | AI 按量计费,便宜 |
| Vercel | 构建并托管博客网站 | 免费额度完全够用 |
| 开源模板(二选一) | 博客本体:文章、播放器、相册、评论、搜索全都自带。my-blog(本文实例,灵感屋在用)或 Firefly(功能最全的老牌主题,我主站在用) | 开源免费 |
首先需要提前注册这几个账号,准备好所需要的AI工具。
工作原理一句话:你把需求说给 AI → AI 修改源码并推送到 GitHub → Vercel 自动拉取、构建、发布 → 几分钟后网站更新。这就是”全托管”:你从不需要碰服务器,也不需要打开代码文件。
二、前置准备
2.1 需要注册的账号
| 账号 | 用途 | 注册地址 | 备注 |
|---|---|---|---|
| GitHub | 托管博客源码,触发自动部署 | 邮箱验证后即可用 | |
| Vercel | 部署托管 | 直接用 GitHub 账号关联注册 | |
| Cloudflare | (可选)域名 DNS 托管,绑域名和优选 IP 时的操作台 | 域名本来就托管在 Cloudflare 的直接用现成的;不在的可忽略 | |
| MongoDB Atlas | (可选进阶)评论系统数据库 | 只有第九步装独立评论时才需要,免费层够用 |
以下为个人用小号的解释(总结:本教程无任何风险,仅仅大号免费额度不够了),可展开看详细内容
为什么不用大号?主要是想部署在 Vercel 上面,大号连的 Vercel 做的音乐 API 被人白嫖,月额度烧完了,所以为了赶时间就申请了一套小号。这就是主要原因,也挺无奈。
2.2 需要安装的软件
| 软件 | 版本要求 | 用途 | 官网地址 |
|---|---|---|---|
| Node.js | 22.x LTS | 博客构建运行环境 | |
| Git | 最新版即可 | 代码版本管理、推送 GitHub | |
| pnpm | 最新版(Node 装好后一条命令安装) | 依赖管理(项目强制要求 pnpm) | |
| AI 编程工具 | 最新版 | 替你执行命令、改文件(本文用 DSH,也可用 Trae、Cursor 等) | 按你选的工具官网 |
安装要点(3 分钟)
- Node.js:官网下载
.msi安装包,一路下一步。装完打开 PowerShell 验证:
node -v显示 v22.x.x 即达标。
- Git:安装时所有选项保持默认即可(默认会加入系统 PATH)。
- pnpm:在 PowerShell 里执行(不用去官网下安装包):
npm install -g pnpmpnpm -v能显示版本号即达标。
2.3 先给 AI 一把”小钥匙”(重要,别跳过)
AI 要替你推送代码,需要访问你 GitHub 仓库的权限。不要把账号密码给它,也不要给全账号权限的令牌。 正确做法是发一把只开一扇门的钥匙:
- 用小号登录 GitHub,右上角头像 → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token
- Repository access 只勾选你这个博客仓库(第三步 Fork 完再来建也行)
- Permissions 里只给 Contents: Read and write,其余不动
- 生成后把令牌交给你的 AI 工具的配置项保存
这样即使令牌泄露、或者 AI 抽风乱来,爆炸半径也只有这一个实验仓库。全托管能成立的前提就在这一步。
三、第一步:Fork 模板仓库
“Fork”就是把别人的项目完整复制一份到你自己的 GitHub 账号下,你拥有这份副本的全部修改权,部署平台也是从你的副本拉代码。
- 浏览器打开模板仓库(二选一):my-blog 是
MmzMing/my-blog;Firefly 是
CuteLeaf/Firefly
- 点击右上角 Fork 按钮
- 弹出页面保持默认,点 Create fork
- 等待几秒,页面跳转到
github.com/你的用户名/仓库名—— 完成
全程 1 分钟。不要用 Download ZIP 下载,Fork 才能和自动部署联动。
注意默认分支不一样:my-blog 是 master,Firefly 是 main。后面部署选生产分支时要选对,第八步会再提醒。下文以 my-blog 为例,Fork 的是 Firefly 的话把仓库名和分支名对应替换即可。
四、第二步:让 AI 把项目克隆到本地
- 打开你的 AI 编程工具,新建并打开一个空文件夹(例如
E:\blog)作为工作区 - 在 AI 对话框里,把下面这句发出去(把用户名换成你自己的):
请帮我把我 GitHub 上的仓库 https://github.com/你的用户名/my-blog 克隆到当前打开的文件夹里,克隆完成后告诉我项目结构。只动这个仓库,不要碰我电脑上其他项目。AI 会自动执行克隆并把仓库内容放进工作区。如果工具执行命令前弹出确认框,点允许即可。
五、第三步:先立规矩,再动代码(全托管的核心)
这一步看起来最没用,其实是整个教程里最重要的一步。
AI 最擅长的事,除了干活,还有”顺手帮你优化一下”——你不把边界写死,它就会替你做决定。所以开工第一件事,是在仓库根目录建一份 AGENTS.md,把规矩写下来,AI 每次开工先读它。下面这份可以直接抄,把括号里的换成你的:
# 本仓库工作规矩1. 只动本仓库。其他仓库、部署后台、DNS,一律不碰。2. 一批只做一件事,一批一个 commit。想改五个地方,分五批提交。3. 每次改完必须自己跑构建验证,并把验证结果(成功/失败、关键数据)汇报给我。4. 视觉效果(好不好看、像不像)由我验收,你不要自行判定通过。5. 不许猜测。素材、数字、现状以仓库代码和接口实测为准,查不到就说查不到。6. 推送前把本批改动的文件清单列给我,等我确认再推。然后对 AI 说:
请把上面这份规矩保存为仓库根目录的 AGENTS.md(如果根目录已有同名文件,先把两份内容给我看,合并后再保存),然后把它作为第一个 commit 提交并推送。之后所有工作都按这份规矩执行。我的实验站第一个提交干的就是这件事。后面它真拦住过好几次 AI 想顺手重构”范围外问题”的冲动。
六、第四步:安装依赖与本地预览
继续在对话框发送:
请先检查本机 Node 和 pnpm 版本(项目要求 Node 22、pnpm 最新版),符合要求就在项目根目录执行 pnpm install 安装依赖;如果 pnpm 未安装,先用 npm install -g pnpm 安装。完成后启动开发服务器(pnpm dev),告诉我预览地址。AI 会自动完成版本检查、安装和启动。依赖大约几百个包,国内网络一般 1~3 分钟。启动成功后浏览器打开 http://localhost:4321 就能看到你的博客,此时改任何配置、文章,页面保存即刷新。
首次启动要构建缓存,页面出来前可能有十几秒白屏,属正常现象。
这个项目用
preinstall脚本强制 pnpm,用 npm/yarn 安装会直接报only-allow pnpm——让 AI 用 pnpm 就不会遇到。
七、第五步:把模板换成”你自己的站”
刚 Fork 下来的站挂的全是模板作者的名字、头像、友链。先换掉,才算你的站。把下面这段填好发给 AI:
请帮我完成博客的身份切换,要求一批只做一件事、分开提交:1. 站点名改为「XX的小站」,站点域名先填 https://XX.vercel.app(以后绑了自己的域名再改);2. 作者昵称改为 XX,头像换成我放在工作区的 avatar.png;3. 友链列表整体清空,一条不留;4. 文章页的打赏入口关闭,页脚和隐私页里的联系邮箱改成我的 someone@example.com;5. 先把仓库自带的示例文章列个清单给我,我确认哪些删,你再删。每完成一项,把改了哪些文件列给我看。AI 会直接定位配置文件修改。注意第 5 条:模板自带的示例文章里可能混着有用的说明页,让 AI 先列清单、你点头再删,比一句话”全删了”稳妥。
八、第六步:部署到 Vercel 上线
- 打开
vercel.com,点 Continue with GitHub,用你的账号授权登录
- 控制台点 Add New… → Project
- 在 Import Git Repository 列表里找到你的
my-blog仓库,点 Import(找不到的话,点下面的链接给 Vercel 授权访问该仓库) - 配置页确认四处,其余全部默认:
| 配置项 | 填什么 |
|---|---|
| Framework Preset | Astro(一般已自动识别) |
| Production Branch | 选你模板的默认分支:my-blog 选 master,Firefly 选 main(不选对不会自动部署) |
| Build Command | 默认即可(项目自带构建脚本) |
| Output Directory | dist(默认即可) |
- 点 Deploy,等 3~5 分钟构建完成
- 完成后得到一个
你的项目名.vercel.app的免费域名,点击即可访问
一个保险设置(建议顺手加上):展开 Environment Variables 添加一条
NODE_VERSION=22。Astro 7 要求构建环境的 Node 必须 ≥ 22;Vercel 新项目默认一般已经达标,但个别项目默认版本偏低,会直接构建失败。把版本钉死,就不用赌它的默认值。
绑定自己的域名(可选/可直接使用托管到Cloudflare的域名):项目页 → Settings → Domains → Add,填入你的域名,按提示到域名注册商那里加一条 CNAME 记录指向 Vercel 给出的地址,等证书自动签发(几分钟)即可 HTTPS 访问。绑完别忘了回第七步,让 AI 把配置里的站点域名换成正式域名。域名托管在 Cloudflare 的,就在 Cloudflare 控制台的 DNS 页加这条记录——注意把代理状态设成仅 DNS(灰云):开着橙云代理时,流量会先绕 Cloudflare 的默认节点,下面的优选 IP 不生效,还可能和 Vercel 的证书校验打架。
(可选)优选 IP:把国内访问速度再往上抬一截,可展开看配置方法
Vercel 是任播网络,官方 CNAME(cname.vercel-dns.com)解析到的节点对国内线路不一定最优。社区有个长期维护的优选项目 enhanced-FaaS-in-China:它定期测速,挑出对电信、联通、移动都友好的 Vercel 节点,收成一个现成的优选域名,你把 CNAME 换过去就行。配置三步,顺序不能反:
- 先按上面的官方流程,把 CNAME 指向
cname.vercel-dns.com,等 Vercel 把 SSL 证书签发好(Domains 页状态变 Valid)——证书没签下来就换走,会签不下来 - 再回域名注册商的 DNS 处,把这条 CNAME 的目标改成
vercel-cname.xingpingcn.top(在 Cloudflare 里改的同理,保持仅 DNS) - 等几分钟解析生效,用多地测速工具对比一下改前改后,国内节点变快就说明生效了
两条提醒:优选域名是社区项目维护的,哪天它停更或失效,把 CNAME 改回官方地址立即恢复,所以只推荐用子域名走 CNAME(改起来方便),根域名绑 A 记录同理可指向优选 IP,但 IP 会变、要定期复测,不如 CNAME 省心。
部署失败怎么办:不要自己研究日志。把 Vercel 构建日志里的报错整段复制下来发给 AI:
我的博客在 Vercel 构建失败,日志报错如下:(粘贴日志)请分析原因,在本地修好并验证构建能通过,然后再推送。九成问题出在依赖版本或环境变量,AI 能直接定位。
九、第七步(可选进阶):给评论装一套独立后端
模板自带评论功能,但后端要自己接。千万不要和别人的站、或者你自己的主站共用一套评论后端——共用同一套,两边的评论会串在一起,谁在实验站发的测试留言都会出现在正式站上(新手可忽略)。独立部署一套 Waline,零成本,十分钟:
- 建数据库:登录 MongoDB Atlas → 创建免费集群(M0)→ 在 Database Access 里新建一个数据库用户(记下用户名密码)→ Network Access 里放行
0.0.0.0/0(Vercel 没有固定出口 IP,必须全放行,安全靠强密码)→ 新建一个空数据库,例如waline-idea - 部署后端:Fork 一份
walinejs/waline 到你的GitHub账号 → 回 Vercel 新建 Project 导入它 → Root Directory 改成
example(真正的应用在子目录里,不改部署必失败)→ 项目 Settings 里把 Node.js Version 改成 24.x(默认的 26.x 与 Waline 不兼容) - 填环境变量(Deploy 前在 Environment Variables 里一次填齐):
| 变量名 | 填什么 |
|---|---|
MONGO_DB | 第 1 步建的库名,如 waline-idea |
MONGO_USER / MONGO_PASSWORD | 第 1 步建的数据库用户和密码 |
MONGO_HOST | Atlas 集群的三个分片主机名,写成 JSON 数组:["主机1","主机2","主机3"](在 Atlas 的 Connect 页面能看到) |
MONGO_PORT | [27017,27017,27017],同样必须是数组 |
MONGO_REPLICASET | Atlas 的副本集名(Connect 页面可见) |
MONGO_AUTHSOURCE | admin |
MONGO_OPT_SSL | true |
SITE_NAME | 你的站名 |
SITE_URL | 你的博客地址,如 https://idea.lanerc.me |
SECURE_DOMAINS | 你的博客域名 + 这个评论后端自己的域名,逗号分隔 |
最容易栽的坑:
MONGO_HOST和MONGO_PORT必须写成 JSON 数组。只写一个光秃秃的 27017,它会把这串数字拆开当成多个端口去连,部署显示成功、请求全部超时,你还会以为是网络问题。另一条:不要把mongodb+srv://整串连接字符串直接粘进去,Waline 不吃整串,必须拆成上面这组分项变量。
- 部署成功后得到评论后端地址(如
https://waline-idea.vercel.app,建议同样在 Domains 里绑个自己的子域名,vercel大陆dns基本被污染的无法访问),回博客这边对 AI 说:
请把评论配置里的 serverURL 改成 https://我的评论后端域名/ ,登录方式保持允许游客(昵称+邮箱即可评论),改完构建验证并推送。推送后等几分钟,打开留言板发一条测试评论,能发出来、刷新还在,这套评论就通了。
顺手把访问统计也装上(可选)
评论有了,还差一个「每天有多少人来、哪篇文章有人看」。这类统计用 Umami:免费、轻量、不种 Cookie。两种装法二选一。
方法一:Umami Cloud(最省事,5 分钟)
- 打开
Umami Cloud 注册,进后台 Add website,填站名和你的域名
- 它会生成一段跟踪脚本,记下里面的
data-website-id(一串 UUID) - 对 AI 说:
请把 Umami 统计接入这个站,我的 data-website-id 是 XXX。如果模板自带统计/Umami 配置项就填配置项,不要把脚本硬编码进每个页面;本地预览确认统计请求发出后再告诉我。- 推送上线后,自己打开网站点开两篇文章,回 Umami 后台看「实时访客」里有没有自己——有,这套统计就通了
方法二:自建 Umami(有 VPS 的看这里,点开展开)
数据想放自己手里、或者不想受云端免费版额度限制,就在自己的 VPS 上搭一套,我自己的站用的就是自建版:
- VPS 上装好 Docker 后,对 AI 说,让它给你生成部署文件:
请给我一份部署 Umami 的 docker-compose.yml(官方镜像 + PostgreSQL),并说明每个环境变量要填什么。- 在 VPS 上把这份文件放好、启动容器,Umami 默认跑在 3000 端口;再用 Nginx/Caddy 反代到一个子域名(如
umami.你的域名)并配好 HTTPS - 打开后台,用默认账号
admin/ 密码umami登录,第一件事先改密码,再 Add website 拿到你的data-website-id - 接入博客和验收的方法同方法一第 3、4 步
十、第八步(可选进阶):播放器音源——公共源还是自建源(二选一)
模板自带的播放器要出声,得先给它接一个”源站”(提供歌单和音频地址的接口)。两种接法,二选一:
| 方案 A:公共源 | 方案 B:自建源站 | |
|---|---|---|
| 做什么 | 只改配置文件,借用别人公开的接口 | 自己部署两个小接口 |
| 耗时 | 5 分钟 | 约半小时(还是 AI 干活) |
| 效果 | 网易云基本能听;QQ 大概率只有列表没声;部分歌曲只有 30 秒试听 | 全平台完整播放,稳定性自己说了算 |
| 适合 | 先把站跑起来 | 长期正经用(灵感屋用的就是这个) |
也可以先 A 后 B:配置是逐张歌单生效的,哪张不满意就把哪张切到自建,不用一次全换。
方案 A:只改配置(公共 Meting 源)
播放器的配置文件是 src/config/musicConfig.ts。mode 保持 "meting",你要认识的只有四处:
| 字段 | 填什么 |
|---|---|
meting.api | 主源地址(现行可用:https://api.qijieya.cn/meting/?server=:server&type=:type&id=:id) |
meting.fallbackApis | 备胎地址数组,主源挂了自动按顺序换下一个(现行可用:https://api.moeyao.cn/meting/?server=:server&type=:type&id=:id) |
meting.server | 平台:netease 网易云、tencent QQ、kugou 酷狗 |
meting.id | 歌单 ID |
两个避坑:
api.injahow.cn已经连不上了,别再往配置里填;官方源api.i-meto.com只能当列表备胎——它的音频”第二跳”是坏的(歌单加载正常、点哪首都没声),这也是公共源最常见的翻车姿势:列表通 ≠ 能播,一定要逐首点开验收。歌单 ID 怎么找:网易云在 App 里分享歌单,链接里
id=后面那串数字;QQ 音乐的 App 分享短链在电脑上打不开,去网页版y.qq.com打开歌单,地址栏里就是。
换歌单不用自己改文件,对 AI 说:
请把播放器默认歌单换成:平台 tencent,歌单 ID 9439238150。主源和备胎保持不动,改完构建验证,告诉我改了哪一行。方案 B:自建源站(灵感屋在用)
自建源站就是两个自己部署的接口,合起来干两件事:
- 歌单接口:给它平台 + 歌单 ID,返回整张歌单的完整信息(歌名、歌手、封面)。以网易云为例,它先拿到歌单的歌曲 ID 列表,再按每批 100 首补齐详情、按原顺序拼好;结果带一天的缓存,慢只慢第一次打开。
- 解析接口:给它某首歌的平台、ID、歌名、歌手,它按一条回退链找能播的地址:主源先上 → 按平台找对口的源(网易云的歌找网易云的解析、QQ 的歌找 QQ 的解析)→ 备用源兜底。每个候选地址返回前都先验活(真请求一下确认能播),验不过自动换下一个;找到的结果缓存 6 小时。
附:歌单 ID 怎么找(网易云 / QQ)
- 网易云:手机 App 打开歌单 → 分享 → 复制链接,链接里
id=后面那串数字就是(短链先粘到浏览器打开、跳转完成后再看地址栏);或者网页版music.163.com打开歌单,地址栏同理。例如playlist?id=2804070207,ID 就是2804070207。 - QQ 音乐:去网页版
y.qq.com打开歌单,地址末尾那串数字就是 ID(如y.qq.com/n/ryqq/playlist/9439238150)。App 分享出来的是短链,电脑上解析不了,别拿它取 ID,一律走网页版。
部署三步,全程还是使唤 AI:
- 让 AI 按上面的规格把两个接口写成一个独立小项目,部署到 Vercel,得到源站地址:
请为播放器实现一个自建源站,独立项目,部署到 Vercel:1)歌单接口:输入平台(wy/tx/kg)和歌单 ID,返回全量歌曲详情;网易云按 trackIds 每批 100 首并发补详情并保持原顺序;响应加缓存头 s-maxage=86400;2)解析接口:输入平台、歌曲 ID、歌名、歌手,按"主源→平台对口源→备用源"的顺序找可播地址,每个候选先实际请求验活再返回,验不过换下一个;结果在服务端缓存 6 小时;3)两个接口都只允许我博客的域名调用(按 Referer 白名单校验),其他来源返回 403。写完逐项自查并把测试结果给我。- 让 AI 把播放器的歌单从”一张”扩成”一个列表”,每张歌单加一个
api字段——填self走你的源站,填公共源地址走公共源:
请把播放器歌单改造成列表配置:每张歌单包含名称、平台、歌单 ID 和 api 字段,api 为 self 时请求我自建源站的歌单/解析接口,为公共源地址时走 Meting。切歌单时不要打断正在播放的歌曲,点了新歌单里的歌才切换队列。- 验收(这步归你):逐张歌单点开,重点试 QQ 的歌能不能出声、网易云是不是完整版(不是 30 秒试听)。都对,源站就算通了。
我们在用的配置逻辑(可直接照抄)
灵感屋现在挂六张歌单,顺序和分工是这样的——数组里的顺序就是播放器里显示的顺序,第一张是默认歌单:
| # | 歌单 | 平台 | 走哪 | 为什么 |
|---|---|---|---|---|
| 1 | 我喜欢的音乐 | 网易云 | self | 默认歌单;公共源只给 30 秒试听,自建是完整版 |
| 2 | F 2(98 首) | self | QQ 公共源音频第二跳不通,只能自建 | |
| 3 | Do(100 首) | self | 同上 | |
| 4 | syz(34 首) | self | 同上 | |
| 5 | 我喜欢(2370 首) | self + 懒加载 | 太大张,点开才拉,不然首屏等死 | |
| 6 | 本地歌单 | 本地文件 | — | 垫底,断网也有歌听 |
三条配套规矩:切歌单不打断当前播放;大歌单一律懒加载;源站独立部署、只认自己站的域名——公共接口被人拿去薅流量薅到额度爆炸这种事,发生过一次就够了(见第二节小号那段)。
十一、日常施工:怎么跟 AI 说话
站搭起来只是开始。托管的日常,是你不断提需求、AI 不断交付。一次靠谱的施工长这样,五步:
- 你说需求,说清”哪里、什么问题、想要什么效果”,例如:“播放器切歌单太慢,冷加载要十几秒,查一下原因,能改就改。”
- AI 先查再动:定位到是节点跨国、串行请求、缓存太短三层原因叠加,先把原因报给你。
- 分批施工:并发改造一批、缓存策略一批、收尾小补丁一批,每批一个 commit,随时能单独回滚。
- AI 交自查证据:改前改后实测数据、逐项比对结果、构建是否通过——不看证据不算完。
- 你验收:真机打开试一遍(手机、电脑各一次),体感对了才算结;不对就描述现象发回去,别自己猜原因。
三句常用提示词:
要证据时:
改完后把自查结果给我:构建是否通过、改前改后关键数据对照、你逐项核对过什么。没验证过的部分明确标出来,不要笼统说"已完成"。圈范围时(写文章、做调研尤其要用):
素材只许用(某个时间点)之后、(某个作者)的提交记录,上游原作者的历史不要纳入。数字逐个核对来源,不许推测。因为 Fork 是全量复制历史,你不圈范围,AI 就会把模板作者的开发史写成你的奋斗史——这事在我站上真实发生过。
任务太长时,拆开喂:
长任务(写几千字长文、改十几个文件)不要一口气交代完。先让它出清单/大纲,你确认后再让它逐节、逐批推进。原因见文末的常见问题速查:链路太长,中转 API 容易中途断流,拆小之后每段都短,谁都掐不断。
十二、后续日常维护
12.1 写文章(最常用的循环)
写文章不要在 AI 对话框里逐句口述——长文在聊天框里改,越改越乱。更顺手的做法是:先让 AI 建一个文章模板,之后你自己在 Obsidian 里写,AI 只管校验和发布。
- 让 AI 建模板(一次性):
请按这个博客现有的文章格式,在仓库根目录建一个「文章模板.md」:包含完整的 frontmatter(标题、日期、描述、标签、分类、封面、草稿标记,字段和现有文章保持一致)和正文骨架。- 用 Obsidian 把博客文件夹打开为仓库,在里面写文章:复制一份模板改名,正文慢慢写,图片直接拖进去。
- 写完对 AI 说一句就行:
我新写了一篇(文件在 src/content/posts/ 下),检查一下 frontmatter 和图片引用,没问题就提交推送。之后 Vercel 检测到推送自动构建,约 3 分钟线上生效。Obsidian 再装个 Git 插件、开自动提交的话,连第 3 句都能省——我自己的站就是这么干的,写完自动上线。
和 AI 配合的流程,就固定成这四步:
- 你只管写:在 Obsidian 里写标题、正文、插图;分类和标签拿不准就先空着,不用纠结
- AI 收尾:喊它来补齐 frontmatter、按站点既有的分类标签归类(不许它自造词)、检查图片引用和公式有没有渲染坏
- AI 发布并回报:它提交推送,等构建完把线上链接发回给你
- 你验收:点开看一遍;要改,小改自己在 Obsidian 里改完再喊它推,结构性的大改把意见列出来给它改
分工就一条:内容归人,格式、校验、发布归 AI。各干各擅长的,谁也别抢谁的活。
没用过 Obsidian 的先看这两处:
下载 Obsidian(全平台免费);上手和把文件夹连接成仓库,跟着 B 站这支视频走一遍就行:
Obsidian 入门保姆级教程:20 分钟轻松上手;想查某个具体功能,再翻
Obsidian 官方中文帮助。另外,专门针对「用 Obsidian 写博客」的配置方法(仓库根目录选哪一级、图片链接怎么设、粘贴图片自动改名),推荐看二叉树树的这篇:
现代!易上手!高效!且社区支持的超高校级的 MarkDown 编辑器!,文末参考里也附上了。
12.2 改配置、加功能
同样三步:告诉 AI 改什么 → 本地预览确认 → 让它提交推送。例如给播放器加一张歌单,就是一句话的事:
请把这张歌单加进播放器:平台 网易云,ID 是 2804070207,名字叫「我喜欢的音乐」。加完构建验证,告诉我改了哪个文件。12.3 同步模板更新(先看警告)
模板官方更新后,你的 Fork 不会自动跟进:
- 打开你 GitHub 上的仓库页面,点 Sync fork → Update branch
- 回本地对 AI 说:
我刚刚同步了上游更新,请 git pull 拉下来,检查和我的改动有没有冲突,有冲突先列给我,不要自行合并。
警告:你的站改得越多,同步冲突越狠。如果已经像我一样大改过几十处,盲目 Sync 只会炸一地。更稳妥的策略是不追大版本:看上模板的某个新功能,单独让 AI 评估、单独搬那一小块。
12.4 定期巡检(也交给 AI)
托管不等于撒手。可以建几个固定节奏的小任务,让 AI 定期替你看一眼:服务器/域名到期、依赖的平台有没有大变动、评论区有没有需要你本人回复的长评论。原则是:没事保持安静,有事才来报你——不然提醒比事情本身还烦人。
十三、常见问题速查
| 现象 | 原因与解决 |
|---|---|
AI 思考到一半就消失、报错 Upstream HTTP/2 stream failed | API 中转站的流断了,不是你的网络、也不是模型坏了。长任务拆小(第十一节);有条件就把接口换成模型官方 API 直连,一劳永逸 |
| AI 写出来的内容把模板作者的事迹安在你头上 | Fork 的历史是全量的。用第十一节”圈范围”提示词限定素材 |
pnpm install 报 only-allow pnpm | 用了 npm/yarn。删掉 node_modules 后改用 pnpm 重装 |
| 本地预览白屏十几秒 | 首次启动在建缓存,等它完成即可 |
| Vercel 构建失败 | 把构建日志整段发给 AI 修(第八步有现成句式);常见是 Node 版本没设 22、生产分支选错(my-blog 要 master、Firefly 要 main) |
| Waline 部署成功但评论全超时 | 连接参数没拆对:检查 MONGO_HOST/MONGO_PORT 是否写成 JSON 数组、有没有误粘整串连接字符串(第九步) |
| 播放器歌单能打开但没声,或只有 30 秒试听 | 公共源的音频第二跳不通或只给试听。换第十节方案 B 自建源站 |
| 实验站的评论跑到正式站去了(或反过来) | 两站共用了同一套评论后端。按第九步给每站独立部署、独立数据库 |
| 推了代码线上没变化 | 先等 3 分钟构建;还不对就看 Vercel 的 Deployments 列表确认最新构建是否成功,别急着重复推送 |
十四、总结:这套方案好在哪
- 零服务器成本:不需要买云主机,Vercel / Atlas 免费额度对个人博客绰绰有余
- 零命令、零代码:装依赖、改配置、写文章、提交推送全部用自然语言完成,命令都在本文可复制
- 自动持续部署:源码在 GitHub,push 即发布,更新几分钟内全网上线
- 国内访问也不慢:把站放 Vercel 不等于国内就打不开——Vercel 官方文档提到其网络有面向国内的优选 IP,实测访问速度大约能达到备案后用国内 CDN 加速效果的 80% 左右(个人感觉)。省了备案和国内主机的钱,速度只让两成,对个人博客完全够用
- 数据完全自持:仓库在你自己账号下,随时可以换部署平台、换 AI 工具、甚至换回自己动手,博客不锁死在任何服务商
- 托管靠流程,不靠运气:权限给最小、规矩写成文件、批次切小、验收归人——这四条比模型本身更决定成败
接下来要做的只有一件事:把本文里所有的占位符换成你的名字和域名,然后对 AI 说出第一句需求。
参考
- 番茄主理人,
《零成本搭建 Firefly(Astro)个人博客,AI 全自动部署教程》 —— 本文体例与流程的主要参考
CuteLeaf/Firefly —— Firefly 主题仓库
MmzMing/my-blog —— my-blog 模板仓库,灵感屋的底子
walinejs/waline 与
Waline 官方文档 —— 第九步独立评论后端的出处
Astro 官方文档 —— 两套模板共同的框架
Vercel 文档 —— 部署与自定义域名设置
enhanced-FaaS-in-China —— 第六步优选 IP 的出处,社区维护的 Vercel 优选域名
- Vercel 官方指南,
Accessing Vercel-hosted sites from mainland China —— 官方对国内访问的说明:自定义域名是第一步
- 二叉树树 AcoFork,
《现代!易上手!高效!且社区支持的超高校级的MarkDown编辑器!》 —— 第十二步 Obsidian 写博客的配置方法:仓库根目录、图片链接与粘贴改名插件



