主要在折腾什么
除了把源码上传到仓库以及把博客部署在 CF Pages 上面这些简单的傻瓜式操作以外,很多人应该会认为搭建 Hugo 站点应该是占大头的,的确,这确实是最主要的工作,但是并不难,因为有很多现成的主题可以使用,美观,许多功能开箱即用,且有文档以及网上使用同主题的博客可供参考,比如你现在正在浏览的博客使用的是 Stack 主题,项目的文档在这里 Stack | Card-style Hugo theme designed for bloggers
回答“折腾什么”的问题,如果我仅仅是为了写怎么怎么修改配置然后 hugo serve 得到一个博客,那我着实没有必要写这篇文章,于是我们在标题中看到 Decap CMS,这便是这篇文章的主题
说实话,如果你看完这篇文章,你大概会觉得没有什么复杂的,但就在这看似简单的过程,我本人踩了很多坑,折腾了几个晚上,求助了d老师多次也没成功,最终还是靠自己啃文档解决了问题,然后才有了这篇文章
难在哪里
如标题所见,我将代码存放在 GitLab 上而不是 GitHub ,而网上的教程都是关于 GitHub 的,比如这一篇 https://www.ixam.net/zh-hans/blog/2025/08/blog-made-by-hugo-github-dcapcms-cloudflarepages/ 以及这一篇 https://sheng.page/posts/adding-decap-cms-to-hugo-on-cloudflare-pages/ ,所以我几乎是摸着石头过河
为什么选用 GitLab
最开始的原因很简单,被 GitHub 封号封怕了,在此之前我已经被封禁了两个账号,其中有一个甚至是刚注册还什么都没干就被封,你在b站上也能找到一些好端端的就被封禁的例子。其言“标记”,但是申诉需要非大陆手机号验证,所以就卡住了,我也有尝试过接码平台,但是发不出短信(反正我是这样),而且好像它还要求你在6个月内申诉,过时可能永远不会再给你解封,近乎无解
但是选用了 GitLab 之后有一个好处,就是,如果你看了上面两篇针对GitHub的文章就可以发现,GitHub Oauth 需要 server-side 交换 secret ,不可能在浏览器端完成,处理的方法是用 CF 的 Pages Functions ,而 GitLab 可以 client-side 验证,如此便不花费 Functions 额度(虽然原本花费的也微不足道就是了)
上手过程
使用 Hugo 建立站点
网上教程很多,此处不再赘述
安装 Decap CMS
创建 index.html
创建 static/admin/index.html
| |
创建 config.yml
创建 static/admin/config.yml
下面是本人自用的配置,更详细的配置项见官方文档:https://decapcms.org/docs/configure-decap-cms/
| |
提示
static目录包含在构建站点时将复制到public目录的文件,例如favicon.ico、robots.txt和用于验证站点拥有权的文件。
创建 GitLab OAuth 应用
登录 GitLab
进入 Settings → Applications(或直接访问 https://gitlab.com/-/profile/applications )
新建应用
- Name:Decap CMS
- 重要
取消勾选 Confidential
- Redirect URI:填入
https://你的博客地址/admin,比如https://blog.your-site.com/admin - Scopes:勾选 api
获得 app id
点击 Save application,记录下 Application ID
将记录下的 Application ID 填入 config.yml 中的 app_id: 后
部署到 CF Pages 上
构建设置
- 构建命令:
hugo --minify - 构建输出:
public - 环境变量:
HUGO_VERSION=0.163.3
点击 保存并部署,等待首次部署
成功后会分配一个 *.pages.dev URL
绑定独立域名
如果想要优选可以参考cm的博客:https://blog.cmliussss.com/p/BestWorkers/#%E4%B8%BA-Pages-%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8%E4%BC%98%E9%80%89%E5%9F%9F%E5%90%8D
进入 DecapCMS 管理界面
- 在浏览器打开
https://blog.your-site.com/admin - 点击 “Login with GitLab” 按钮,授权 GitLab OAuth
- 第一次会出现 GitLab 的“是否授权该应用?”提示,点击 Authorize
大功告成
一个带有 Decap CMS 的 Hugo 博客搭建完成,你可以使用 CMS 管理文章等内容

评论已禁用,直到您接受功能性 Cookie。