5 分钟搭起一个 Cloudflare 独立 CMS
前置
- Node.js ≥ 18
- 一个 Cloudflare 账号(D1 / R2 / KV 都在免费额度内)
- 本机可以运行
npx wrangler
1. 创建资源
cd worker
npx wrangler login
# 先看会创建什么(不产生任何资源)
node scripts/setup.mjs --dry-run
# 实际创建 D1 / KV / R2,并生成 wrangler.toml
node scripts/setup.mjs
脚本会在你的账号下创建三个资源,并把 ID 写进 wrangler.toml。已有资源的话,复制 wrangler.toml.example 手工填三个 ID 即可。
2. 部署
npm run deploy
这条命令会先扫描 static/wp-content/themes/ 生成内置风格索引,再执行 wrangler deploy。首次部署会要求你给 Worker 起一个名字、选一个 *.workers.dev 子域。
绑定自定义域名:Cloudflare Dashboard → Workers → 你的 Worker → Settings → Domains & Routes。
3. 初始化管理员
打开 https://<你的域名>/admin/。空库时会直接进入初始化向导,填:
- 站点名
- 站点 URL(例如
https://demo.example.com) - 管理员用户名与密码(至少 8 位)
提交后会创建第一个管理员并自动登录。
也可以用命令行:
curl -X POST https://<你的域名>/api/setup \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"至少8位","siteName":"我的站","siteUrl":"https://<你的域名>"}'
⚠️ /api/setup 只在没有任何用户时可用。部署完请尽快初始化,避免被陌生人抢先建号。
4. 发布第一篇文章
后台 → 文章 → 新建:
- 标题、slug(留空会按标题生成)
- 编辑器切到 Markdown,写正文
- 选分类(没有就先在分类页建一个)
- 状态选 发布
保存后 Worker 会立即渲染单页写入 R2,并清理列表缓存。访问 https://<你的域名>/<slug>/ 就能看到。
5. 换一个风格
后台 → 模板 → 风格应用,下拉里会列出内置风格(14 套左右)。选一个,点应用。
列表页立即生效;已经生成的单页不会自动变,需要到「批量任务 → 重建全部单页」跑一遍。
常见卡点
/admin/打不开:确认 Worker 路由和自定义域已生效;首次部署后边缘生效需要几十秒。- 登录后一直跳回登录页:检查浏览器是否禁用了第三方 Cookie / 本地存储;JWT 存在 localStorage。
- 文章 404:确认状态是
published,且 slug 没有和已有文章冲突。 - 样式没变:单页是快照,换风格后要重建;列表页有几十秒缓存。