“定时扫描 → 数据自动提交 → Pages 部署”是零数据库、零服务器、零费用的无人值守站标准架构。工作区内 5 个项目(github-showcase、szwnba 主页、cyber-morning 晨报、idea-radar 灵感雷达、AI 博客日报)都收敛到这套模式。

模式骨架

GitHub Actions cron ──► 脚本采集/生成数据 ──► commit 推回仓库 ──► Pages 自动部署
        │                                                      │
        └── 数据存 git 仓库本身("git 即数据库",滚动保留 N 条)◄──┘

必备用语(idioms)

  • 防 Actions 死循环:机器人提交信息带 [skip ci],打断”提交→再触发 Actions”。
  • 判空跳过提交:git diff --cached --quiet 无变化则不 commit,保持提交历史干净。
  • 零 token 配置:公开数据扫描用 Actions 自带 GITHUB_TOKEN 即可,配 permissions: contents: write 最小授权,不需要私人 PAT。
  • bot 身份提交:git config user.name/email 设为机器人身份,与人写提交区分。
  • concurrency 防重入:同一工作流并发组,上一轮没跑完就取消/排队新一轮。
  • cron 是 UTC:北京时间 = UTC+8。例:UTC 30 22 * * * = 北京 06:30;UTC 7 23 * * * = 北京次日 07:07。

cron 时区换算速查

想要的北京时间cron(UTC)
每天 06:3030 22 * * *
每天 07:077 23 * * *
每周一 10:000 2 * * 1

README 局部自动生成(标记对模式)

文档里只让脚本维护一块区域:用 <!-- projects:start --> / <!-- projects:end --> 标记对圈住自动区,脚本正则只替换标记区内容、不动 README 其余部分。可移植到任何”文档中一块自动维护区域”的场景(如个人主页项目表、清单页数据区)。

平台取舍实录

  • Vercel Hobby 的 cron 限每日 1 次 → 高频采集(如每 2 小时)放 GitHub Actions,Vercel 只做静态托管。免费额度决定架构分工。
  • 无人值守站要定期检查 Actions 是否还活着(idea-radar 曾停摆近一个月无人发现,回用前先看 lastSync)。

实例索引

项目频率做什么
cyber-morning每日 06:30抓 5 个免费 API 生成晨报页
github-showcase每日 08:00扫描公开仓库刷新作品集数据
szwnba 主页每周一 02:00 UTC刷新 README 项目表(标记对模式)
idea-radar每 2 小时11 频道灵感信号采集打分
AI 博客每日 07:07热点→LLM 写稿→封面→发布(见 [[content/公众号自动化内容流水线

定时爬虫 workflow 模板(#651 增补)

PAT(classic,勾 repo/workflow/user;测试命令 git push https://x-access-token:<TOKEN>@github.com/<user>/<repo>.git HEAD)→ workflow 结构:on: schedule: cron(UTC)→ checkout 带token → 跑脚本 → git add . && git commit || echo "No changes" && git push。建站类零成本方案汇总见 零成本建站与部署实战。

原始素材

  • #651 零成本 API 服务搭建,用 GitHub Ac
  • README

相关页面