VortexV7/Redline-Signal
GitHub: VortexV7/Redline-Signal
实时聚合多平台公开信息并进行情感分析与风险标记的全球态势情报仪表盘。
Stars: 0 | Forks: 0
# Redline Signal




## 概述
**Redline Signal** 是一个监测风格的情报仪表盘,可实时聚合和评分公开的互联网内容。它融合了来自 Reddit、HackerNews、Google News 以及可选的 X/Twitter RSS 源的帖子——为每篇帖子通过情感评分、地理位置元数据和风险标签进行增强——然后将其展示在交互式地图和实时动态流中。
**印度优先融合**策略在保持全球覆盖的同时确保了区域相关性。
## 功能特性
- 🗺️ **实时地图** — 按来源平台着色的地理标记
- 📡 **融合动态流** — 根据重要性、风险级别和区域权重进行排名
- 🧠 **情感分析** — 基于 VADER 的评分(`positive`(正面)、`neutral`(中性)、`negative`(负面))
- 🏷️ **风险标记** — 针对 `security`(安全)和 `pandemic`(疫情)主题的自动分类
- 🔎 **筛选器** — 按平台、国家/州/城市和主题进行筛选
- 🐦 **X/Twitter UX 状态** — 针对 RSS 供应不稳定的情况提供优雅的“即将推出”处理
## 数据来源
| 来源 | 方法 | 可靠性 |
|---|---|---|
| Reddit | 公开 JSON + RSS 备用 | 部分主机可能返回 403 |
| HackerNews | Firebase REST API | 稳定 — 主要备选方案 |
| Google News | 公开 RSS(印度优先 + 全球) | 弹性托管备用 |
| X / Twitter | 通过 Nitter 实例获取公开 RSS | 可选 / 间歇性 |
## 技术栈
| 层级 | 技术 |
|---|---|
| Frontend | Next.js 14, TypeScript, Tailwind CSS, Leaflet |
| Backend | FastAPI, HTTPX, VADER Sentiment |
| 地图图块 | OpenStreetMap |
| 托管 | Vercel (frontend), Render (backend) |
## 项目结构
```
redline-signal/
├── backend/ # FastAPI — ingestion, enrichment, scoring, blending
├── frontend/ # Next.js — App Router, map UI, live feed
└── README.md
```
## 本地开发
### 前置条件
- Python 3.9+
- Node.js 18+
### 1. Backend
```
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
```
健康检查:`http://localhost:8000/health`
### 2. Frontend
```
cd frontend
npm install
```
创建 `frontend/.env.local`:
```
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_SITE_URL=http://localhost:3000
```
```
npm run dev
```
打开:`http://localhost:3000`
## 环境变量
### Backend
| 变量 | 必需 | 描述 |
|---|---|---|
| `FRONTEND_URL` | 是(部署时) | Frontend 允许的 CORS 源 |
| `NITTER_INSTANCE` | 否 | 单个 Nitter 实例 URL |
| `NITTER_INSTANCES` | 否 | 逗号分隔的 Nitter 实例列表 |
### Frontend
| 变量 | 必需 | 描述 |
|---|---|---|
| `NEXT_PUBLIC_API_URL` | 是 | Backend 基础 URL |
| `NEXT_PUBLIC_SITE_URL` | 推荐 | 用于元数据的规范站点 URL |
## API 参考
| 方法 | 端点 | 描述 |
|---|---|---|
| `GET` | `/` | API 元数据和活动源 |
| `GET` | `/health` | 健康状态 |
| `GET` | `/api/mood` | 包含情感、地理和标签的融合实时帖子 |
| `GET` | `/api/mood/stats` | 聚合情感统计 |
| `GET` | `/api/debug/sources` | 源诊断 — 原始和融合计数 |
## 部署
### Backend — Render
| 设置 | 值 |
|---|---|
| 服务类型 | Web Service |
| 根目录 | `backend` |
| 构建命令 | `pip install -r requirements.txt` |
| 启动命令 | `uvicorn main:app --host 0.0.0.0 --port $PORT` |
**环境变量:**
```
FRONTEND_URL=https://
NITTER_INSTANCES=https://nitter.poast.org,https://nitter.privacydev.net,https://nitter.1d4.us
```
### Frontend — Vercel
| 设置 | 值 |
|---|---|
| 根目录 | `frontend` |
**环境变量:**
```
NEXT_PUBLIC_API_URL=https://.onrender.com
NEXT_PUBLIC_SITE_URL=https://
```
## 部署后检查清单
- [ ] `/api/debug/sources` 返回非零的源计数
- [ ] CORS 通过 — `FRONTEND_URL` 与部署的 frontend 域名完全匹配
- [ ] 平台筛选器返回预期的源片段
- [ ] 在 favicon/元数据更改后硬刷新(`Cmd+Shift+R`)以清除浏览器缓存
## .gitignore 要点
确保在推送前排除这些内容:
```
# Python
.venv/
venv/
__pycache__/
*.pyc
.env
# Node
node_modules/
.next/
.env.local
# OS / Editor
.DS_Store
.vscode/
```
## GitHub 元数据
**仓库名称:** `redline-signal`
**描述:** `跨 Reddit、HackerNews、Google News RSS 和可选 X/Twitter RSS 的实时情感与风险情报地图,具有印度优先融合功能。`
**主题:** `fastapi` `nextjs` `typescript` `sentiment-analysis` `leaflet` `openstreetmap` `osint` `dashboard` `reddit` `hackernews` `google-news` `rss` `india`
## 许可证
**保留所有权利。**
本仓库仅出于查看目的开放源代码。未经作者明确书面许可,**禁止**以下行为:
- 复制或重用代码或核心逻辑
- 修改或创建衍生作品
- 再分发本项目的任何部分
- 商业或生产用途
完整条款见 [`LICENSE`](LICENSE)。
标签:AV绕过, ESC4, FastAPI, HackerNews, Leaflet, OSINT, Python, React, Reddit, RSS订阅, Syscalls, Tailwind CSS, TypeScript, URL抓取, VADER, 公共卫生, 地图可视化, 威胁情报, 安全态势感知, 安全插件, 实时仪表盘, 开发者工具, 情感分析, 情报监测, 数据抓取, 数据聚合, 无后门, 社会治安, 自动化攻击, 舆情监控, 逆向工具