Merge: 合并远程仓库更新,采纳远程版本选择

This commit is contained in:
arch3rPro
2026-01-07 16:26:03 +08:00
28 changed files with 1047 additions and 3 deletions

View File

@@ -1041,7 +1041,7 @@ services:
- ssrf_proxy_network
- default
worker:
image: langgenius/dify-api:1.11.1
image: langgenius/dify-api:1.11.2
env_file:
- dify.env
restart: always
@@ -1570,7 +1570,7 @@ services:
- ssrf_proxy_network
- default
web:
image: langgenius/dify-web:1.11.1
image: langgenius/dify-web:1.11.2
container_name: ${CONTAINER_NAME}
env_file:
- dify.env

View File

@@ -7,6 +7,7 @@ additionalProperties:
required: true
rule: paramPort
type: number
edit: true
label:
en: Web Port
zh: HTTP 端口
@@ -17,6 +18,7 @@ additionalProperties:
required: true
rule: paramCommon
type: text
edit: true
label:
en: Database
zh: 数据库名
@@ -28,6 +30,7 @@ additionalProperties:
required: true
rule: paramCommon
type: text
edit: true
label:
en: User
zh: 数据库用户
@@ -39,6 +42,7 @@ additionalProperties:
required: true
rule: paramComplexity
type: password
edit: true
label:
en: Password
zh: 数据库用户密码
@@ -48,6 +52,7 @@ additionalProperties:
labelZh: 应用访问地址
required: true
type: text
edit: true
label:
en: Application URL
zh: 应用访问地址
@@ -57,6 +62,7 @@ additionalProperties:
labelZh: 公共应用访问地址
required: true
type: text
edit: true
label:
en: Public Application URL
zh: 公共应用访问地址
@@ -68,6 +74,7 @@ additionalProperties:
required: true
rule: paramComplexity
type: password
edit: true
label:
en: Auth Secret
zh: 认证密钥

View File

@@ -7,6 +7,7 @@ additionalProperties:
required: true
rule: paramPort
type: number
edit: true
label:
en: Web Port
zh: HTTP 端口
@@ -17,6 +18,7 @@ additionalProperties:
required: true
rule: paramCommon
type: text
edit: true
label:
en: Database
zh: 数据库名
@@ -28,6 +30,7 @@ additionalProperties:
required: true
rule: paramCommon
type: text
edit: true
label:
en: User
zh: 数据库用户
@@ -39,6 +42,7 @@ additionalProperties:
required: true
rule: paramComplexity
type: password
edit: true
label:
en: Password
zh: 数据库用户密码
@@ -48,6 +52,7 @@ additionalProperties:
labelZh: 应用访问地址
required: true
type: text
edit: true
label:
en: Application URL
zh: 应用访问地址
@@ -57,6 +62,7 @@ additionalProperties:
labelZh: 公共应用访问地址
required: true
type: text
edit: true
label:
en: Public Application URL
zh: 公共应用访问地址
@@ -68,6 +74,7 @@ additionalProperties:
required: true
rule: paramComplexity
type: password
edit: true
label:
en: Auth Secret
zh: 认证密钥

View File

@@ -1,6 +1,10 @@
services:
n8n:
<<<<<<<< HEAD:apps/n8n-zh/2.3.0/docker-compose.yml
image: n8nio/n8n:2.3.0
========
image: n8nio/n8n:2.2.2
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/n8n-zh/2.2.2/docker-compose.yml
container_name: ${CONTAINER_NAME}
restart: always
user: 1000:1000

View File

@@ -1,6 +1,10 @@
services:
new-api:
<<<<<<<< HEAD:apps/new-api/0.10.5/docker-compose.yml
image: calciumion/new-api:v0.10.5
========
image: calciumion/new-api:v0.10.4
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/new-api/0.10.3/docker-compose.yml
container_name: ${CONTAINER_NAME}
restart: always
ports:

View File

@@ -1,6 +1,6 @@
services:
new-api:
image: calciumion/new-api:v0.10.0
image: calciumion/new-api:v0.10.4
container_name: ${CONTAINER_NAME}
restart: always
ports:

View File

@@ -5,7 +5,11 @@ services:
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.234
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-mgt:9.3.1
========
image: chaitin/safeline-mgt:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
volumes:
- /etc/localtime:/etc/localtime:ro
- ${SAFELINE_DIR}/resources/mgt:/app/data
@@ -33,7 +37,11 @@ services:
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.235
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-detector:9.2.9
========
image: chaitin/safeline-detector:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
volumes:
- ${SAFELINE_DIR}/resources/detector:/resources/detector
- ${SAFELINE_DIR}/logs/detector:/logs/detector
@@ -45,7 +53,11 @@ services:
safeline-tengine:
container_name: ${CONTAINER_NAME}-tengine
restart: always
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-tengine:9.2.9
========
image: chaitin/safeline-tengine:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/resolv.conf:/etc/resolv.conf:ro
@@ -69,7 +81,11 @@ services:
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.237
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-luigi:9.2.9
========
image: chaitin/safeline-luigi:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
volumes:
- /etc/localtime:/etc/localtime:ro
- ${SAFELINE_DIR}/resources/luigi:/app/data
@@ -90,7 +106,11 @@ services:
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.238
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-fvm:9.2.9
========
image: chaitin/safeline-fvm:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
volumes:
- /etc/localtime:/etc/localtime:ro
logging:
@@ -126,7 +146,11 @@ services:
networks:
1panel-network:
ipv4_address: ${SUBNET_PREFIX}.240
<<<<<<<< HEAD:apps/safeline/9.3.1/docker-compose.yml
image: chaitin/safeline-chaos:9.2.9
========
image: chaitin/safeline-chaos:9.3.0
>>>>>>>> 8e6cc572050a5c9325ed5d40b27a804e3b5f4032:apps/safeline/9.3.0/docker-compose.yml
logging:
options:
max-size: 100m

View File

@@ -0,0 +1,187 @@
app:
version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version"
show_version_update: true # 控制显示版本更新提示,如果 false则不接受新版本提示
# 时区配置(影响所有时间显示、推送窗口判断、数据存储)
# 常用时区:
# - Asia/Shanghai (北京时间 UTC+8)
# - America/New_York (美东时间 UTC-5/-4)
# - Europe/London (伦敦时间 UTC+0/+1)
# 完整时区列表: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
timezone: "Asia/Shanghai"
# 存储配置
storage:
# 存储后端选择: local / remote / auto
# - local: 本地 SQLite + TXT/HTML 文件
# - remote: 远程云存储S3 兼容协议,支持 R2/OSS/COS 等)
# - auto: 自动选择GitHub Actions 环境且配置了远程存储则用 remote否则用 local
backend: "auto"
# 数据格式选项
formats:
sqlite: true # 主存储(必须启用)
txt: false # 是否生成 TXT 快照
html: false # 是否生成 HTML 报告(⚠️ 邮件推送必须设为 true否则会报错
# 本地存储配置
local:
data_dir: "output" # 数据目录
retention_days: 0 # 本地数据保留天数0 = 不清理)
# 远程存储配置S3 兼容协议)
# 支持: Cloudflare R2, 阿里云 OSS, 腾讯云 COS, AWS S3, MinIO 等
# 建议将敏感信息配置在 GitHub Secrets 或环境变量中
remote:
# 数据保留天数0 = 不清理远程数据)
retention_days: 0
# S3 兼容配置
endpoint_url: "" # 服务端点(或环境变量 S3_ENDPOINT_URL
# Cloudflare R2: https://<account_id>.r2.cloudflarestorage.com
# 阿里云 OSS: https://oss-cn-hangzhou.aliyuncs.com
# 腾讯云 COS: https://cos.ap-guangzhou.myqcloud.com
bucket_name: "" # 存储桶名称(或环境变量 S3_BUCKET_NAME
access_key_id: "" # 访问密钥 ID或环境变量 S3_ACCESS_KEY_ID
secret_access_key: "" # 访问密钥(或环境变量 S3_SECRET_ACCESS_KEY
region: "" # 区域(可选,部分服务商需要,或环境变量 S3_REGION
# 数据拉取配置(从远程同步到本地)
# 用于 MCP Server 等场景爬虫存到远程MCP 拉取到本地分析
pull:
enabled: false # 是否启用启动时自动拉取
days: 7 # 拉取最近 N 天的数据0 = 不拉取)
crawler:
request_interval: 1000 # 请求间隔(毫秒)
enable_crawler: true # 是否启用爬取新闻功能,如果 false则直接停止程序
use_proxy: false # 是否启用代理false 时为关闭
default_proxy: "http://127.0.0.1:10801"
# 🔸 daily当日汇总模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当日所有匹配新闻 + 新增新闻区域
# • 适用场景:日报总结、全面了解当日热点趋势
#
# 🔸 current当前榜单模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当前榜单匹配新闻 + 新增新闻区域
# • 适用场景:实时热点追踪、了解当前最火的内容
#
# 🔸 incremental增量监控模式
# • 推送时机:有新增才推送
# • 显示内容:新出现的匹配频率词新闻
# • 适用场景:避免重复信息干扰
# 推送模式选择
report:
mode: "daily" # 可选: "daily"|"incremental"|"current"
rank_threshold: 5 # 排名高亮阈值
sort_by_position_first: false # 排序优先级true=先按配置位置排序false=先按热点条数排序
max_news_per_keyword: 0 # 每个关键词最大显示数量0=不限制
reverse_content_order: false # 内容顺序false=热点词汇统计在前true=新增热点新闻在前
notification:
enable_notification: true # 是否启用通知功能,如果 false则不发送手机通知
message_batch_size: 4000 # 消息分批大小(字节)(这个配置别动)
dingtalk_batch_size: 20000 # 钉钉消息分批大小(字节)(这个配置也别动)
feishu_batch_size: 30000 # 飞书消息分批大小(字节)
bark_batch_size: 4000 # Bark消息分批大小字节
slack_batch_size: 4000 # Slack消息分批大小字节
batch_send_interval: 3 # 批次发送间隔(秒)
feishu_message_separator: "━━━━━━━━━━━━━━━━━━━" # feishu 消息分割线
max_accounts_per_channel: 3 # 每个渠道最大账号数量,建议不超过 3
# 🕐 推送时间窗口控制(可选功能)
# 用途:限制推送的时间范围,避免非工作时间打扰
# 适用场景:
# - 只想在工作日白天接收推送(如 09:00-18:00
# - 希望在晚上固定时间收到汇总(如 20:00-22:00
push_window:
enabled: false # 是否启用推送时间窗口控制,默认关闭
# 注意GitHub Actions 执行时间不稳定,时间范围建议至少留足 2 小时
# 如果想要精准的定时推送,建议使用 Docker 部署在个人服务器上
time_range:
start: "20:00" # 推送时间窗口开始(北京时间)
end: "22:00" # 推送时间窗口结束(北京时间)
once_per_day: true # 每天在时间窗口内只推送一次,如果 false则窗口内每次执行都推送
# ⚠️⚠️⚠️ 重要安全警告 / IMPORTANT SECURITY WARNING ⚠️⚠️⚠️
#
# 🔴 请务必妥善保管好 webhooks不要公开!!!
# 🔴 如果你以 fork 的方式将本项目部署在 GitHub 上,请勿在下面填写任何 webhooks
# 🔴 而是将 webhooks 填入 GitHub SecretSettings → Secrets and variables → Actions
# 🔴 否则:
# - 轻则:手机上收到大量垃圾广告推送
# - 重则webhook 被滥用造成严重安全隐患(如恶意消息轰炸、钓鱼链接等)
#
# 🔴 NEVER expose webhooks publicly!!!
# 🔴 If deploying via GitHub fork, DO NOT fill webhooks below
# 🔴 Instead, add them to GitHub Secrets (Settings → Secrets and variables → Actions)
# 🔴 Consequences of exposure:
# - Minor: Spam notifications flooding your devices
# - Severe: Webhook abuse leading to security incidents (malicious messages, phishing links, etc.)
#
# ⚠️⚠️⚠️ 多账号推送说明 / MULTI-ACCOUNT PUSH NOTICE ⚠️⚠️⚠️
#
# 🔸 多账号支持:
# • 请使用分号(;)分隔多个账号,如:"url1;url2;url3"
# • 示例telegram_bot_token: "token1;token2" 对应 telegram_chat_id: "id1;id2"
# • 对于需要配对的配置(如 Telegram 的 token 和 chat_id数量必须一致
# • 每个渠道最多支持 max_accounts_per_channel 个账号(见上方配置)
# • 邮箱已支持多收件人(逗号分隔),保持不变
#
# 🔸 Multi-Account Support:
# • Use semicolon(;) to separate multiple accounts, e.g., "url1;url2;url3"
# • Example: telegram_bot_token: "token1;token2" with telegram_chat_id: "id1;id2"
# • For paired configs (e.g., Telegram token and chat_id), quantities must match
# • Each channel supports up to max_accounts_per_channel accounts (see above config)
# • Email already supports multiple recipients (comma-separated), unchanged
#
webhooks:
feishu_url: "" # 飞书机器人的 webhook URL多账号用 ; 分隔)
dingtalk_url: "" # 钉钉机器人的 webhook URL多账号用 ; 分隔)
wework_url: "" # 企业微信机器人的 webhook URL多账号用 ; 分隔)
wework_msg_type: "markdown" # 企业微信消息类型markdown(群机器人) 或 text(个人微信应用)
telegram_bot_token: "" # Telegram Bot Token多账号用 ; 分隔,需与 chat_id 数量一致)
telegram_chat_id: "" # Telegram Chat ID多账号用 ; 分隔,需与 bot_token 数量一致)
email_from: "" # 发件人邮箱地址
email_password: "" # 发件人邮箱密码或授权码
email_to: "" # 收件人邮箱地址,多个收件人用逗号分隔
email_smtp_server: "" # SMTP服务器地址可选留空自动识别
email_smtp_port: "" # SMTP端口可选留空自动识别
ntfy_server_url: "https://ntfy.sh" # ntfy服务器地址默认使用公共服务可改为自托管地址
ntfy_topic: "" # ntfy主题名称多账号用 ; 分隔)
ntfy_token: "" # ntfy访问令牌可选用于私有主题多账号用 ; 分隔)
bark_url: "" # Bark推送URL多账号用 ; 分隔格式https://api.day.app/your_device_key 或自建服务器地址)
slack_webhook_url: "" # Slack Incoming Webhook URL多账号用 ; 分隔)
# 用于让关注度更高的新闻在更前面显示,即用算法重新组合不同平台的热搜排序形成你侧重的热搜,合起来是 1 就行
weight:
rank_weight: 0.6 # 排名权重
frequency_weight: 0.3 # 频次权重
hotness_weight: 0.1 # 热度权重
# name 可以定义任意名称,只具有显示作用,即使项目运行了几天后,忽然改掉 name 也不会影响代码的正常运行
# references: https://github.com/sansan0/TrendRadar/issues/95
platforms:
- id: "toutiao"
name: "今日头条"
- id: "baidu"
name: "百度热搜"
- id: "wallstreetcn-hot"
name: "华尔街见闻"
- id: "thepaper"
name: "澎湃新闻"
- id: "bilibili-hot-search"
name: "bilibili 热搜"
- id: "cls-hot"
name: "财联社热门"
- id: "ifeng"
name: "凤凰网"
- id: "tieba"
name: "贴吧"
- id: "weibo"
name: "微博"
- id: "douyin"
name: "抖音"
- id: "zhihu"
name: "知乎"

View File

@@ -0,0 +1,113 @@
胖东来
于东来
DeepSeek
梁文锋
华为
鸿蒙
HarmonyOS
任正非
比亚迪
王传福
大疆
DJI
宇树
王兴兴
智元
灵犀
稚晖君
彭志辉
黑神话
冯骥
影之刃零
梁其伟
哪吒
饺子
杨宇
!车
!餐
三体
流浪地球
刘慈欣
郭帆
申奥
京东
刘强东
字节
bytedance
张一鸣
特斯拉
马斯克
微软
Microsoft
英伟达
NVIDIA
黄仁勋
AMD
谷歌
google
gemini
deepmind
chatgpt
openai
sora
claude
Anthropic
iphone
ipad
mac
ios
ai
!gai
人工智能
自动驾驶
机器人
国产
中国
美国
日本
韩国
芯片
光刻机
科技
核能
水电站
雅鲁藏布江
新质生产力
月球
登月
火星
宇宙
飞船
航空

View File

@@ -0,0 +1,78 @@
additionalProperties:
formFields:additionalProperties:
formFields:
- default: 8080
envKey: PANEL_APP_PORT_HTTP
labelZh: HTTP 端口
labelEn: HTTP Port
label:
zh: HTTP 端口
en: HTTP Port
description:
zh: "HTTP 端口"
en: "HTTP Port"
required: true
type: number
edit: true
rule: paramPort
- default: ./data
envKey: DATA_PATH
labelZh: 输出路径
labelEn: Output Path
label:
zh: 输出路径
en: Output Path
description:
zh: 生成的报告和数据保存位置
en: Generated reports and data storage location
required: false
type: text
edit: true
- default: "*/30 * * * *"
envKey: CRON_SCHEDULE
labelZh: 定时任务表达式
labelEn: Cron Expression
label:
zh: 定时任务表达式
en: Cron Expression
required: false
type: text
edit: true
- default: cron
envKey: RUN_MODE
labelZh: 运行模式
labelEn: Run Mode
label:
zh: 运行模式
en: Run Mode
required: false
type: select
values:
- label: Cron
value: cron
- label: Once
value: once
edit: true
- default: "false"
envKey: IMMEDIATE_RUN
labelZh: 启动时立即执行一次
labelEn: Execute immediately upon startup
label:
zh: 启动时立即执行一次
en: Execute immediately upon startup
required: false
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
edit: true
- default: "3333"
envKey: MCP_PORT
required: true
type: number
labelEn: MCP_Port
labelZh: MCP端口
edit: true
rule: paramPort

View File

@@ -0,0 +1,37 @@
services:
trend-radar:
image: wantcat/trendradar:4.0.2
container_name: ${CONTAINER_NAME}
restart: always
ports:
- ${PANEL_APP_PORT_HTTP}:8080
volumes:
- ../config:/app/config:ro
- ${DATA_PATH}:/app/output
environment:
- TZ=Asia/Shanghai
- CRON_SCHEDULE=${CRON_SCHEDULE}
- RUN_MODE=${RUN_MODE}
- IMMEDIATE_RUN=${IMMEDIATE_RUN}
networks:
- 1panel-network
labels:
createdBy: Apps
trend-radar-mcp:
image: wantcat/trendradar-mcp:1.1.0
container_name: ${CONTAINER_NAME}-trend-radar-mcp
restart: always
ports:
- ${MCP_PORT}:3333
volumes:
- ../config:/app/config:ro
- ${DATA_PATH}:/app/output
environment:
- TZ=Asia/Shanghai
networks:
- 1panel-network
labels:
createdBy: Apps
networks:
1panel-network:
external: true

69
apps/trendradar/README.md Normal file
View File

@@ -0,0 +1,69 @@
# TrendRadar - 趋势雷达
一个轻量级的多平台趋势监控工具,帮助您实时跟踪各类热点话题和趋势变化。
## 🚀 核心功能
### 📊 多平台数据聚合
- 集成 newsnow 项目 API支持多个主流平台数据获取
- 实时聚合热门话题和趋势数据
- 智能数据清洗、去重和质量优化
- 支持微博、知乎、百度等中文平台热点追踪
### 🤖 AI 智能分析
- 基于人工智能的趋势分析引擎
- 自动识别和分类热点话题
- 趋势预测和发展评估
- 智能关键词提取和主题归纳
- 热度评分和趋势强度分析
### 📈 数据可视化
- 直观的趋势图表和热力图展示
- 多维度数据分析和交叉对比
- 历史趋势回溯和预测展示
- 交互式数据探索界面
- 支持图表导出和分享
### 🔍 实时监控
- 7×24小时持续监控和数据采集
- 实时推送重要趋势变化通知
- 自定义监控规则和关键词过滤
- 异常波动检测和告警机制
- 批量监控任务管理
### 💾 灵活存储架构
- **本地存储**SQLite数据库完全自主可控
- **云端存储**支持S3兼容协议Cloudflare R2、阿里云OSS、腾讯云COS等
- **数据备份**:自动备份和恢复机制
- **存储优化**:数据压缩和归档策略
### 🔌 多种部署方式
- **Docker部署**:一键容器化部署,最稳定简单
- **GitHub Actions部署**:云端自动化运行
- **MCP客户端支持**集成Model Context Protocol
## 🎯 应用场景
- **市场研究**:跟踪行业趋势和竞争动态
- **内容创作**:发现热门话题和创作灵感
- **投资分析**:监控市场情绪和热点板块
- **舆情监控**:实时了解品牌和行业动态
## ⚡ 核心特点
- **轻量部署**:最小化资源占用
- **易用性强**:简洁直观的操作界面
- **高可靠性**:稳定的数据获取和分析
- **可扩展性**:支持多种部署方式
## 🛠️ 技术栈
- Python 后端开发
- SQLite/云存储数据管理
- AI 分析引擎
- RESTful API 接口
- Docker 容器化支持
---
**TrendRadar** - 让趋势洞察变得简单高效

View File

@@ -0,0 +1,69 @@
# TrendRadar - Trend Radar
A lightweight multi-platform trend monitoring tool that helps you track various trending topics and trend changes in real-time.
## 🚀 Core Features
### 📊 Multi-Platform Data Aggregation
- Integrated with newsnow project API for multiple mainstream platforms
- Real-time aggregation of trending topics and data
- Intelligent data cleaning, deduplication, and quality optimization
- Support for Chinese platforms like Weibo, Zhihu, Baidu hot trends tracking
### 🤖 AI-Powered Analysis
- AI-driven trend analysis engine
- Automatic identification and categorization of trending topics
- Trend prediction and development assessment
- Intelligent keyword extraction and topic summarization
- Heat score analysis and trend strength evaluation
### 📈 Data Visualization
- Intuitive trend charts and heatmap displays
- Multi-dimensional data analysis and cross-comparison
- Historical trend retrospection and prediction display
- Interactive data exploration interface
- Support for chart export and sharing
### 🔍 Real-Time Monitoring
- 7×24 continuous monitoring and data collection
- Real-time push notifications for important trend changes
- Customizable monitoring rules and keyword filtering
- Anomaly detection and alert mechanisms
- Batch monitoring task management
### 💾 Flexible Storage Architecture
- **Local Storage**: SQLite database, fully autonomous and controllable
- **Cloud Storage**: S3-compatible protocol support (Cloudflare R2, Alibaba Cloud OSS, Tencent Cloud COS, etc.)
- **Data Backup**: Automatic backup and recovery mechanisms
- **Storage Optimization**: Data compression and archival strategies
### 🔌 Multiple Deployment Options
- **Docker Deployment**: One-click containerized deployment, most stable and simple
- **GitHub Actions Deployment**: Cloud-based automated operation
- **MCP Client Support**: Integrated with Model Context Protocol
## 🎯 Use Cases
- **Market Research**: Track industry trends and competitive dynamics
- **Content Creation**: Discover trending topics and creative inspiration
- **Investment Analysis**: Monitor market sentiment and hot sectors
- **Reputation Monitoring**: Stay updated on brand and industry dynamics
## ⚡ Core Features
- **Lightweight Deployment**: Minimal resource footprint
- **High Usability**: Simple and intuitive interface
- **High Reliability**: Stable data acquisition and analysis
- **Scalability**: Multiple deployment options supported
## 🛠️ Tech Stack
- Python backend development
- SQLite/Cloud storage data management
- AI analysis engine
- RESTful API interface
- Docker containerization support
---
**TrendRadar** - Making trend insights simple and efficient

30
apps/trendradar/data.yml Normal file
View File

@@ -0,0 +1,30 @@
name: TrendRadar
tags:
- 实用工具
title: 多平台热点推送
description: 多平台热点推送
additionalProperties:
key: trendradar
name: TrendRadar
tags:
- Tool
shortDescZh: 多平台热点推送
shortDescEn: Multi-platform Hot Content Push
description:
en: Multi-platform Hot Content Push
zh: 多平台热点推送
zh-Hant: 多平台熱點推送
ja: マルチプラットフォームホットコンテンツプッシュ
ms: Tolakan Kandungan Panas Pelbagai Platform
pt-br: Push de Conteúdo Quente Multiplataforma
ru: Мультиплатформенная пуш-рассылка горячего контента
ko: 멀티 플랫폼 핫 콘텐츠 푸시
type: tool
crossVersionUpdate: true
limit: 0
website: https://github.com/sansan0/TrendRadar
github: https://github.com/sansan0/TrendRadar
document: https://github.com/sansan0/TrendRadar
architectures:
- amd64
- arm64

View File

@@ -0,0 +1,187 @@
app:
version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version"
show_version_update: true # 控制显示版本更新提示,如果 false则不接受新版本提示
# 时区配置(影响所有时间显示、推送窗口判断、数据存储)
# 常用时区:
# - Asia/Shanghai (北京时间 UTC+8)
# - America/New_York (美东时间 UTC-5/-4)
# - Europe/London (伦敦时间 UTC+0/+1)
# 完整时区列表: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
timezone: "Asia/Shanghai"
# 存储配置
storage:
# 存储后端选择: local / remote / auto
# - local: 本地 SQLite + TXT/HTML 文件
# - remote: 远程云存储S3 兼容协议,支持 R2/OSS/COS 等)
# - auto: 自动选择GitHub Actions 环境且配置了远程存储则用 remote否则用 local
backend: "auto"
# 数据格式选项
formats:
sqlite: true # 主存储(必须启用)
txt: false # 是否生成 TXT 快照
html: false # 是否生成 HTML 报告(⚠️ 邮件推送必须设为 true否则会报错
# 本地存储配置
local:
data_dir: "output" # 数据目录
retention_days: 0 # 本地数据保留天数0 = 不清理)
# 远程存储配置S3 兼容协议)
# 支持: Cloudflare R2, 阿里云 OSS, 腾讯云 COS, AWS S3, MinIO 等
# 建议将敏感信息配置在 GitHub Secrets 或环境变量中
remote:
# 数据保留天数0 = 不清理远程数据)
retention_days: 0
# S3 兼容配置
endpoint_url: "" # 服务端点(或环境变量 S3_ENDPOINT_URL
# Cloudflare R2: https://<account_id>.r2.cloudflarestorage.com
# 阿里云 OSS: https://oss-cn-hangzhou.aliyuncs.com
# 腾讯云 COS: https://cos.ap-guangzhou.myqcloud.com
bucket_name: "" # 存储桶名称(或环境变量 S3_BUCKET_NAME
access_key_id: "" # 访问密钥 ID或环境变量 S3_ACCESS_KEY_ID
secret_access_key: "" # 访问密钥(或环境变量 S3_SECRET_ACCESS_KEY
region: "" # 区域(可选,部分服务商需要,或环境变量 S3_REGION
# 数据拉取配置(从远程同步到本地)
# 用于 MCP Server 等场景爬虫存到远程MCP 拉取到本地分析
pull:
enabled: false # 是否启用启动时自动拉取
days: 7 # 拉取最近 N 天的数据0 = 不拉取)
crawler:
request_interval: 1000 # 请求间隔(毫秒)
enable_crawler: true # 是否启用爬取新闻功能,如果 false则直接停止程序
use_proxy: false # 是否启用代理false 时为关闭
default_proxy: "http://127.0.0.1:10801"
# 🔸 daily当日汇总模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当日所有匹配新闻 + 新增新闻区域
# • 适用场景:日报总结、全面了解当日热点趋势
#
# 🔸 current当前榜单模式
# • 推送时机:按时推送(默认每小时推送一次)
# • 显示内容:当前榜单匹配新闻 + 新增新闻区域
# • 适用场景:实时热点追踪、了解当前最火的内容
#
# 🔸 incremental增量监控模式
# • 推送时机:有新增才推送
# • 显示内容:新出现的匹配频率词新闻
# • 适用场景:避免重复信息干扰
# 推送模式选择
report:
mode: "daily" # 可选: "daily"|"incremental"|"current"
rank_threshold: 5 # 排名高亮阈值
sort_by_position_first: false # 排序优先级true=先按配置位置排序false=先按热点条数排序
max_news_per_keyword: 0 # 每个关键词最大显示数量0=不限制
reverse_content_order: false # 内容顺序false=热点词汇统计在前true=新增热点新闻在前
notification:
enable_notification: true # 是否启用通知功能,如果 false则不发送手机通知
message_batch_size: 4000 # 消息分批大小(字节)(这个配置别动)
dingtalk_batch_size: 20000 # 钉钉消息分批大小(字节)(这个配置也别动)
feishu_batch_size: 30000 # 飞书消息分批大小(字节)
bark_batch_size: 4000 # Bark消息分批大小字节
slack_batch_size: 4000 # Slack消息分批大小字节
batch_send_interval: 3 # 批次发送间隔(秒)
feishu_message_separator: "━━━━━━━━━━━━━━━━━━━" # feishu 消息分割线
max_accounts_per_channel: 3 # 每个渠道最大账号数量,建议不超过 3
# 🕐 推送时间窗口控制(可选功能)
# 用途:限制推送的时间范围,避免非工作时间打扰
# 适用场景:
# - 只想在工作日白天接收推送(如 09:00-18:00
# - 希望在晚上固定时间收到汇总(如 20:00-22:00
push_window:
enabled: false # 是否启用推送时间窗口控制,默认关闭
# 注意GitHub Actions 执行时间不稳定,时间范围建议至少留足 2 小时
# 如果想要精准的定时推送,建议使用 Docker 部署在个人服务器上
time_range:
start: "20:00" # 推送时间窗口开始(北京时间)
end: "22:00" # 推送时间窗口结束(北京时间)
once_per_day: true # 每天在时间窗口内只推送一次,如果 false则窗口内每次执行都推送
# ⚠️⚠️⚠️ 重要安全警告 / IMPORTANT SECURITY WARNING ⚠️⚠️⚠️
#
# 🔴 请务必妥善保管好 webhooks不要公开!!!
# 🔴 如果你以 fork 的方式将本项目部署在 GitHub 上,请勿在下面填写任何 webhooks
# 🔴 而是将 webhooks 填入 GitHub SecretSettings → Secrets and variables → Actions
# 🔴 否则:
# - 轻则:手机上收到大量垃圾广告推送
# - 重则webhook 被滥用造成严重安全隐患(如恶意消息轰炸、钓鱼链接等)
#
# 🔴 NEVER expose webhooks publicly!!!
# 🔴 If deploying via GitHub fork, DO NOT fill webhooks below
# 🔴 Instead, add them to GitHub Secrets (Settings → Secrets and variables → Actions)
# 🔴 Consequences of exposure:
# - Minor: Spam notifications flooding your devices
# - Severe: Webhook abuse leading to security incidents (malicious messages, phishing links, etc.)
#
# ⚠️⚠️⚠️ 多账号推送说明 / MULTI-ACCOUNT PUSH NOTICE ⚠️⚠️⚠️
#
# 🔸 多账号支持:
# • 请使用分号(;)分隔多个账号,如:"url1;url2;url3"
# • 示例telegram_bot_token: "token1;token2" 对应 telegram_chat_id: "id1;id2"
# • 对于需要配对的配置(如 Telegram 的 token 和 chat_id数量必须一致
# • 每个渠道最多支持 max_accounts_per_channel 个账号(见上方配置)
# • 邮箱已支持多收件人(逗号分隔),保持不变
#
# 🔸 Multi-Account Support:
# • Use semicolon(;) to separate multiple accounts, e.g., "url1;url2;url3"
# • Example: telegram_bot_token: "token1;token2" with telegram_chat_id: "id1;id2"
# • For paired configs (e.g., Telegram token and chat_id), quantities must match
# • Each channel supports up to max_accounts_per_channel accounts (see above config)
# • Email already supports multiple recipients (comma-separated), unchanged
#
webhooks:
feishu_url: "" # 飞书机器人的 webhook URL多账号用 ; 分隔)
dingtalk_url: "" # 钉钉机器人的 webhook URL多账号用 ; 分隔)
wework_url: "" # 企业微信机器人的 webhook URL多账号用 ; 分隔)
wework_msg_type: "markdown" # 企业微信消息类型markdown(群机器人) 或 text(个人微信应用)
telegram_bot_token: "" # Telegram Bot Token多账号用 ; 分隔,需与 chat_id 数量一致)
telegram_chat_id: "" # Telegram Chat ID多账号用 ; 分隔,需与 bot_token 数量一致)
email_from: "" # 发件人邮箱地址
email_password: "" # 发件人邮箱密码或授权码
email_to: "" # 收件人邮箱地址,多个收件人用逗号分隔
email_smtp_server: "" # SMTP服务器地址可选留空自动识别
email_smtp_port: "" # SMTP端口可选留空自动识别
ntfy_server_url: "https://ntfy.sh" # ntfy服务器地址默认使用公共服务可改为自托管地址
ntfy_topic: "" # ntfy主题名称多账号用 ; 分隔)
ntfy_token: "" # ntfy访问令牌可选用于私有主题多账号用 ; 分隔)
bark_url: "" # Bark推送URL多账号用 ; 分隔格式https://api.day.app/your_device_key 或自建服务器地址)
slack_webhook_url: "" # Slack Incoming Webhook URL多账号用 ; 分隔)
# 用于让关注度更高的新闻在更前面显示,即用算法重新组合不同平台的热搜排序形成你侧重的热搜,合起来是 1 就行
weight:
rank_weight: 0.6 # 排名权重
frequency_weight: 0.3 # 频次权重
hotness_weight: 0.1 # 热度权重
# name 可以定义任意名称,只具有显示作用,即使项目运行了几天后,忽然改掉 name 也不会影响代码的正常运行
# references: https://github.com/sansan0/TrendRadar/issues/95
platforms:
- id: "toutiao"
name: "今日头条"
- id: "baidu"
name: "百度热搜"
- id: "wallstreetcn-hot"
name: "华尔街见闻"
- id: "thepaper"
name: "澎湃新闻"
- id: "bilibili-hot-search"
name: "bilibili 热搜"
- id: "cls-hot"
name: "财联社热门"
- id: "ifeng"
name: "凤凰网"
- id: "tieba"
name: "贴吧"
- id: "weibo"
name: "微博"
- id: "douyin"
name: "抖音"
- id: "zhihu"
name: "知乎"

View File

@@ -0,0 +1,113 @@
胖东来
于东来
DeepSeek
梁文锋
华为
鸿蒙
HarmonyOS
任正非
比亚迪
王传福
大疆
DJI
宇树
王兴兴
智元
灵犀
稚晖君
彭志辉
黑神话
冯骥
影之刃零
梁其伟
哪吒
饺子
杨宇
!车
!餐
三体
流浪地球
刘慈欣
郭帆
申奥
京东
刘强东
字节
bytedance
张一鸣
特斯拉
马斯克
微软
Microsoft
英伟达
NVIDIA
黄仁勋
AMD
谷歌
google
gemini
deepmind
chatgpt
openai
sora
claude
Anthropic
iphone
ipad
mac
ios
ai
!gai
人工智能
自动驾驶
机器人
国产
中国
美国
日本
韩国
芯片
光刻机
科技
核能
水电站
雅鲁藏布江
新质生产力
月球
登月
火星
宇宙
飞船
航空

View File

@@ -0,0 +1,78 @@
additionalProperties:
formFields:additionalProperties:
formFields:
- default: 8080
envKey: PANEL_APP_PORT_HTTP
labelZh: HTTP 端口
labelEn: HTTP Port
label:
zh: HTTP 端口
en: HTTP Port
description:
zh: "HTTP 端口"
en: "HTTP Port"
required: true
type: number
edit: true
rule: paramPort
- default: ./data
envKey: DATA_PATH
labelZh: 输出路径
labelEn: Output Path
label:
zh: 输出路径
en: Output Path
description:
zh: 生成的报告和数据保存位置
en: Generated reports and data storage location
required: false
type: text
edit: true
- default: "*/30 * * * *"
envKey: CRON_SCHEDULE
labelZh: 定时任务表达式
labelEn: Cron Expression
label:
zh: 定时任务表达式
en: Cron Expression
required: false
type: text
edit: true
- default: cron
envKey: RUN_MODE
labelZh: 运行模式
labelEn: Run Mode
label:
zh: 运行模式
en: Run Mode
required: false
type: select
values:
- label: Cron
value: cron
- label: Once
value: once
edit: true
- default: "false"
envKey: IMMEDIATE_RUN
labelZh: 启动时立即执行一次
labelEn: Execute immediately upon startup
label:
zh: 启动时立即执行一次
en: Execute immediately upon startup
required: false
type: select
values:
- label: "True"
value: "true"
- label: "False"
value: "false"
edit: true
- default: "3333"
envKey: MCP_PORT
required: true
type: number
labelEn: MCP_Port
labelZh: MCP端口
edit: true
rule: paramPort

View File

@@ -0,0 +1,37 @@
services:
trend-radar:
image: wantcat/trendradar:latest
container_name: ${CONTAINER_NAME}
restart: always
ports:
- ${PANEL_APP_PORT_HTTP}:8080
volumes:
- ../config:/app/config:ro
- ${DATA_PATH}:/app/output
environment:
- TZ=Asia/Shanghai
- CRON_SCHEDULE=${CRON_SCHEDULE}
- RUN_MODE=${RUN_MODE}
- IMMEDIATE_RUN=${IMMEDIATE_RUN}
networks:
- 1panel-network
labels:
createdBy: Apps
trend-radar-mcp:
image: wantcat/trendradar-mcp:latest
container_name: ${CONTAINER_NAME}-trend-radar-mcp
restart: always
ports:
- ${MCP_PORT}:3333
volumes:
- ../config:/app/config:ro
- ${DATA_PATH}:/app/output
environment:
- TZ=Asia/Shanghai
networks:
- 1panel-network
labels:
createdBy: Apps
networks:
1panel-network:
external: true

BIN
apps/trendradar/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB