2026 10 8

GitHub 与 Cloudflare Pages 部署

本项目的本地开发、部署配置和 Nuxt Studio 在线编辑设置。

项目位置

本地编辑

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 仓库或聊天记录。

Copyright © 2026