概述
安装
工具列表
内容详情
替代品
什么是 TrendRadar MCP 服务器?
TrendRadar MCP 服务器是 TrendRadar 热点追踪项目的 AI 增强模块。它基于 MCP(Model Context Protocol)协议,将你本地积累的新闻数据(存储在 `output` 文件夹中)转化为一个智能对话接口。你可以通过支持 MCP 的 AI 客户端(如 Claude Desktop、Cursor、Cherry Studio 等),用自然语言提问,让 AI 帮你分析新闻趋势、查找特定信息、生成摘要报告等。如何使用 TrendRadar MCP 服务器?
使用 MCP 服务器需要两个前提:1. 本地有 TrendRadar 项目运行产生的新闻数据(`output` 目录)。2. 安装并配置一个支持 MCP 的 AI 客户端。配置完成后,你就可以在 AI 聊天界面中,像与人对话一样查询和分析新闻,例如:“查询昨天知乎的热点”、“分析最近一周‘AI’话题的趋势”。适用场景
TrendRadar MCP 服务器非常适合需要深度挖掘新闻数据的用户,例如: - **内容创作者**:快速查找特定主题的新闻素材,分析话题热度。 - **投资者/分析师**:追踪特定公司或行业的舆情变化,进行趋势分析。 - **研究人员**:进行跨平台数据对比、情感分析或历史关联检索。 - **普通用户**:用最自然的方式(对话)来了解自己关心的新闻,无需学习复杂的查询语法。主要功能
如何使用
使用案例
常见问题
相关资源
安装
{
"mcpServers": {
"trendradar": {
"url": "http://127.0.0.1:3333/mcp",
"type": "streamableHttp"
}
}
}
{
"mcpServers": {
"trendradar": {
"command": "uv",
"args": [
"--directory",
"/path/to/TrendRadar",
"run",
"python",
"-m",
"mcp_server.server"
],
"env": {},
"disabled": false,
"alwaysAllow": []
}
}
}
{
"mcpServers": {
"trendradar": {
"url": "http://localhost:3333/mcp",
"description": "TrendRadar 新闻热点聚合分析"
}
}
}
{
"mcpServers": {
"trendradar": {
"command": "uv",
"args": [
"--directory",
"/path/to/TrendRadar",
"run",
"python",
"-m",
"mcp_server.server"
]
}
}
}🚀 TrendRadar - 热点助手
TrendRadar 是一款轻量且易部署的热点助手,最快 30 秒即可完成部署。它能聚合全网热点,通过智能推送策略和精准内容筛选,为你推送真正关心的新闻资讯,助你告别无效刷屏。
🚀 快速开始
1. 获取项目代码
点击本仓库页面右上角的绿色 [Use this template] 按钮,选择 "Create a new repository"。
⚠️ 重要提示
后续文档中提到的 "Fork" 均可理解为 "Use this template";使用 Fork 可能导致运行异常,详见 Issue #606。
2. 设置 GitHub Secrets(必需 + 可选平台)
在你 Fork 后的仓库中,进入 Settings > Secrets and variables > Actions > New repository secret。
⚠️ GitHub Actions 使用说明 v4.0.0 重要变更:引入「活跃度检测」机制,GitHub Actions 需定期签到以维持运行。
🔄 签到续期机制:
- 运行周期:有效期为 7 天,倒计时结束后服务将自动挂起。
- 续期方式:在 Actions 页面手动触发 "Check In" workflow,即可重置 7 天有效期。
- 操作路径:
Actions→Check In→Run workflow - 设计理念:
- 如果 7 天都忘了签到,或许这些资讯对你来说并非刚需。适时的暂停,能帮你从信息流中抽离,给大脑留出喘息的空间。
- GitHub Actions 是宝贵的公共计算资源。引入签到机制旨在避免算力的无效空转,确保资源能分配给真正活跃且需要的用户。感谢你的理解与支持。
📌 重要说明(请务必仔细阅读):
- 一个 Name 对应一个 Secret:每添加一个配置项,点击一次"New repository secret"按钮,填写一对"Name"和"Secret"。
- 保存后看不到值是正常的:出于安全考虑,保存后重新编辑时,只能看到 Name(名称),看不到 Secret(值)的内容。
- 严禁自创名称:Secret 的 Name(名称)必须严格使用下方列出的名称(如
WEWORK_WEBHOOK_URL、FEISHU_WEBHOOK_URL等),不能自己随意修改或创造新名称,否则系统无法识别。 - 可以同时配置多个平台:系统会向所有配置的平台发送通知。
👉 点击展开:轻量模式 vs 完整模式 + AI分析
两种部署模式:
| 模式 | 配置要求 | 功能范围 |
|---|---|---|
| 轻量模式 | 无需配置存储 | 实时抓取 + 关键词筛选 + 多渠道推送 |
| 完整模式 | 配置远程云存储 | 轻量模式 + 新增检测 + 趋势追踪 + 增量推送 + AI分析 |
轻量模式说明:
- ✅ 可用:实时新闻抓取、关键词筛选、热点权重排序、当前榜单推送。
- ❌ 不可用:新增新闻检测(🆕)、热度趋势追踪、增量模式、每日汇总累积、MCP AI分析。
完整模式说明: 配置远程云存储后解锁全部功能(见下方 推荐配置:远程云存储)。
🚀 推荐:Docker 部署 如需长期稳定运行,建议使用 Docker 部署,数据存储在本地,无需签到,不过需要额外付费购买云服务器。
👉 点击展开:多账号推送说明(v3.5.0 新增)
- 支持多账号配置:所有推送渠道(飞书、钉钉、企业微信、Telegram、ntfy、Bark、Slack)均支持配置多个账号。
- 配置方式:使用英文分号
;分隔多个账号值。 - 示例:
FEISHU_WEBHOOK_URL的 Secret 值填写https://webhook1;https://webhook2。 - 配对配置:Telegram 和 ntfy 需要保证配对参数数量一致(如 token 和 chat_id 都是 2 个)。
- 数量限制:默认每个渠道最多 3 个账号,超出部分被截断。
多账号配置示例:
| Name(名称) | Secret(值)示例 |
|---|---|
FEISHU_WEBHOOK_URL |
https://webhook1;https://webhook2;https://webhook3 |
TELEGRAM_BOT_TOKEN |
token1;token2 |
TELEGRAM_CHAT_ID |
chatid1;chatid2 |
NTFY_TOPIC |
topic1;topic2 |
NTFY_TOKEN |
;token2(第一个无 token 时留空占位) |
3. 手动测试新闻推送
⚠️ 重要提示
完成第 1 - 2 步后,请立即测试!测试成功后再根据需要调整配置(第 4 步);请进入你自己的项目,不是本项目!
如何找到你的 Actions 页面:
- 方法一:打开你 fork 的项目主页,点击顶部的 Actions 标签。
- 方法二:直接访问
https://github.com/你的用户名/TrendRadar/actions。
测试步骤:
- 进入你项目的 Actions 页面。
- 找到 "Get Hot News"(必须得是这个字)点进去,点击右侧的 "Run workflow" 按钮运行。如果看不到该字样,参照 #109 解决。
- 3 分钟左右,消息会推送到你配置的平台。
⚠️ 重要提示
手动测试不要太频繁,避免触发 GitHub Actions 限制;点击 Run workflow 后需要刷新浏览器页面才能看到新的运行记录。
4. 配置说明(可选)
默认配置已可正常使用,如需个性化调整,了解以下三个文件即可:
| 文件 | 作用 |
|---|---|
config/config.yaml |
主配置文件:推送模式、时间窗口、平台列表、热点权重等 |
config/frequency_words.txt |
关键词文件:设置你关心的词汇,筛选推送内容 |
.github/workflows/crawler.yml |
执行频率:控制多久运行一次(⚠️ 谨慎修改) |
👉 详细配置教程:配置详解
5. 🎉 部署成功!分享你的使用体验
恭喜你完成了 TrendRadar 的配置!现在你可以开始追踪热点资讯了。
💬 有更多小伙伴在公众号交流使用心得,期待你的分享~
- 想了解更多玩法和高级技巧?
- 遇到问题需要快速解答?
- 有好的想法想要交流?
👉 欢迎关注公众号「硅基茶水间」,你的点赞和留言都是项目持续更新的动力。
6. 想要更智能的分析?试试 AI 增强功能(可选)
基础配置已经能满足日常使用,但如果你想要:
- 让 AI 自动分析热点趋势和数据洞察。
- 通过自然语言搜索和查询新闻。
- 获得情感分析、话题预测等深度分析。
- 在 Claude、Cursor 等 AI 工具中直接调用数据。
👉 了解更多:AI 智能分析 — 解锁项目的隐藏能力,让热点追踪更高效!
✨ 主要特性
全网热点聚合
默认监控 11 个主流平台,包括知乎、抖音、bilibili 热搜、华尔街见闻、贴吧、百度热搜、财联社热门、澎湃新闻、凤凰网、今日头条、微博,也可自行增加额外的平台。
💡 使用建议
详细配置教程见 配置详解 - 平台配置。
智能推送策略
三种推送模式:
| 模式 | 适用场景 | 推送特点 |
|---|---|---|
| 当日汇总 (daily) | 企业管理者/普通用户 | 按时推送当日所有匹配新闻(会包含之前推送过的) |
| 当前榜单 (current) | 自媒体人/内容创作者 | 按时推送当前榜单匹配新闻(持续在榜的每次都出现) |
| 增量监控 (incremental) | 投资者/交易员 | 仅推送新增内容,零重复 |
💡 使用建议
- 🔄 不想看到重复新闻 → 用
incremental(增量监控)。- 📊 想看完整榜单趋势 → 用
current(当前榜单)。- 📝 需要每日汇总报告 → 用
daily(当日汇总)。详细对比和配置教程见 配置详解 - 推送模式详解。
附加功能(可选):
| 功能 | 说明 | 默认 |
|---|---|---|
| 推送时间窗口控制 | 设定推送时间范围(如 09:00 - 18:00),避免非工作时间打扰 | 关闭 |
| 内容顺序配置 | 调整"热点词汇统计"和"新增热点新闻"的显示顺序(v3.5.0 新增) | 统计在前 |
💡 使用建议
详细配置教程见 配置详解 - 报告配置 和 配置详解 - 推送时间窗口。
精准内容筛选
设置个人关键词(如:AI、比亚迪、教育政策),只推送相关热点,过滤无关信息。
基础语法(5种):
- 普通词:基础匹配。
- 必须词
+:限定范围。 - 过滤词
!:排除干扰。 - 数量限制
@:控制显示数量(v3.2.0 新增)。 - 全局过滤
[GLOBAL_FILTER]:全局排除指定内容(v3.5.0 新增)。
高级功能(v3.2.0 新增):
- 🔢 关键词排序控制:按热度优先 or 配置顺序优先。
- 📊 显示数量精准限制:全局配置 + 单独配置,灵活控制推送长度。
词组化管理: 空行分隔,独立统计不同主题热点。
💡 使用建议
- 基础配置教程:关键词配置 - 基础语法。
- 高级配置教程:关键词配置 - 高级配置。
- 也可以不做筛选,完整推送所有热点(将 frequency_words.txt 留空)。
热点趋势分析
实时追踪新闻热度变化,让你不仅知道"什么在热搜",更了解"热点如何演变"。
- 时间轴追踪:记录每条新闻从首次出现到最后出现的完整时间跨度。
- 热度变化:统计新闻在不同时间段的排名变化和出现频次。
- 新增检测:实时识别新出现的热点话题,用🆕标记第一时间提醒。
- 持续性分析:区分一次性热点话题和持续发酵的深度新闻。
- 跨平台对比:同一新闻在不同平台的排名表现,看出媒体关注度差异。
💡 使用建议
推送格式说明见 配置详解 - 推送格式参考。
个性化热点算法
不再被各个平台的算法牵着走,TrendRadar 会重新整理全网热搜:
- 看重排名高的新闻(占60%):各平台前几名的新闻优先显示。
- 关注持续出现的话题(占30%):反复出现的新闻更重要。
- 考虑排名质量(占10%):不仅多次出现,还经常排在前列。
💡 使用建议
这三个比例可以调整,详见 配置详解 - 热点权重调整。
多渠道实时推送
支持企业微信(+ 微信推送方案)、飞书、钉钉、Telegram、邮件、ntfy、Bark、Slack,消息直达手机和邮箱。
📌 多账号推送说明(v3.5.0 新增):
- ✅ 支持多账号配置:所有推送渠道(飞书、钉钉、企业微信、Telegram、ntfy、Bark、Slack)均支持配置多个账号。
- ✅ 配置方式:使用英文分号
;分隔多个账号值。 - ✅ 示例:
FEISHU_WEBHOOK_URL的 Secret 值填写https://webhook1;https://webhook2。 - ⚠️ 配对配置:Telegram 和 ntfy 需要保证配对参数数量一致(如 token 和 chat_id 都是 2 个)。
- ⚠️ 数量限制:默认每个渠道最多 3 个账号,超出会被截断。
灵活存储架构(v4.0.0 重大更新)
多存储后端支持:
- ☁️ 远程云存储:GitHub Actions 环境默认,支持 S3 兼容协议(R2/OSS/COS 等),数据存储在云端,不污染仓库。
- 💾 本地 SQLite 数据库:Docker/本地环境默认,数据完全可控。
- 🔄 自动后端选择:根据运行环境智能切换存储方式。
数据格式:
| 格式 | 用途 | 说明 |
|---|---|---|
| SQLite | 主存储 | 单文件数据库,查询快速,支持 MCP AI 分析 |
| TXT | 可选快照 | 可读文本格式,方便直接查看 |
| HTML | 报告展示 | 精美可视化页面,PC/移动端适配 |
数据管理:
- ✅ 自动清理过期数据(可配置保留天数)。
- ✅ 时区配置支持(全球时区)。
💡 使用建议
详细说明见 配置详解 - 存储配置。
多端部署
- GitHub Actions:定时自动爬取 + 远程云存储(需签到续期)。
- Docker 部署:支持多架构容器化运行,数据本地存储。
- 本地运行:Windows/Mac/Linux 直接运行。
AI 智能分析(v3.0.0 新增)
基于 MCP (Model Context Protocol) 协议的 AI 对话分析系统,让你用自然语言深度挖掘新闻数据。
- 对话式查询:用自然语言提问,如"查询昨天知乎的热点"、"分析比特币最近的热度趋势"。
- 13 种分析工具:涵盖基础查询、智能检索、趋势分析、数据洞察、情感分析等。
- 多客户端支持:Cherry Studio(GUI 配置)、Claude Desktop、Cursor、Cline 等。
- 深度分析能力:
- 话题趋势追踪(热度变化、生命周期、爆火检测、趋势预测)。
- 跨平台数据对比(活跃度统计、关键词共现)。
- 智能摘要生成、相似新闻查找、历史关联检索。
💡 使用提示
AI 功能需要本地新闻数据支持:
- 项目自带 11月1 - 15日 测试数据,可立即体验。
- 建议自行部署运行项目,获取更实时的数据。
详见 AI 智能分析。
零技术门槛部署
GitHub 一键 Fork 即可使用,无需编程基础。
30 秒部署: GitHub Pages(网页浏览)支持一键保存成图片,随时分享给他人。 1 分钟部署: 企业微信(手机通知)。
💡 提示:想要实时更新的网页版?fork 后,进入你的仓库 Settings → Pages,启用 GitHub Pages。效果预览。
减少 APP 依赖
从"被算法推荐绑架"变成"主动获取自己想要的信息"。
适合人群:投资者、自媒体人、企业公关、关心时事的普通用户。
典型场景:股市投资监控、品牌舆情追踪、行业动态关注、生活资讯获取。
| Github Pages 效果(手机端适配、邮箱推送效果) | 飞书推送效果 |
|---|---|
📦 安装指南
方案一:Docker 部署(推荐 🔥)
- 特点:最稳定、最简单,数据存储在 本地 SQLite,完全自主可控。
- 适用:有自己的服务器、NAS 或长期运行的电脑。
👉 跳转到 Docker 部署教程
方案二:GitHub Actions 部署(已恢复 ✅)
- 特点:数据不再直接写入仓库(Git Commit),而是存储在 远程云存储。
- 推荐:配置一个远程云存储服务(Cloudflare R2、阿里云 OSS、腾讯云 COS 等)。
👉 点击查看详细配置教程
💻 使用示例
基础用法
按照上述快速开始的步骤完成配置后,即可开始使用 TrendRadar 追踪热点资讯。例如,在配置好关键词和推送平台后,系统会按照设定的推送模式和时间,将相关热点新闻推送到指定平台。
高级用法
如果你需要更智能的分析,可以使用 AI 智能分析功能。例如,在配置好 Cherry Studio 等客户端后,通过自然语言与新闻数据对话,进行深度分析,如查询特定日期的热点新闻、分析热点话题的热度趋势等。
📚 详细文档
配置详解
1. 平台配置
👉 点击展开:自定义监控平台
配置位置:config/config.yaml 的 platforms 部分。
本项目的资讯数据来源于 newsnow ,你可以点击网站,点击[更多],查看是否有你想要的平台。
具体添加可访问 项目源代码,根据里面的文件名,在 config/config.yaml 文件中修改 platforms 配置:
platforms:
- id: "toutiao"
name: "今日头条"
- id: "baidu"
name: "百度热搜"
- id: "wallstreetcn-hot"
name: "华尔街见闻"
# 添加更多平台...
💡 使用建议
如果不会看源代码,可以复制他人整理好的 平台配置汇总。
⚠️ 重要提示
平台不是越多越好,建议选择 10 - 15 个核心平台。过多平台会导致信息过载,反而降低使用体验。
2. 关键词配置
在 frequency_words.txt 文件中配置监控的关键词,支持五种语法、区域标记和词组功能。
| 语法类型 | 符号 | 作用 | 示例 | 匹配逻辑 |
|---|---|---|---|---|
| 普通词 | 无 | 基础匹配 | 华为 |
包含任意一个即可 |
| 必须词 | + |
限定范围 | +手机 |
必须同时包含 |
| 过滤词 | ! |
排除干扰 | !广告 |
包含则直接排除 |
| 数量限制 | @ |
控制显示数量 | @10 |
最多显示10条新闻(v3.2.0新增) |
| 全局过滤 | [GLOBAL_FILTER] |
全局排除指定内容 | 见下方示例 | 任何情况下都过滤(v3.5.0新增) |
2.1 基础语法
👉 点击展开:基础语法教程
配置位置:config/frequency_words.txt。
普通关键词 - 基础匹配:
华为
OPPO
苹果
作用:新闻标题包含其中任意一个词就会被捕获。
必须词 +词汇 - 限定范围:
华为
OPPO
+手机
作用:必须同时包含普通词和必须词才会被捕获。
过滤词 !词汇 - 排除干扰:
苹果
华为
!广告
作用:包含过滤词的新闻会被直接排除,即使包含关键词。
数量限制 @数字 - 控制显示数量(v3.2.0 新增):
特斯拉
马斯克
@10
作用:最多显示10条新闻。
全局过滤 [GLOBAL_FILTER] - 全局排除指定内容(v3.5.0新增):
[GLOBAL_FILTER]
广告
推广
营销
震惊
标题党
[WORD_GROUPS]
科技
AI
华为
鸿蒙
!车
作用:在任何情况下都过滤包含指定内容的新闻。
使用场景:过滤广告、营销、低质内容等。
过滤优先级:全局过滤 > 词组内过滤(!) > 词组匹配。
区域说明:
[GLOBAL_FILTER]:全局过滤区,包含的词在任何情况下都会被过滤。[WORD_GROUPS]:词组区,保持现有语法(!、+、@)。- 如果不使用区域标记,默认全部作为词组处理(向后兼容)。
匹配示例:
[GLOBAL_FILTER]
广告
[WORD_GROUPS]
科技
AI
- ❌ "广告:最新科技产品发布" ← 包含全局过滤词"广告",直接拒绝。
- ✅ "科技公司发布AI新产品" ← 不包含全局过滤词,匹配"科技"词组。
- ✅ "AI技术突破引发关注" ← 不包含全局过滤词,匹配"科技"词组中的"AI"。
注意事项:
- 全局过滤词应谨慎使用,避免过度过滤导致遗漏有价值内容。
- 建议全局过滤词控制在 5 - 15 个以内。
- 对于特定词组的过滤,优先使用词组内过滤词(
!前缀)。
词组功能 - 空行分隔的重要作用: 用空行分隔不同的词组,每个词组独立统计。
示例配置:
iPhone
华为
OPPO
+发布
A股
上证
深证
+涨跌
!预测
世界杯
欧洲杯
亚洲杯
+比赛
词组解释及匹配效果: 第1组 - 手机新品类:
- 关键词:iPhone、华为、OPPO。
- 必须词:发布。
- 效果:必须包含手机品牌名,同时包含"发布"。
匹配示例:
- ✅ "iPhone 15正式发布售价公布" ← 有"iPhone"+"发布"。
- ✅ "华为Mate60系列发布会直播" ← 有"华为"+"发布"。
- ✅ "OPPO Find X7发布时间确定" ← 有"OPPO"+"发布"。
- ❌ "iPhone销量创新高" ← 有"iPhone"但缺少"发布"。
第2组 - 股市行情类:
- 关键词:A股、上证、深证。
- 必须词:涨跌。
- 过滤词:预测。
- 效果:关注股市涨跌实况,排除预测类内容。
匹配示例:
- ✅ "A股今日大幅涨跌分析" ← 有"A股"+"涨跌"。
- ✅ "上证指数涨跌幅创新高" ← 有"上证"+"涨跌"。
- ❌ "专家预测A股涨跌趋势" ← 有"A股"+"涨跌"但包含"预测"。
第3组 - 足球赛事类:
- 关键词:世界杯、欧洲杯、亚洲杯。
- 必须词:比赛。
- 效果:只关注比赛相关新闻。
配置技巧: 从宽到严:
# 第一步:先用宽泛关键词测试
人工智能
AI
ChatGPT
# 第二步:发现误匹配后,加入必须词限定
人工智能
AI
ChatGPT
+技术
# 第三步:发现干扰内容后,加入过滤词
人工智能
AI
ChatGPT
+技术
!广告
!培训
避免过度复杂: ❌ 不推荐:一个词组包含太多词汇。
华为
OPPO
苹果
三星
vivo
一加
魅族
+手机
+发布
+销量
!假货
!维修
!二手
✅ 推荐:拆分成多个精确的词组。
华为
OPPO
+新品
苹果
三星
+发布
手机
销量
+市场
2.2 高级配置(v3.2.0 新增)
👉 点击展开:高级配置教程
关键词排序优先级:
配置位置:config/config.yaml。
report:
sort_by_position_first: false # 排序优先级配置
| 配置值 | 排序规则 | 适用场景 |
|---|---|---|
false(默认) |
热点条数 ↓ → 配置位置 ↑ | 关注热度趋势 |
true |
配置位置 ↑ → 热点条数 ↓ | 关注个人优先级 |
示例:配置顺序 A、B、C,热点数 A(3条)、B(10条)、C(5条)。
false:B(10条) → C(5条) → A(3条)。true:A(3条) → B(10条) → C(5条)。
全局显示数量限制:
report:
max_news_per_keyword: 10 # 每个关键词最多显示10条(0=不限制)
Docker 环境变量:
SORT_BY_POSITION_FIRST=true
MAX_NEWS_PER_KEYWORD=10
综合示例:
# config.yaml
report:
sort_by_position_first: true # 按配置顺序优先
max_news_per_keyword: 10 # 全局默认每个关键词最多10条
# frequency_words.txt
特斯拉
马斯克
@20 # 重点关注,显示20条(覆盖全局配置)
华为 # 使用全局配置,显示10条
比亚迪
@5 # 限制5条
最终效果:按配置顺序显示 特斯拉(20条) → 华为(10条) → 比亚迪(5条)。
3. 推送模式详解
👉 点击展开:三种推送模式详细对比
配置位置:config/config.yaml 的 report.mode。
report:
mode: "daily" # 可选: "daily" | "incremental" | "current"
Docker 环境变量:REPORT_MODE=incremental。
详细对比表格:
| 模式 | 适用人群 | 推送时机 | 显示内容 | 典型使用场景 |
|---|---|---|---|---|
当日汇总daily |
📋 企业管理者/普通用户 | 按时推送(默认每小时推送一次) | 当日所有匹配新闻 + 新增新闻区域 |
案例:每天下午6点查看今天所有重要新闻 特点:看全天完整趋势,不漏掉任何热点 提醒:会包含之前推送过的新闻 |
当前榜单current |
📰 自媒体人/内容创作者 | 按时推送(默认每小时推送一次) | 当前榜单匹配新闻 + 新增新闻区域 |
案例:每小时追踪"哪些话题现在最火" 特点:实时了解当前热度排名变化 提醒:持续在榜的新闻每次都会出现 |
增量监控incremental |
📈 投资者/交易员 | 有新增才推送 | 新出现的匹配频率词新闻 | 案例:监控"特斯拉",只在有新消息时通知 特点:零重复,只看首次出现的新闻 适合:高频监控、避免信息打扰 |
实际推送效果举例: 假设你监控"苹果"关键词,每小时执行一次:
| 时间 | daily 模式推送 | current 模式推送 | incremental 模式推送 |
|---|---|---|---|
| 10:00 | 新闻A、新闻B | 新闻A、新闻B | 新闻A、新闻B |
| 11:00 | 新闻A、新闻B、新闻C | 新闻B、新闻C、新闻D | 仅新闻C |
| 12:00 | 新闻A、新闻B、新闻C | 新闻C、新闻D、新闻E | 仅新闻D、新闻E |
说明:
daily:累积展示当天所有新闻(A、B、C 都保留)。current:展示当前榜单的新闻(排名变化,新闻D上榜,新闻A掉榜)。incremental:只推送新出现的新闻(避免重复干扰)。
常见问题:
💡 使用建议
遇到这个问题?👉 "每个小时执行一次,第一次执行完输出的新闻,在下一个小时执行时还会出现"。
- 原因:你可能选择了
daily(当日汇总)或current(当前榜单)模式。- 解决:改用
incremental(增量监控)模式,只推送新增内容。
增量模式重要提示:
⚠️ 重要提示
选择了
incremental(增量监控)模式的用户请注意:
- 📌 增量模式只在有新增匹配新闻时才会推送。
- 如果长时间没有收到推送,可能是因为:
- 当前时段没有符合你关键词的新热点出现。
- 关键词配置过于严格或过于宽泛。
- 监控平台数量较少。
- 解决方案:
- 方案1:👉 优化关键词配置 - 调整关键词的精准度,增加或修改监控词汇。
- 方案2:切换推送模式 - 改用
current或daily模式,可以定时接收推送。- 方案3:👉 增加监控平台 - 添加更多新闻平台,扩大信息来源。
4. 热点权重调整
👉 点击展开:热点权重调整
配置位置:config/config.yaml 的 weight 部分。
weight:
rank_weight: 0.6 # 排名权重
frequency_weight: 0.3 # 频次权重
hotness_weight: 0.1 # 热度权重
当前默认的配置是平衡性配置。
两个核心场景: 追实时热点型:
weight:
rank_weight: 0.8 # 主要看排名
frequency_weight: 0.1 # 不太在乎持续性
hotness_weight: 0.1
适用人群:自媒体博主、营销人员、想快速了解当下最火话题的用户。
追深度话题型:
weight:
rank_weight: 0.4 # 适度看排名
frequency_weight: 0.5 # 重视当天内的持续热度
hotness_weight: 0.1
适用人群:投资者、研究人员、新闻工作者、需要深度分析趋势的用户。
调整的方法:
- 三个数字加起来必须等于 1.0。
- 哪个重要就调大哪个:在乎排名就调大 rank_weight,在乎持续性就调大 frequency_weight。
- 建议每次只调 0.1 - 0.2,观察效果。
核心思路:追求速度和时效性的用户提高排名权重,追求深度和稳定性的用户提高频次权重。
5. 推送格式参考
👉 点击展开:推送格式说明
推送示例:
📊 热点词汇统计
🔥 [1/3] AI ChatGPT : 2 条
1. [百度热搜] 🆕 ChatGPT-5正式发布 [**1**] - 09时15分 (1次)
2. [今日头条] AI芯片概念股暴涨 [**3**] - [08时30分 ~ 10时45分] (3次)
━━━━━━━━━━━━━━━━━━━
📈 [2/3] 比亚迪 特斯拉 : 2 条
1. [微博] 🆕 比亚迪月销量破纪录 [**2**] - 10时20分 (1次)
2. [抖音] 特斯拉降价促销 [**4**] - [07时45分 ~ 09时15分] (2次)
━━━━━━━━━━━━━━━━━━━
📌 [3/3] A股 股市 : 1 条
1. [华尔街见闻] A股午盘点评分析 [**5**] - [11时30分 ~ 12时00分] (2次)
🆕 本次新增热点新闻 (共 2 条)
**百度热搜** (1 条):
1. ChatGPT-5正式发布 [**1**]
**微博** (1 条):
1. 比亚迪月销量破纪录 [**2**]
更新时间:2025-01-15 12:30:15
消息格式说明:
| 格式元素 | 示例 | 含义 | 说明 |
|---|---|---|---|
| 🔥📈📌 | 🔥 [1/3] AI ChatGPT | 热度等级 | 🔥高热度(≥10条) 📈中热度(5 - 9条) 📌普通热度(<5条) |
| [序号/总数] | [1/3] | 排序位置 | 当前词组在所有匹配词组中的排名 |
| 频率词组 | AI ChatGPT | 关键词组 | 配置文件中的词组,标题必须包含其中词汇 |
| : N 条 | : 2 条 | 匹配数量 | 该词组匹配的新闻总数 |
| [平台名] | [百度热搜] | 来源平台 | 新闻所属的平台名称 |
| 🆕 | 🆕 ChatGPT-5正式发布 | 新增标记 | 本轮抓取中首次出现的热点 |
| [数字] | [1] | 高排名 | 排名≤阈值的热搜,红色加粗显示 |
| [数字] | [7] | 普通排名 | 排名>阈值的热搜,普通显示 |
| - 时间 | - 09时15分 | 首次时间 | 该新闻首次被发现的时间 |
| [时间~时间] | [08时30分 ~ 10时45分] | 持续时间 | 从首次出现到最后出现的时间范围 |
| (N次) | (3次) | 出现频率 | 在监控期间出现的总次数 |
| 新增区域 | 🆕 本次新增热点新闻 | 新话题汇总 | 单独展示本轮新出现的热点话题 |
</details>
#### 6. Docker 部署
<details>
<summary>👉 点击展开:<strong>Docker 部署完整指南</strong></summary>
<br>
**镜像说明**:
TrendRadar 提供两个独立的 Docker 镜像,可根据需求选择部署:
| 镜像名称 | 用途 | 说明 |
|---------|------|------|
| `wantcat/trendradar` | 新闻推送服务 | 定时抓取新闻、推送通知(必选) |
| `wantcat/trendradar-mcp` | AI 分析服务 | MCP 协议支持、AI 对话分析(可选) |
> 💡 **使用建议**
>
> - 只需要推送功能:仅部署 `wantcat/trendradar` 镜像。
> - 需要 AI 分析功能:同时部署两个镜像。
**方式一:使用 docker compose(推荐)**
1. **创建项目目录和配置**:
**方式 1 - A:使用 git clone(推荐,最简单)**
```bash
# 克隆项目到本地
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar
方式 1 - B:使用 wget 下载配置文件
# 创建目录结构
mkdir -p trendradar/{config,docker}
cd trendradar
# 下载配置文件模板
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/
# 下载 docker compose 配置
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/.env -P docker/
wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/docker/docker-compose.yml -P docker/
💡 说明
Docker 部署需要的关键目录结构如下:
当前目录/
├── config/
│ ├── config.yaml
│ └── frequency_words.txt
└── docker/
├── .env
└── docker-compose.yml
- 配置文件说明:
config/config.yaml- 应用主配置(报告模式、推送设置等)。config/frequency_words.txt- 关键词配置(设置你关心的热点词汇)。.env- 环境变量配置(webhook URLs 和定时任务)。
⚙️ 环境变量覆盖机制(v3.0.5+)
如果你在 NAS 或其他 Docker 环境中遇到修改 config.yaml 后配置不生效的问题,可以通过环境变量直接覆盖配置:
| 环境变量 | 对应配置 | 示例值 | 说明 |
|---|---|---|---|
ENABLE_CRAWLER |
crawler.enable_crawler |
true / false |
是否启用爬虫 |
ENABLE_NOTIFICATION |
notification.enable_notification |
true / false |
是否启用通知 |
REPORT_MODE |
report.mode |
daily / incremental / current |
报告模式 |
MAX_ACCOUNTS_PER_CHANNEL |
notification.max_accounts_per_channel |
3 |
每个渠道最大账号数 |
PUSH_WINDOW_ENABLED |
notification.push_window.enabled |
true / false |
推送时间窗口开关 |
PUSH_WINDOW_START |
notification.push_window.time_range.start |
08:00 |
推送开始时间 |
PUSH_WINDOW_END |
notification.push_window.time_range.end |
22:00 |
推送结束时间 |
ENABLE_WEBSERVER |
- | true / false |
是否自动启动 Web 服务器 |
WEBSERVER_PORT |
- | 8080 |
Web 服务器端口(默认 8080) |
FEISHU_WEBHOOK_URL |
notification.webhooks.feishu_url |
https://... |
飞书 Webhook(支持多账号,用 ; 分隔) |
配置优先级:环境变量 > config.yaml。
使用方法:
- 修改
.env文件,取消注释并填写需要的配置。 - 或在 NAS/群晖 Docker 管理界面的"环境变量"中直接添加。
- 重启容器后生效:
docker compose up -d。
- 启动服务: 选项 A:启动所有服务(推送 + AI 分析)
# 拉取最新镜像
docker compose pull
# 启动所有服务(trend - radar + trend - radar - mcp)
docker compose up -d
选项 B:仅启动新闻推送服务
# 只启动 trend - radar(定时抓取和推送)
docker compose pull trend - radar
docker compose up -d trend - radar
选项 C:仅启动 MCP AI 分析服务
# 只启动 trend - radar - mcp(提供 AI 分析接口)
docker compose pull trend - radar - mcp
docker compose up -d trend - radar - mcp
💡 提示
- 大多数用户只需启动
trend - radar即可实现新闻推送功能。- 只有需要使用 Claude/ChatGPT 进行 AI 对话分析时,才需启动
trend - radar - mcp。- 两个服务相互独立,可根据需求灵活组合。
- 查看运行状态:
# 查看新闻推送服务日志
docker logs -f trend - radar
# 查看 MCP AI 分析服务日志
docker logs -f trend - radar - mcp
# 查看所有容器状态
docker ps | grep trend - radar
# 停止特定服务
docker compose stop trend - radar # 停止推送服务
docker compose stop trend - radar - mcp # 停止 MCP 服务
方式二:本地构建(开发者选项) 如果需要自定义修改代码或构建自己的镜像:
# 克隆项目
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar
# 修改配置文件
vim config/config.yaml
vim config/frequency_words.txt
# 使用构建版本的 docker compose
cd docker
cp docker-compose-build.yml docker-compose.yml
构建并启动服务: 选项 A:构建并启动所有服务
docker compose build
docker compose up -d
选项 B:仅构建并启动新闻推送服务
docker compose build trend - radar
docker compose up -d trend - radar
选项 C:仅构建并启动 MCP AI 分析服务
docker compose build trend - radar - mcp
docker compose up -d trend - radar - mcp
💡 架构参数说明
- 默认构建
amd64架构镜像(适用于大多数 x86_64 服务器)。- 如需构建
arm64架构(Apple Silicon、树莓派等),设置环境变量:export DOCKER_ARCH=arm64 docker compose build
镜像更新:
# 方式一:手动更新(爬虫 + MCP 镜像)
docker pull wantcat/trendradar:latest
docker pull wantcat/trendradar - mcp:latest
docker compose down
docker compose up -d
# 方式二:使用 docker compose 更新
docker compose pull
docker compose up -d
可用镜像:
| 镜像名称 | 用途 | 说明 |
|---|---|---|
wantcat/trendradar |
新闻推送服务 | 定时抓取新闻、推送通知 |
wantcat/trendradar - mcp |
MCP 服务 | AI 分析功能(可选) |
服务管理命令:
# 查看运行状态
docker exec -it trend - radar python manage.py status
# 手动执行一次爬虫
docker exec -it trend - radar python manage.py run
# 查看实时日志
docker exec -it trend - radar python manage.py logs
# 显示当前配置
docker exec -it trend - radar python manage.py config
# 显示输出文件
docker exec -it trend - radar python manage.py files
# Web 服务器管理(用于浏览器访问生成的报告)
docker exec -it trend - radar python manage.py start_webserver # 启动 Web 服务器
docker exec -it trend - radar python manage.py stop_webserver # 停止 Web 服务器
docker exec -it trend - radar python manage.py webserver_status # 查看 Web 服务器状态
# 查看帮助信息
docker exec -it trend - radar python manage.py help
# 重启容器
docker restart trend - radar
# 停止容器
docker stop trend - radar
# 删除容器(保留数据)
docker rm trend - radar
💡 Web 服务器说明
- 启动后可通过浏览器访问
http://localhost:8080查看最新报告。- 通过目录导航访问历史报告(如:
http://localhost:8080/2025 - xx - xx/)。- 端口可在
.env文件中配置WEBSERVER_PORT参数。- 自动启动:在
.env中设置ENABLE_WEBSERVER=true。- 安全提示:仅提供静态文件访问,限制在 output 目录,只绑定本地访问。
数据持久化:
生成的报告和数据默认保存在 ./output 目录下,即使容器重启或删除,数据也会保留。
📊 网页版报告访问路径: TrendRadar 生成的当日汇总 HTML 报告会同时保存到两个位置:
| 文件位置 | 访问方式 | 适用场景 |
|---|---|---|
output/index.html |
宿主机直接访问 | Docker 部署(通过 Volume 挂载,宿主机可见) |
index.html |
根目录访问 | GitHub Pages(仓库根目录,Pages 自动识别) |
output/YYYY - MM - DD/html/当日汇总.html |
历史报告访问 | 所有环境(按日期归档) |
本地访问示例:
# 方式 1:通过 Web 服务器访问(推荐,Docker 环境)
# 1. 启动 Web 服务器
docker exec -it trend - radar python manage.py start_webserver
# 2. 在浏览器访问
http://localhost:8080 # 访问最新报告(默认 index.html)
http://localhost:8080/2025 - xx - xx/ # 访问指定日期的报告
http://localhost:8080/2025 - xx - xx/html/ # 浏览该日期下的所有 HTML 文件
# 方式 2:直接打开文件(本地环境)
open ./output/index.html # macOS
start ./output/index.html # Windows
xdg - open ./output/index.html # Linux
# 方式 3:访问历史归档
open ./output/2025 - xx - xx/html/当日汇总.html
为什么有两个 index.html?
output/index.html:Docker Volume 挂载到宿主机,本地可直接打开。index.html:GitHub Actions 推送到仓库,GitHub Pages 自动部署。
💡 提示
两个文件内容完全相同,选择任意一个访问即可。
故障排查:
# 检查容器状态
docker inspect trend - radar
# 查看容器日志
docker logs --tail 100 trend - radar
# 进入容器调试
docker exec -it trend - radar /bin/bash
# 验证配置文件
docker exec -it trend - radar ls -la /app/config/
MCP 服务部署(AI 分析功能): 如果需要使用 AI 分析功能,可以部署独立的 MCP 服务容器。
架构说明:
flowchart TB
subgraph trend - radar["trend - radar"]
A1[定时抓取新闻]
A2[推送通知]
end
subgraph trend - radar - mcp["trend - radar - mcp"]
B1[127.0.0.1:3333]
B2[AI 分析接口]
end
subgraph shared["共享卷"]
C1["config/ (ro)"]
C2["output/ (ro)"]
end
trend - radar --> shared
trend - radar - mcp --> shared
快速启动: 如果已按照 方式一:使用 docker compose 完成部署,只需启动 MCP 服务:
cd TrendRadar/docker
docker compose up -d trend - radar - mcp
# 查看运行状态
docker ps | grep trend - radar - mcp
单独启动 MCP 服务(不使用 docker compose):
# Linux/Mac
docker run -d --name trend - radar - mcp \
-p 127.0.0.1:3333:3333 \
-v $(pwd)/config:/app/config:ro \
-v $(pwd)/output:/app/output:ro \
-e TZ=Asia/Shanghai \
wantcat/trendradar - mcp:latest
# Windows PowerShell
docker run -d --name trend - radar - mcp `
-p 127.0.0.1:3333:3333 `
-v ${PWD}/config:/app/config:ro `
-v ${PWD}/output:/app/output:ro `
-e TZ=Asia/Shanghai `
wantcat/trendradar - mcp:latest
⚠️ 注意
单独运行时,确保当前目录下有
config/和output/文件夹,且包含配置文件和新闻数据。
验证服务:
# 检查 MCP 服务健康状态
curl http://127.0.0.1:3333/mcp
# 查看 MCP 服务日志
docker logs -f trend - radar - mcp
在 AI 客户端中配置: MCP 服务启动后,根据不同客户端进行配置:
Cherry Studio(推荐,GUI 配置):
- 设置 → MCP 服务器 → 添加。
- 类型:
streamableHttp。 - URL:
http://127.0.0.1:3333/mcp。
Claude Desktop / Cline(JSON 配置):
{
"mcpServers": {
"trendradar": {
"url": "http://127.0.0.1:3333/mcp",
"type": "streamableHttp"
}
}
}
💡 提示
MCP 服务仅监听本地端口(127.0.0.1),确保安全性。如需远程访问,请自行配置反向代理和认证。
7. 报告配置
👉 点击展开:报告相关参数配置
配置位置:config/config.yaml 的 report 部分。
report:
mode: "daily" # 推送模式
rank_threshold: 5 # 排名高亮阈值
sort_by_position_first: false # 排序优先级
max_news_per_keyword: 0 # 每个关键词最大显示数量
reverse_content_order: false # 内容顺序配置
配置项详解:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
mode |
string | daily |
推送模式,可选 daily/incremental/current,详见 推送模式详解 |
rank_threshold |
int | 5 |
排名高亮阈值,排名 ≤ 该值的新闻会加粗显示 |
sort_by_position_first |
bool | false |
排序优先级:false=按热点条数排序,true=按配置位置排序 |
max_news_per_keyword |
int | 0 |
每个关键词最大显示数量,0=不限制 |
reverse_content_order |
bool | false |
内容顺序:false=热点词汇统计在前,true=新增热点新闻在前 |
内容顺序配置(v3.5.0 新增): 控制推送消息和 HTML 报告中两部分内容的显示顺序:
| 配置值 | 显示顺序 |
|---|---|
false(默认) |
① 热点词汇统计 → ② 新增热点新闻 |
true |
① 新增热点新闻 → ② 热点词汇统计 |
适用场景:
false(默认):适合关注关键词匹配结果的用户,先看分类统计。true:适合关注最新动态的用户,优先查看新增热点。
Docker 环境变量:
REVERSE_CONTENT_ORDER=true
排序优先级配置: 示例场景:配置顺序 A、B、C,热点数 A(3条)、B(10条)、C(5条)。
| 配置值 | 显示顺序 | 适用场景 |
|---|---|---|
false(默认) |
B(10条) → C(5条) → A(3条) | 关注热度趋势 |
true |
A(3条) → B(10条) → C(5条) | 关注个人优先级 |
Docker 环境变量:
SORT_BY_POSITION_FIRST=true
MAX_NEWS_PER_KEYWORD=10
8. 推送时间窗口配置
👉 点击展开:推送时间窗口控制详解
配置位置:config/config.yaml 的 notification.push_window 部分。
notification:
push_window:
enabled: false # 是否启用
time_range:
start: "20:00" # 开始时间(北京时间)
end: "22:00" # 结束时间(北京时间)
once_per_day: true # 每天只推送一次
配置项详解:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
bool | false |
是否启用推送时间窗口控制 |
time_range.start |
string | "20:00" |
推送时间窗口开始时间(北京时间,HH:MM 格式) |
time_range.end |
string | "22:00" |
推送时间窗口结束时间(北京时间,HH:MM 格式) |
once_per_day |
bool | true |
true=每天在窗口内只推送一次,false=窗口内每次执行都推送 |
使用场景:
| 场景 | 配置示例 |
|---|---|
| 工作时间推送 | start: "09:00", end: "18:00", once_per_day: false |
| 晚间汇总推送 | start: "20:00", end: "22:00", once_per_day: true |
| 午休时间推送 | start: "12:00", end: "13:00", once_per_day: true |
重要提示:
⚠️ 重要提示
GitHub Actions 用户注意:
- GitHub Actions 执行时间不稳定,可能有 ±15 分钟的偏差。
- 时间范围建议至少留足 2 小时。
- 如果想要精准的定时推送,建议使用 Docker 部署在个人服务器上。
Docker 环境变量:
PUSH_WINDOW_ENABLED=true
PUSH_WINDOW_START=09:00
PUSH_WINDOW_END=18:00
PUSH_WINDOW_ONCE_PER_DAY=false
完整配置示例: 场景:每天晚上 8 - 10 点只推送一次汇总。
notification:
push_window:
enabled: true
time_range:
start: "20:00"
end: "22:00"
once_per_day: true
场景:工作时间内每小时推送。
notification:
push_window:
enabled: true
time_range:
start: "09:00"
end: "18:00"
once_per_day: false
9. 执行频率配置
👉 点击展开:自动运行频率设置
配置位置:.github/workflows/crawler.yml 的 schedule 部分。
on:
schedule:
- cron: "0 * * * *" # 每小时运行一次
什么是 Cron 表达式?
Cron 是一种定时任务格式,由 5 个部分组成:分 时 日 月 周。
┌───────────── 分钟 (0 - 59)
│ ┌───────────── 小时 (0 - 23)
│ │ ┌───────────── 日期 (1 - 31)
│ │ │ ┌───────────── 月份 (1 - 12)
│ │ │ │ ┌───────────── 星期 (0 - 6,0 = 周日)
│ │ │ │ │
* * * * *
常用配置示例:
| 想要的效果 | Cron 表达式 | 说明 |
|---|---|---|
| 每小时运行 | 0 * * * * |
每小时的第 0 分钟运行(默认) |
| 每 30 分钟运行 | */30 * * * * |
每隔 30 分钟运行一次 |
| 每天早 8 点运行 | 0 0 * * * |
UTC 0:00 = 北京时间 8:00 |
| 工作时间运行 | */30 0 - 14 * * * |
北京 8:00 - 22:00,每 30 分钟 |
| 每天 3 次 | 0 0,6,12 * * * |
北京 8:00、14:00、20:00 |
重要提示:
⚠️ 重要提示
- 时区注意:GitHub Actions 使用 UTC 时间,北京时间需要 减 8 小时。
- 想要北京时间 8:00 运行 → 设置 UTC 0:00。
- 想要北京时间 20:00 运行 → 设置 UTC 12:00。
- 频率限制:GitHub 对每个账号的 Actions 运行次数有限额。
- 建议:不要设置比 30 分钟更短的间隔。
- 原因:过于频繁可能被判定为滥用,面临封号风险。
- 实际情况:GitHub Actions 执行时间本身就有偏差,设置太精确意义不大。
修改方法:
- 打开你 fork 的仓库。
- 找到
.github/workflows/crawler.yml文件。 - 点击编辑(铅笔图标)。
- 修改
cron: "0 * * * *"中的表达式。 - 点击 "Commit changes" 保存。
10. 多账号推送配置
👉 点击展开:多账号推送配置详解
⚠️ 重要提示
GitHub Fork 用户请勿在
config.yaml中配置推送信息!
- 风险说明:
config.yaml会被提交到公开的 Git 仓库,配置推送信息(Webhook URL、Token 等)会泄露敏感数据。- 推荐方式:
- GitHub Actions 用户 → 使用 GitHub Secrets 环境变量。
- Docker 用户 → 使用 (
.env已在.gitignore中,不会被提交)。- 本地开发用户:可以在
config.yaml中配置(确保不会 push 到公开仓库)。
支持的渠道:
| 渠道 | 配置项 | 是否需要配对 | 说明 |
|---|---|---|---|
| 飞书 | feishu_url |
否 | 多个 webhook URL |
| 钉钉 | dingtalk_url |
否 | 多个 webhook URL |
| 企业微信 | wework_url |
否 | 多个 webhook URL |
| Telegram | telegram_bot_token + telegram_chat_id |
✅ 是 | token 和 chat_id 数量必须一致 |
| ntfy | ntfy_topic + ntfy_token |
✅ 是 | topic 和 token 数量必须一致(token 可选) |
| Bark | bark_url |
否 | 多个推送 URL |
| Slack | slack_webhook_url |
否 | 多个 webhook URL |
| 邮件 | email_to |
- | 已支持多收件人(逗号分隔),无需修改 |
推荐配置方式 1:GitHub Actions 环境变量 配置位置:GitHub Repo → Settings → Secrets and variables → Actions → Repository secrets。
基础配置示例:
# 多账号数量限制
MAX_ACCOUNTS_PER_CHANNEL=3
# 飞书多账号(3个群组)
FEISHU_WEBHOOK_URL=https://hook1.feishu.cn/xxx;https://hook2.feishu.cn/yyy;https://hook3.feishu.cn/zzz
# 钉钉多账号(2个群组)
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/xxx;https://oapi.dingtalk.com/yyy
# 企业微信多账号(2个群组)
WEWORK_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx;https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yyy
# Bark多账号(2个设备)
BARK_URL=https://api.day.app/key1;https://api.day.app/key2
# Slack多账号(2个频道)
SLACK_WEBHOOK_URL=https://hooks.slack.com/xxx;https://hooks.slack.com/yyy
配对配置示例(Telegram 和 ntfy):
Telegram 配对配置
# ✅ 正确配置:2个token对应2个chat_id
TELEGRAM_BOT_TOKEN=123456:AAA - BBB;789012:CCC - DDD
TELEGRAM_CHAT_ID=-100111;-100222
# ❌ 错误配置:数量不一致,将跳过推送
TELEGRAM_BOT_TOKEN=token1;token2;token3
TELEGRAM_CHAT_ID=id1;id2
说明:token 和 chat_id 的数量必须完全一致,否则该渠道推送会被跳过。
ntfy 配对配置
# ✅ 正确配置:3个topic,只有第2个需要token
NTFY_TOPIC=topic1;topic2;topic3
NTFY_TOKEN=;token_for_topic2;
# ✅ 正确配置:2个topic都需要token
NTFY_TOPIC=topic1;topic2
NTFY_TOKEN=token1;token2
# ❌ 错误配置:topic和token数量不匹配
NTFY_TOPIC=topic1;topic2
NTFY_TOKEN=token1;token2;token3
说明:
- 如果某个 topic 不需要 token,在对应位置留空(两个分号之间)。
topic和token的数量必须一致。
推荐配置方式 2:Docker 环境变量(.env)
配置位置:项目根目录 docker/.env 文件。
基础配置示例:
# 多账号数量限制
MAX_ACCOUNTS_PER_CHANNEL=3
# 飞书多账号(3个群组)
FEISHU_WEBHOOK_URL=https://hook1.feishu.cn/xxx;https://hook2.feishu.cn/yyy;https://hook3.feishu.cn/zzz
# 钉钉多账号(2个群组)
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/xxx;https://oapi.dingtalk.com/yyy
# 企业微信多账号(2个群组)
WEWORK_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx;https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yyy
# Bark多账号(2个设备)
BARK_URL=https://api.day.app/key1;https://api.day.app/key2
# Slack多账号(2个频道)
SLACK_WEBHOOK_URL=https://hooks.slack.com/xxx;https://hooks.slack.com/yyy
配对配置示例(Telegram 和 ntfy):
Telegram 配对配置
# ✅ 正确配置:2个token对应2个chat_id
TELEGRAM_BOT_TOKEN=123456:AAA - BBB;789012:CCC - DDD
TELEGRAM_CHAT_ID=-100111;-100222
# ❌ 错误配置:数量不一致,将跳过推送
TELEGRAM_BOT_TOKEN=token1;token2;token3
TELEGRAM_CHAT_ID=id1;id2
说明:token 和 chat_id 的数量必须完全一致,否则该渠道推送会被跳过。
ntfy 配对配置
# ✅ 正确配置:3个topic,只有第2个需要token
NTFY_TOPIC=topic1;topic2;topic3
NTFY_TOKEN=;token_for_topic2;
# ✅ 正确配置:2个topic都需要token
NTFY_TOPIC=topic1;topic2
NTFY_TOKEN=token1;token2
# ❌ 错误配置:topic和
替代品








