“定时扫描 → 数据自动提交 → 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;UTC7 23 * * *= 北京次日 07:07。
cron 时区换算速查
| 想要的北京时间 | cron(UTC) |
|---|---|
| 每天 06:30 | 30 22 * * * |
| 每天 07:07 | 7 23 * * * |
| 每周一 10:00 | 0 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