TrendRadarDocs项目来自sansansansan 个人项目与软件主页sandev.cc
首页文档社区企业合作个人支持致谢
  • 开始使用
    • 选择部署方式
    • 无服务器:GitHub Actions
    • 服务器 / NAS:Docker
    • 本机试用:本地运行
    • 配置内容与推送
  • 数据源配置
    • 平台配置
    • 自建热点源(AI 部署)
    • RSS 订阅配置
  • 内容筛选
    • 关键词配置
    • AI 智能筛选
  • 推送通知
    • 推送渠道
    • 推送模式
    • 调度系统
  • AI 增强
    • AI 分析推送
    • AI 多语言翻译
    • MCP 对话分析
    • MCP 提问指南
  • 数据与运维
    • 存储配置
    • 配置编辑器
    • 发布网页报告
    • 系统架构
  • 其他
    • 常见问题
  1. 文档
  2. /
  3. 开始使用
  4. /
  5. 无服务器:GitHub Actions
部署方式选择部署方式收到首条推送后配置内容与推送
© TrendRadar·GPL-3.0 License·官网·GitHub·by sansan

GitHub Actions 部署

GitHub Actions 是 GitHub 提供的托管自动化服务。通过它,TrendRadar 可以在云端自动运行, 无需你自己的服务器。是否占用付费或套餐分钟数取决于仓库可见性与账号方案,本文会在创建仓库时说明取舍。
当前任务 · GitHub Actions
在自己的仓库中手动运行任务,并在已配置的渠道收到第一条推送。
更换部署方式
11 · 运行前配置至少一个推送渠道
22 · 完成标准日志没有错误,并在目标应用收到测试或首次推送
33 · 收到后配置内容与推送

获取项目代码

"Use this template" 与 "Fork" 的区别

GitHub 提供了两种复制他人项目的方式。对于 TrendRadar,你必须使用 "Use this template" 方式,不要使用 "Fork"。
对比项Use this templateFork
创建结果一个全新的、独立的仓库一个与原项目关联的副本
提交历史不保留(干净的开始)完整保留原项目历史
Actions 工作流默认启用默认禁用(安全限制)
适用场景自己使用,不需要向原项目贡献代码想给原项目提交改进(Pull Request)
推荐程度推荐不推荐(可能导致 Actions 不工作)
使用 Fork 可能导致工作流无法运行
Fork 项目的 GitHub Actions 默认被禁用,即使手动开启也可能出现权限问题(参考 Issue #606)。如果你已经 Fork 了项目并遇到问题,建议删除 Fork 的仓库,改用 Use this template 重新创建。
操作步骤:
1
打开 TrendRadar GitHub 仓库页面
2
点击绿色的 "Use this template" 按钮
3
选择 "Create a new repository"
4
填写你的仓库名称(可以自定义,例如 my-trendradar)
5
选择仓库可见性
Public 仓库使用标准 runner 不计费,但仓库内容公开;Private 可保护你的配置文件,但会使用账号套餐包含的 Actions 分钟数。Secrets 在两种仓库中都会加密保存。
6
点击 "Create repository" 完成创建

配置 Secrets(推送密钥)

GitHub Secrets 是 GitHub 提供的安全存储机制,用于保存不能公开的敏感信息(如 API 密钥、Webhook 地址等)。 TrendRadar 通过读取 Secrets 来确定把消息推送到哪里。

添加 Secret 的步骤

1
进入仓库设置
在你的仓库页面,点击顶部的 "Settings" 标签页
2
找到 Secrets 菜单
在左侧栏中,展开 "Secrets and variables",点击 "Actions"
3
添加新 Secret
点击 "New repository secret" 按钮
4
填写名称和值
在 "Name" 栏填入 Secret 名称(必须与下表完全一致),在 "Secret" 栏填入对应的值
5
保存
点击 "Add secret" 按钮保存
关于 Secrets 的重要说明
  • 一个 Name 对应一个 Secret:每个密钥需要单独添加。 例如 Telegram 需要添加两个 Secret(TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID), 你需要点击两次 "New repository secret",分别添加
  • 保存后看不到值:Secret 保存后,GitHub 会隐藏它的内容, 你只能看到名称和最后更新时间。这是正常的安全行为,不是出了问题
  • 名称必须精确匹配:Secret 的名称必须和下表中列出的 完全一致(包括大小写和下划线)。 不要自己发明名称,否则程序无法读取
  • 可以配置多个渠道:你可以同时配置多个推送渠道, 程序运行时会向所有已配置的渠道发送消息
  • 修改已有 Secret:点击 Secret 旁边的 "Update" 按钮, 输入新的值并保存即可
全部推送渠道 Secret 一览
推送渠道Secret Name获取方式
推送渠道
Secret Name
获取方式
企业微信WEWORK_WEBHOOK_URL群设置 > 群机器人 > 添加机器人 > 复制 Webhook 地址
飞书FEISHU_WEBHOOK_URL群设置 > 群机器人 > 添加自定义机器人 > 复制 Webhook 地址
钉钉DINGTALK_WEBHOOK_URL群设置 > 智能群助手 > 添加自定义机器人 > 复制 Webhook 地址
TelegramTELEGRAM_BOT_TOKEN与 @BotFather 对话创建机器人,获取 Token
TelegramTELEGRAM_CHAT_ID将机器人拉入群组后,通过 API 获取群组 Chat ID
邮件EMAIL_FROM发件人邮箱地址
邮件EMAIL_PASSWORD邮箱的授权码(不是登录密码,需要在邮箱设置中生成)
邮件EMAIL_TO收件人邮箱地址
NtfyNTFY_TOPIC你自定义的 ntfy 主题名称
BarkBARK_URLBark App 中显示的推送地址(含 key)
SlackSLACK_WEBHOOK_URLSlack App > Incoming Webhooks > 复制 Webhook URL
自定义 WebhookGENERIC_WEBHOOK_URL任意接受 POST 请求的 Webhook 地址
不知道如何获取 Webhook、Token 或 Chat ID?先打开 推送渠道配置, 获取凭据后再回到本页添加对应 Secret。
可选 Secrets(AI 扩展、通知扩展、存储扩展)
GitHub Actions 的临时磁盘会在运行结束后销毁。基础推送可以不配远程存储;如需历史记录、增量检测等完整体验, 请按 存储配置 添加 4 个必需的 S3 凭据,不能只设置上表中的可选 S3_REGION。

手动运行工作流

配置好 Secrets 后,你可以手动触发工作流来验证配置是否正确。
1
进入 Actions 页面
在你自己的仓库页面,点击顶部的 "Actions" 标签页。 请务必确认你在自己的仓库中,而不是在原始项目 (sansan0/TrendRadar) 中。
2
选择工作流
在左侧的工作流列表中,找到并点击 "Get Hot News"
3
触发运行
点击页面右侧的 "Run workflow" 按钮,在弹出的下拉框中再次点击绿色的 "Run workflow" 确认
4
等待结果
工作流通常需要 2-3 分钟完成。页面不会自动刷新,你可以手动刷新页面查看运行状态

查看运行日志

如果工作流运行失败或你想查看详细过程,可以通过以下方式查看日志:
1
点击运行记录
在 Actions 页面,点击你想查看的那次运行记录(显示了运行时间和状态)
2
查看 Job 列表
进入后你会看到一个或多个 Job(任务),点击你要查看的 Job
3
展开步骤
每个 Job 包含多个步骤,点击任一步骤可以展开查看该步骤的详细日志输出
用日志和实际消息共同验证
绿色对勾只表示工作流进程完成,不一定代表通知已经送达。请展开 Run crawler,确认抓取、存储与通知日志没有错误,并实际检查目标渠道是否收到消息。

项目的 7 天签到机制

这是使用 GitHub Actions 部署方式必须了解的机制。 如果不了解这一点,你的自动推送可能会在某天突然停止。
为什么项目坚持设置 7 天签到?
TrendRadar 的原则是:可以合理使用 GitHub Actions,但不能让已经无人使用的定时任务持续空转, 给 GitHub 服务器增加无谓负担。
GitHub Actions 提供的公共计算资源有限且宝贵。7 天签到不是 GitHub 的强制限制,也不是为了增加使用门槛, 而是一次轻量的「我仍在使用」确认:仍需服务的用户定期续期,不再需要的任务自动停下, 让资源留给真正活跃且需要的人。
如果 7 天都忘了签到,或许这些资讯暂时并非刚需;适时暂停,也能帮你从信息流中抽离,给大脑留出喘息空间。
如果你不想手动签到,可以改用 Docker;本地运行也不受该 7 天机制限制,但需要自行配置操作系统定时任务。

它与 GitHub 的平台规则有什么区别?

7 天是 TrendRadar 项目自己的规则:Get Hot News 会检查自身最早的可见运行记录; 超过 7 天后,它会禁用 crawler.yml。这不是 GitHub 的 7 天限制。
GitHub 另有平台规则:公共仓库如果连续 60 天没有仓库活动,定时工作流可能被自动禁用, 高负载时定时任务也可能延迟或被丢弃。详见 GitHub 官方 schedule 说明。

到期后会发生什么?

如果项目的 7 天周期已经过期:
  • 自动推送会停止,你不会再收到任何消息
  • Get Hot News 会被禁用,自动推送停止
  • 运行 Check In 只会重置计时,不会自动重新启用爬虫
  • 签到后还需要打开 Get Hot News,点击 Enable workflow

如何签到

1
进入你的仓库的 Actions 页面
2
在左侧工作流列表中,找到 "Check In"
3
点击 "Run workflow" 按钮
4
在弹出的下拉框中点击绿色的 "Run workflow" 确认
5
如果 Get Hot News 已被禁用,回到该工作流并点击 "Enable workflow"
签到会清理 Actions 运行历史
Check In 会删除当前签到记录之外的仓库 Actions 运行历史,以此让下一次 Get Hot News 重新开始 7 天计时。需要保留排错日志时,请在签到前先查看或保存。建议在周期到期前每周签到一次。

修改运行频率(Cron 定时)

什么是 Cron?

Cron 是一种用于设定「定时任务」的表达式。你可以把它理解为一个闹钟设置: 告诉系统「在什么时间自动执行任务」。在 TrendRadar 中,Cron 决定了多久自动抓取一次新闻。
Cron 表达式由 5 个数字/符号组成,用空格分隔,分别代表:
分钟  小时  日期  月份  星期
 *     *     *     *     *
 |     |     |     |     |
 |     |     |     |     +-- 星期几 (0-6, 0=周日)
 |     |     |     +-------- 月份 (1-12)
 |     |     +-------------- 日期 (1-31)
 |     +-------------------- 小时 (0-23)
 +-------------------------- 分钟 (0-59)

* 表示"每个"   */N 表示"每隔 N"   N 表示"第 N"

常用时间预设

时区注意
GitHub Actions 使用 UTC 时区(协调世界时),比北京时间(UTC+8)晚 8 小时。换算方法:北京时间 - 8 = UTC 时间。 例如:你想在北京时间 8:00 运行,需要设置为 UTC 0:00。下表已标注换算结果。
运行频率Cron 表达式说明
运行频率
Cron 表达式
说明
每小时运行一次0 * * * *每小时的第 0 分钟运行
每 30 分钟运行一次*/30 * * * *每小时的第 0 和第 30 分钟运行
每天北京时间 8:000 0 * * *UTC 0:00 = 北京时间 8:00
工作时段每 30 分钟*/30 0-14 * * *UTC 0:00-14:00 = 北京时间 8:00-22:00
三餐时间推送0 0,4,12 * * *UTC 0:00/4:00/12:00 = 北京时间 8:00/12:00/20:00
工作日每 2 小时0 0-14/2 * * 1-5周一到周五,北京时间 8:00-22:00,每 2 小时

修改步骤

1
找到工作流文件
在你的仓库中,导航到文件 .github/workflows/crawler.yml
2
进入编辑模式
点击文件内容右上角的铅笔图标(编辑按钮),或者点击 "Edit this file"
3
找到 cron 配置行
在文件中找到类似这样的内容:
on:
  schedule:
    - cron: '0 */2 * * *'  # 找到这一行
1
修改 cron 表达式
将引号内的表达式替换为你需要的时间设置(参考上面的预设表)
2
提交修改
滚动到页面底部,在 "Commit changes" 区域填写修改说明,然后点击 "Commit changes" 按钮
修改注意事项
  • 不要修改 cron 行以外的内容,错误的修改可能导致整个工作流无法运行
  • cron 表达式两侧的引号不要删除
  • 设置过于频繁(例如每分钟一次)会快速消耗你的 GitHub Actions 免费额度
  • GitHub Actions 的 cron 触发不是精确到秒的,实际运行时间可能有几分钟的延迟
示例:改为每天北京时间 8:00 和 20:00 各推送一次
示例:仅工作日推送,周末不推送

启用 AI 分析(可选)

如果你希望每次推送的新闻附带 AI 生成的分析总结,只需额外添加两个 Secrets:
Secret Name说明
AI_API_KEY你的 AI 服务 API 密钥(如 OpenAI、DeepSeek 等)
AI_MODELAI 模型标识(格式:提供商/模型名称,如 deepseek/deepseek-v4-flash)
添加方式与推送渠道 Secrets 完全相同。AI 功能是可选的,不影响基础的新闻推送。

GitHub Actions 常见问题

Actions 页面看不到工作流怎么办?
工作流运行失败,提示 Secret 未找到?
运行成功了但没收到推送消息?
Actions 运行额度够用吗?
自动运行的时间不太准?