aivrar/foglight
GitHub: aivrar/foglight
Foglight 是一个本地运行的 Windows 桌面应用,通过单一可执行文件聚合实时全球事件数据,为用户提供态势感知仪表盘。
Stars: 0 | Forks: 0
# Foglight




[](LICENSE)
**Foglight** 是一个本地优先的桌面态势室,用于监控实时全球事件:地震、恶劣天气、冲突警报、人道主义报告、市场行情、开放网络活动以及实时新闻视频,所有信息都汇聚在一个信息密集的仪表盘中。
Windows 版本是一个**单一的原生桌面 `.exe` 文件**。它捆绑了 Python、本地 HTTP 服务器、WebView 桌面外壳和应用 UI。终端用户无需安装 Python、WSL、Docker、Git、Node 或任何 Linux 发行版。
Foglight 采用 MIT 许可证,所有人可免费使用、修改、分发和基于它进行构建。
## 截图

## 功能概述
Foglight 监控公共数据流,并将其转化为单一的作战视图:
- 全球地图叠加层,用于显示地震、危险区域、天气、冲突、国际空间站、火灾、航班以及船舶/航空来源(配置可选密钥后)。
- 实时事件面板,涵盖 USGS 地震、NWS 警报、NOAA 气旋、GDACS、EONET、ReliefWeb、GDELT 和 RSS 资讯流。
- 市场与互联网脉搏面板,监控比特币、加密货币、外汇、大宗商品、GitHub、SEC EDGAR、维基百科编辑、Hacker News 和 Reddit。
- 实时电视直播嵌入,支持主要新闻流,当嵌入被阻止时提供 YouTube 备用链接。
- 本地设置,用于管理面板可见性、观察列表、RSS 源、API 密钥和环境音效提示。
## 存在意义
Foglight 专为那些希望快速、本地、无需账户就能概览全球动态的人士而建:天气风险、地震、冲突警报、人道主义更新、公共市场信号、互联网活动和实时视频。它可用作开源情报桌面、新闻编辑室副监控器、墙壁显示屏、应急感知屏幕或始终开启的桌面指挥中心。
## 功能矩阵
| 领域 | 已包含 |
|---|---|
| 桌面版本 | 单个 `Foglight.exe`,原生 WebView2 窗口,无需安装程序 |
| 实时地图 | 暗色全球地图,地震标记,天气多边形,冲突热点,危险区域,国际空间站,可选火灾/航班/船舶图层 |
| 危险监控 | USGS 地震、火山,NOAA 气旋,GDACS 灾害,EONET 自然事件,NWS 警报,海啸信息源 |
| 冲突与新闻 | GDELT 冲突信息源,联合国、德国之声、法国24、BBC、NPR、半岛电视台、国防/网络安全 RSS 信息源 |
| 人道主义 | ReliefWeb 态势报告和更新流 |
| 市场 | 比特币内存池/手续费/区块,加密货币行情,外汇,大宗商品,可选 FRED/Finnhub 密钥 |
| 互联网脉搏 | GitHub 公开事件,SEC EDGAR 文件,维基百科编辑,Hacker News,Reddit |
| 实时电视 | 主要 YouTube 新闻直播嵌入,默认频道设置,外部备用链接 |
| 本地设置 | 面板开关,观察列表,自定义 RSS 信息源,可选 API 密钥,环境音效开关 |
| 隐私模式 | 纯本地应用状态,本地服务器,密钥掩码,无 Foglight 云账户 |
完整详情请参阅 [docs/FEATURES.md](docs/FEATURES.md)。
## 快速开始
下载最新的发行版资产:
**[下载 Foglight.exe](https://github.com/aivrar/foglight/releases/latest/download/Foglight.exe)**
发行页面:
**[github.com/aivrar/foglight/releases/latest](https://github.com/aivrar/foglight/releases/latest)**
运行它:
```
Foglight.exe
```
这是普通用户的标准路径。Foglight 会在 `127.0.0.1` 上启动一个本地服务器,打开一个原生 WebView 窗口,并将运行时状态存储在:
```
%LOCALAPPDATA%\Foglight\
```
使用应用内的**关闭**按钮来停止本地服务器并关闭应用。
## 系统要求
针对用户:
- Windows 10/11
- Microsoft Edge WebView2 运行时
- 需要网络连接以获取实时数据流
- 无需管理员权限
- 无需系统预装 Python
- 无需 WSL、Docker、Git 或 Node
现代 Windows 系统通常已预装 WebView2。如果 WebView 启动失败,Foglight 会回退到在默认浏览器中打开本地仪表盘。
## 面板
| 面板 | 来源 | 显示内容 |
|---|---|---|
| 世界地图 | Leaflet, CARTO, OpenStreetMap | 全球基础地图和叠加层 |
| 地震 | USGS GeoJSON | 近期地震活动 |
| 恶劣天气 | NWS api.weather.gov | 美国当前警报和天气多边形 |
| 冲突观察 | GDELT, 联合国, 德国之声, 法国24, 国防 RSS | 冲突导向信息流 |
| 主要危险 | NOAA NHC, GDACS, USGS, EONET | 气旋、灾害、火山、大型地震 |
| 人道主义态势报告 | ReliefWeb RSS | 人道主义更新 |
| 比特币脉搏 | mempool.space | 手续费、内存池、区块、难度 |
| 市场 | CoinPaprika, Frankfurter, Stooq | 加密货币、外汇、大宗商品 |
| 新闻滚动条 | 配置的 RSS 信息源 | 滚动标题条 |
| 维基百科编辑 | Wikimedia EventStreams | 近期公开编辑 |
| GitHub 脉搏 | GitHub Events API | 公开开发者活动 |
| SEC EDGAR | SEC Atom 订阅源 | 当前文件 |
| HN + Reddit | Firebase HN API, Reddit JSON | 互联网趋势面板 |
| 实时电视 | YouTube 直播嵌入 | 实时新闻视频和外部备用 |
完整来源和致谢列表请参见 [docs/DATA_SOURCES.md](docs/DATA_SOURCES.md) 和 [CREDITS.md](CREDITS.md)。
## 可选 API 密钥
Foglight 无需密钥即可工作,但这些可选集成可以解锁更多地图和市场图层:
| 密钥 | 解锁内容 |
|---|---|
| AISstream | 实时全球船舶位置 |
| NASA FIRMS | MODIS/VIIRS 近实时火灾探测 |
| OpenSky | 认证飞行器数据 |
| OpenWeatherMap | 全球天气扩展 |
| FRED | 美国宏观指标 |
| Finnhub | 指数、收益、市场新闻 |
密钥存储在本地 `%LOCALAPPDATA%\Foglight\state\settings.json` 中。设置 API 在返回给 UI 前会对存储的密钥值进行掩码处理。
## 项目结构
```
foglight/
|-- .github/
| |-- ISSUE_TEMPLATE/
| `-- pull_request_template.md
|-- assets/
| |-- foglight.ico
| `-- foglight-icon.png
|-- docs/
| |-- screenshots/
| |-- BUILD_WINDOWS.md
| |-- DATA_SOURCES.md
| |-- FEATURES.md
| |-- FILE_TREE.md
| |-- RELEASE_CHECKLIST.md
| `-- REPOSITORY_SETUP.md
|-- web/
| `-- app.js
|-- build_windows.py
|-- foglight_native.py
|-- foglight_native.spec
|-- foglight_server.py
|-- foglight_spec.md
|-- index.html
|-- requirements-build.txt
|-- CREDITS.md
|-- CHANGELOG.md
|-- CONTRIBUTING.md
|-- SECURITY.md
|-- LICENSE
`-- README.md
```
更详细的文件映射请参阅 [docs/FILE_TREE.md](docs/FILE_TREE.md)。
## 从源码构建
终端用户可以从发布页下载 `Foglight.exe` 并直接运行,无需 Python。以下步骤用于从源码重新构建可执行文件。
开发者构建要求:
- Windows
- Python 3.13+
- 依赖项见 [requirements-build.txt](requirements-build.txt)
构建:
```
python -m pip install -r requirements-build.txt
python .\build_windows.py
```
输出:
```
dist\Foglight.exe
```
该可执行文件是一个发布产物,应附加到 GitHub Releases,而非提交到代码仓库。
详细的构建说明位于 [docs/BUILD_WINDOWS.md](docs/BUILD_WINDOWS.md)。
## 本地开发
直接运行服务器:
```
$env:FOGLIGHT_APP_DIR = (Get-Location).Path
$env:FOGLIGHT_CACHE_DIR = "$env:TEMP\foglight-cache"
$env:FOGLIGHT_STATE_DIR = "$env:TEMP\foglight-state"
$env:FOGLIGHT_LOG_DIR = "$env:TEMP\foglight-logs"
python .\foglight_server.py 9787
```
然后打开:
```
http://127.0.0.1:9787/
```
无头打包冒烟测试:
```
$env:FOGLIGHT_NO_BROWSER = "1"
$env:FOGLIGHT_PORT = "19877"
.\dist\Foglight.exe
```
## 安全与隐私
- 原生启动器将服务器绑定到 `127.0.0.1`。
- 更改状态的端点需要同源请求。
- RSS 代理拒绝 localhost 和私有网络目标。
- API 密钥仅存储在本地 Foglight 状态目录中。
- `/api/settings` 仅返回密钥状态,不返回完整的存储密钥值。
- 不使用任何 Foglight 账户或托管后端。
披露和本地风险说明请参见 [SECURITY.md](SECURITY.md)。
## 发布流程
1. 捕获最终截图并放置在 `docs/screenshots/` 下。
2. 运行源码检查:
python -m py_compile .\foglight_server.py .\foglight_native.py .\build_windows.py
node --check .\web\app.js
3. 构建 exe:
python .\build_windows.py
4. 冒烟测试 `dist\Foglight.exe`。
5. 创建 GitHub Release 并将 `dist\Foglight.exe` 上传为 `Foglight.exe`。
完整清单:[docs/RELEASE_CHECKLIST.md](docs/RELEASE_CHECKLIST.md)。
## 致谢
Foglight 建立在公共数据提供商、开源库和平台工具之上。致谢信息记录在 [CREDITS.md](CREDITS.md) 中,包括 Leaflet、OpenStreetMap、CARTO、PyInstaller、pywebview、Microsoft Edge WebView2、pythonnet、Pillow 以及仪表盘使用的公共数据提供商。
## 许可证
MIT 许可证 - 所有人免费使用。请参阅 [LICENSE](LICENSE)。第三方服务、库、地图瓦片和数据信息源仍受其自身许可和条款约束。
标签:CSV输出, HTTP/HTTPS抓包, OSINT工具, Python内置, WebView2, Windows桌面应用, 事件追踪, 互联网活动, 仪表板, 全球事件监控, 全球地图覆盖, 公开数据源, 冲突警报, 单文件程序, 地震监控, 天气预警, 实时情报, 实时数据流, 实时新闻视频, 市场数据, 态势感知, 数据可视化, 数据聚合, 新闻聚合, 无需安装, 本地优先应用, 桌面工具, 紧急警报, 自定义脚本, 自然灾害, 逆向工具, 金融市场, 风险监控