Vercel Cloudflare 迁移 + 管理仪表板 + AI 新闻自动化

发布: (2026年3月14日 GMT+8 05:27)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Vercel → Cloudflare 迁移

Vercel 的 cron 需要 Pro 计划。需要每天两次生成 AI 新闻,但免费套餐无法使用 cron,于是将站点迁移到 Cloudflare Pages,并把 cron 任务拆分为 GitHub Actions

迁移检查清单

  • 将适配器改为 @astrojs/cloudflare,在 astro.config.mjs 中配置
  • 添加 wrangler.toml
  • 在 Cloudflare 仪表盘中注册环境变量
  • 禁用预览构建(仅部署 main 分支)
  • 设置三个 GitHub Actions cron 任务
# .github/workflows/cron-ai-news.yml
on:
  schedule:
    - cron: '0 0,12 * * *'  # UTC 0,12 = KST 9 AM, 9 PM

Cloudflare Pages 提供快速构建和慷慨的免费层,但依赖 Node.js 内置模块(例如 node:)的 SDK 将无法运行。

AI 新闻自动生成

每天两次(KST 9 AM、9 PM)自动生成 AI 新闻。

来源收集

爬取五个与 AI 相关的来源:

  • Google Custom Search – “AI” 关键词搜索
  • Hacker News/topstories API
  • Reddit/r/artificial/r/MachineLearning 的热门帖子
  • X(Twitter) – AI 热门话题
  • GitHub Trending – 当日热门仓库

使用 Claude 生成帖子

收集到的新闻会发送给 Claude Haiku,由其为每个主题生成单独的深度文章。最初的工作流是按模型(Claude、GPT、Gemini)分组帖子,后改为 按主题的单独帖子

模型从 Sonnet 4 更换为 Haiku 4.5;每日生成 20+ 篇帖子导致成本担忧,尽管质量差异几乎可以忽略。

管理仪表盘

构建了一个 /admin 页面,用于一目了然地监控站点运营。

标签页

  • 概览:访客热力图、统计卡片、项目构建日志、最高互动内容
  • 快捷操作:AI 新闻生成、站点重建、Dev.to 同步
  • 内容:完整内容列表并可按类型过滤
  • 评论:评论管理及删除功能

访客热力图

类似 GitHub 贡献日历的热力图,从 Upstash Redis 获取最近 90 天的数据。包括月份标签、日期标签和悬停提示。

Dev.to 跨站发布

一个 GitHub Actions 工作流会自动把新内容发布到 Dev.to。

工作原理

  1. 检测 src/content/ 子目录的变更。
  2. 调用 Dev.to API 查询已有文章(通过 canonical_url 去重)。
  3. 仅通过 POST /api/articles 发布新帖子。
  4. 带有 devto-migration 标签的帖子会被排除(它们来源于 Dev.to)。
  5. 通过 3 秒间隔实现限流。

注意事项:Cloudflare Workers 上的 SDK

在 Cloudflare Workers 中导入 @anthropic-ai/sdk 会触发 node:events 模块错误,因为 Workers 运行在 V8 isolate 上,而非 Node.js 环境。

解决方案: 直接使用 fetch,而不是 SDK。

总结

  • Cloudflare Pages + GitHub Actions cron 实现了无需 Vercel Pro 计划的调度。
  • AI 新闻自动化:5 源爬取 → Claude Haiku 生成帖子 → 每天两次发布。
  • 管理仪表盘:SSR API + 客户端渲染,快速搭建。
  • 在 Cloudflare Workers 上使用 fetch 替代 SDK;带有 Node.js 依赖的库无法工作。

📌 最初发布于 Jidong Lab

更多 AI 新闻和开发日志 → jidonglab.com

0 浏览
Back to Blog

相关文章

阅读更多 »