运维部署

怎么用网页后台写文章

不用碰服务器、不用装 Git:打开 /cms/、登录、写完点保存,一分钟内自动上线。

约 1 分钟 Hugo · 自动化 · 运维部署

这个站的内容放在一台 2 核 2G 的小机器上,写文章却不需要登录服务器:网页后台改的是 Git 仓库里的 Markdown,服务器每分钟拉一次、重新构建、原子替换,所以「保存」按钮其实就是「发布」按钮。

打开后台

地址是 https://linlinyichu.site/cms/,登录用的是自建 Gitea 的账号。点「使用 Gitea / Forgejo 登录」会弹出授权页,第一次会看到「授权 blog-cms 访问您的帐户」,同意后浏览器会记住登录状态,下次直接进。

后端仓库是 linlin/blog,站点代码和文章在同一个仓库里,历史随时可查、可回滚。

新建一篇笔记

左侧「技术笔记 → 新建」,编辑器里必填五项:

  1. 标题 —— 文章标题,同时用于列表页、搜索结果和浏览器标签。
  2. 链接短名 —— 决定 URL(/notes/<短名>/),只用英文、数字、连字符;留空会用标题生成。
  3. 发布日期 —— 点「现在」即可,格式必须是带秒的 YYYY-MM-DD HH:mm:ss,Hugo 才解析得了。
  4. 摘要 —— 一到两句,出现在列表页和搜索结果里。
  5. 分区 —— 嵌入式 / 边缘 AI / 智能家居 / 运维部署,四选一,决定列表页的小标题。
  6. 正文 —— 富文本编辑器,工具栏可以切 Markdown 源码。

「领域」「标签」「关键词」选填:标签会生成 /tags/<标签>/ 聚合页,关键词只进站内搜索索引。

填完点右上角「保存」,git 提交立刻产生(提交信息是「content: 更新 笔记「短名」」),最多一分钟后刷新线上页面就能看到。

传图片

正文里直接粘贴或拖拽图片,文件会进仓库的 assets/uploads/,插入的地址是 /uploads/xxx.png。构建时 Hugo 会把图片统一转成 WebP 并生成两档宽度(760 / 1520),带 loading="lazy";markdown 里给图片加 title 就会变成图注。

改错、删掉、回滚

  • 改错:重新打开条目改完保存,会生成「更新」提交,同样一分钟内生效。
  • 删除:编辑器右上角「⋮ → 删除」,确认后产生「删除」提交。
  • 回滚:任何一次提交都能在 Gitea(/git/)里回退;服务器还会在 /opt/backups/ 留最近 14 天的仓库 bundle、Gitea 数据和站点快照。

几个容易踩的点

  • 必填项没填:点保存没反应又没报错,是顶部的「有 N 个字段存在错误」提示被滚出了视口,检查分区和正文。
  • 草稿弹窗:同一篇反复编辑会留本地草稿,打开时问「是否恢复」,选「放弃」看线上真实内容。
  • 日期写成未来时间:Hugo 默认不构建未来日期的页面,文章会「提交成功但线上 404」,把日期改到当前时间之前即可。
  • 不要在 1Panel 面板里重新保存这个站点,会覆盖手改过的 nginx 配置。
← 上一篇
这个站点是怎么搭起来的

相关笔记