为什么折腾这个
每天刷各个平台的热搜太分散了,知乎一个、微博一个、B站又一个。TrendRadar 能把这些聚合到一起,定时推送到飞书,打开飞书就能看全网热点。开源自托管,数据在自己手里。
环境
- 树莓派 4B (arm64), 8GB RAM
- Debian 13 Trixie
- Docker 29.7.2 + Docker Compose v5.4.0
- TrendRadar v6.10.0
部署过程
创建目录
我习惯把所有 Docker 项目放在 ~/.docker/ 下统一管理:
mkdir -p ~/.docker/trendradar/{config,docker}
下载配置文件
直接 clone 官方仓库,拷贝 config 和 docker 两个目录就行:
# clone 到临时目录
git clone https://ghfast.top/https://github.com/sansan0/TrendRadar.git /tmp/TrendRadar
# 拷贝配置目录
cp -r /tmp/TrendRadar/config ~/.docker/trendradar/config
cp -r /tmp/TrendRadar/docker ~/.docker/trendradar/docker
# 清理
rm -rf /tmp/TrendRadar
国内访问 GitHub 用的 ghfast.top 加速,实测树莓派上能跑通。
拷贝完的目录结构:
~/.docker/trendradar/
├── config/
│ ├── config.yaml # 核心配置文件(必须编辑)
│ ├── frequency_words.txt # 关键词配置(必须编辑)
│ ├── timeline.yaml # 时间线调度配置
│ ├── ai_analysis_prompt.txt # AI 分析提示词(可选)
│ ├── ai_interests.txt # AI 兴趣过滤(可选)
│ ├── ai_translation_prompt.txt# AI 翻译提示词(可选)
│ ├── ai_filter/ # AI 筛选提示词目录
│ │ ├── prompt.txt
│ │ ├── extract_prompt.txt
│ │ └── update_tags_prompt.txt
│ └── custom/ # 用户自定义配置
│ ├── ai/ # 自定义 AI 提示词
│ └── keyword/ # 自定义关键词文件
└── docker/
├── .env # 环境变量
└── docker-compose.yml # 容器编排
config/目录下的文件全部保留,即使暂时不用 AI 功能。缺少文件可能导致预设模板报错。
配置飞书推送
先在飞书群里建一个自定义机器人:电脑端飞书 → 群设置 → 群机器人 → 添加机器人 → 自定义机器人。手机端没有这个入口,别在手机上操作。
拿到 Webhook URL 后,改两个地方。
config.yaml 里找到 notification.channels.feishu.webhook_url,填进去:
notification:
enabled: true
channels:
feishu:
webhook_url: "https://open.feishu.cn/open-apis/bot/v2/hook/你的token"
.env 里也加一行:
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/你的token
调整关键配置
根据自己的需求改 config.yaml:
# 每次推送当前热榜(不是增量,也不是每日汇总)
report:
mode: "current"
# 调度系统用 morning_evening 预设:全天推送 + 晚间汇总
schedule:
enabled: true
preset: "morning_evening"
# 暂时不用 AI
ai_analysis:
enabled: false
ai_translation:
enabled: false
display:
regions:
ai_analysis: false
.env 里改运行参数:
WEBSERVER_PORT=13080
CRON_SCHEDULE=0 */2 * * *
IMMEDIATE_RUN=true
AI_ANALYSIS_ENABLED=false
MCP_PORT=13333
docker-compose.yml 两处改动
1. 端口绑定:默认绑定 127.0.0.1,局域网其他设备访问不了。去掉前缀:
# 改前
ports:
- "127.0.0.1:${WEBSERVER_PORT:-8080}:${WEBSERVER_PORT:-8080}"
# 改后
ports:
- "${WEBSERVER_PORT:-8080}:${WEBSERVER_PORT:-8080}"
2. MCP 服务:默认会启动,暂时用不上。加 profiles 让它默认不启动:
trendradar-mcp:
profiles: ["mcp"]
image: wantcat/trendradar-mcp:latest
...
以后要用 MCP 时跑 docker compose --profile mcp up -d 就行。
启动
cd ~/.docker/trendradar/docker
docker compose pull
docker compose up -d
首次启动会自动抓取一次数据。看日志确认:
docker logs -f trendradar
正常的话会看到 11 个平台逐个抓取,最后飞书推送成功。
最终效果
飞书收到的推送长这样:
总新闻: 28 条
热榜: 25/145(平台 7/7)
RSS: 3/20(源 2/2)
类型: 当前榜单
时间: 2026-08-09 18:01:23
最热话题: 中国(6) | 北美(5) | 宇树机器人(3)
📊 热点词汇统计 (共 25 条)
📈 [1/10] 中国 : 6 条
......
Web 报告
打开 http://树莓派IP:13080 可以查看生成的 HTML 报告。
Docker 常用命令
# 进入项目目录
cd ~/.docker/trendradar/docker
# 启动
docker compose up -d
# 停止
docker compose down
# 重启
docker compose restart
# 更新镜像
docker compose pull && docker compose up -d
# 查看容器状态
docker ps --filter name=trendradar
# 查看实时日志
docker logs -f trendradar
# 查看最近 50 行日志
docker logs --tail 50 trendradar
# 环境与配置体检
docker exec -it trendradar python -m trendradar --doctor
# 通知渠道实测
docker exec -it trendradar python -m trendradar --test-notification
# 当前调度状态
docker exec -it trendradar python -m trendradar --show-schedule
# 实时日志
docker exec -it trendradar python manage.py logs
# 立即抓取一次
docker exec trendradar python manage.py run
# 查看容器运行状态
docker exec trendradar python manage.py status
# 查看当前配置
docker exec trendradar python manage.py config
# 查看输出文件
docker exec trendradar python manage.py files
# 启动 Web 服务器(如果未自动启动)
docker exec trendradar python manage.py start_webserver
# 停止 Web 服务器
docker exec trendradar python manage.py stop_webserver
# 查看 Web 服务器状态
docker exec trendradar python manage.py webserver_status
参考文档
- TrendRadar 官方文档:https://trendradar.sandev.cc/zh/docs/docker/
- TrendRadar GitHub 仓库:https://github.com/sansan0/TrendRadar
- 官方可视化配置编辑器:https://sansan0.github.io/TrendRadar/