无需Netlify,如何在GitHub Pages的Jekyll站点使用Decap CMS?
适配GitHub Pages的Decap CMS OAuth配置方案
方案一:用官方公共OAuth代理(快速上手)
创建GitHub OAuth App
- 进入GitHub的「Settings > Developer settings > OAuth Apps > New OAuth App」
- 填写信息:
- Application name:自定义(比如站点名+CMS)
- Homepage URL:你的GitHub Pages完整地址
- Authorization callback URL:填
https://decap-cms-oauth.netlify.app/callback
- 创建后保存生成的Client ID和Client Secret
修改Decap CMS配置
在站点的admin/config.yml中更新后端配置:backend: name: github repo: 你的GitHub仓库路径(格式:用户名/仓库名) branch: 你的默认分支(比如main) base_url: https://decap-cms-oauth.netlify.app auth_endpoint: /auth identity: client_id: 刚才生成的GitHub OAuth App Client ID验证功能
提交配置到GitHub Pages,访问站点的/admin路径,点击登录后按提示完成GitHub授权,即可进入CMS管理内容。
方案二:自建OAuth代理(更安全)
如果不想依赖公共代理,可自行部署Node.js代理服务:
- 克隆Decap官方代理仓库:
git clone https://github.com/decaporg/decap-cms-oauth-server.git - 安装依赖:
npm install - 创建
.env文件并填入:GITHUB_CLIENT_ID=你的OAuth App Client ID GITHUB_CLIENT_SECRET=你的OAuth App Client Secret NODE_ENV=production - 将代理部署到Vercel、Render等Node.js平台,获取部署后的地址
- 修改
admin/config.yml中的base_url为你的代理地址即可
关键注意事项
- 确保GitHub OAuth App的回调地址与代理的回调路径一致(默认是
/callback) - 授权时要确认GitHub账号对目标仓库拥有读写权限
- 敏感项目优先选择自建代理,避免授权流程经过第三方服务
内容的提问来源于stack exchange,提问作者Richard Djarbeng
相关产品推荐
相关产品推荐

