GitHub 与 Cloudflare Pages 部署
项目位置
- 本地目录:
/Users/xiaoxin/docus-docs - 私有仓库:https://github.com/Soliyakeitong/docus-docs
- 生产分支:
main
本地编辑
cd ~/docus-docs
npm ci
npm run dev
打开开发服务器,点击左下角「编辑此页面」进入中文 Nuxt Studio。
本地编辑会直接写入 content/。未分类文章默认放在
content/Temp/YYYY-M-D/,日期按上海时区且不补零。
Cloudflare Pages
本项目使用 Pages Functions 提供服务端接口,并通过 D1 保存 Nuxt Content 的内容索引。 Markdown 原文保存在 GitHub 仓库中。
- 构建命令:
npm run build - 输出目录:
dist - Node.js 版本:
24.13.0 - D1 绑定名称:
DB - D1 数据库名称:
docus-docs-content - 兼容性标志:
nodejs_compat
数据库绑定和 Pages 配置见项目根目录 wrangler.jsonc。
构建后可在本地模拟 Cloudflare 环境:
npm run build
npm run preview
首次部署通过 Wrangler Direct Upload 完成。在已登录 Cloudflare 的本机重新部署:
npm run deploy
项目包含 .github/workflows/deploy-pages.yml,用于 GitHub Actions 自动部署。
在仓库 Settings → Secrets and variables → Actions 中添加:
- Secret
CLOUDFLARE_PAGE_EDIT_API_TOKEN:具有本账号 Cloudflare Pages 编辑权限的 API Token,工作流将其传入 Wrangler 的CLOUDFLARE_API_TOKEN环境变量。 - Variable
CLOUDFLARE_PAGES_AUTO_DEPLOY:设为true启用推送main后自动部署。 - Variable
NUXT_PUBLIC_SITE_URL:实际的生产站点地址。
未配置 API Token 时,自动部署默认关闭;可继续使用本机部署命令。 Direct Upload 项目使用 GitHub Actions 接入自动部署;Cloudflare 原生 Git 集成需要另建项目。
Nuxt Studio 在线编辑
在线编辑需要单独创建 GitHub OAuth App;Cloudflare 的 GitHub 应用授权用于构建部署, Studio OAuth 用于编辑器登录。
在 GitHub Developer Settings 中创建 OAuth App,将 Homepage URL 设置为实际的站点地址, Authorization callback URL 设置为:
https://你的站点域名/__nuxt_studio/auth/github
在 Cloudflare Pages 的生产环境中添加以下变量,并重新部署:
STUDIO_GITHUB_CLIENT_ID:OAuth App 的 Client ID。STUDIO_GITHUB_CLIENT_SECRET:以 Secret 类型保存 Client Secret。STUDIO_GITHUB_MODERATORS:允许登录的 GitHub 账号邮箱,用逗号分隔。NUXT_STUDIO_AUTH_SESSION_SECRET:以 Secret 类型保存随机会话密钥,至少 32 个字符。
以上 GitHub 变量名对应本项目安装的 Nuxt Studio 1.7.0 的实际服务端实现。
配置完成后,访问站点的 /_studio 登录、编辑并提交内容。
启用 GitHub Actions 自动部署后,提交会触发 Pages 重新部署;否则使用本机部署命令更新站点。
不要将真实凭据写入 Markdown、Git 仓库或聊天记录。