构建于
GLoong 平台

GLoong 将航空、航海、地震、冲突、网络和 OSINT 数据源聚合到一张 GPU 渲染的地图上,并将其中每一项都作为普通的 HTTP 接口暴露出来。这与仪表盘所使用的 API 完全相同。不存在独立的、特权性的内部层级。

55
接口
20+
实时数据源
0
所需密钥
指南

概览

地图上的每个数据点都通过 MapLibre GL 经由 WebGL 渲染,这正是界面能在 60fps 下承载数千个并发实体的原因。该应用是一个 Next.js 应用:地图和 HUD 在浏览器中运行,每个实时数据源在到达客户端之前,都会由 /api 下的某个路由进行归一化处理。

这一边界是刻意为之的。上游数据源在格式、速率限制和 CORS 策略上各不相同,因此 API 层会吸收这些差异,并返回一致的 JSON。

无需凭证
航空、航海、卫星、火灾、地震、天气、新闻和 CVE 数据均来自公开的免密钥数据源。密钥仅对可选的 RECON 扫描器以及对提高速率限制有用。
指南

快速开始

每个读取接口都是一个返回 JSON 的普通 GET 请求。下面的内容都不需要鉴权 —— 可将其中任意一条粘贴到终端中运行。

curl -s https://gloong.live/api/flights | jq '.commercial_flights | length'

如果你只需数量而非几何信息,/api/stats 是适合轮询的接口 —— 它将繁重的数据源压缩为少数几个计数器。

聚合计数器
curl -s https://gloong.live/api/stats
# { "stats": { "flights": 9241, "sats": 2043, "cctv": 2117,
#              "weather": 58, "nuclear": 191, "incidents": 412 },
#   "timestamp": "2026-07-29T12:00:00Z" }

OSINT 查询每次只接受一个对象,因此可以在管道中整洁地组合使用:

被动子域名枚举
curl -s "https://gloong.live/api/osint/certs?domain=example.com" | jq -r '.subdomains[]'
写代码前先试一试
下面参考中的每个 GET 接口都有一个 发送请求 按钮,可针对本实例运行并显示实时响应。
指南

自托管

GLoong 需要 Node 20+ 且无需数据库。本地实例只需三条命令:

本地开发
git clone <your-repository-url>
cd gloong
npm install
npm run dev        # http://localhost:3000

如需生产构建,或运行检查:

构建与测试
npm run build && npm start
npm run lint
npm test           # vitest
npm run test:live  # includes tests that hit live upstream feeds

仓库随附了 Dockerfiledocker-compose.yml。容器内部始终监听 3000 端口;GLOONG_PORT控制其发布到的主机端口。

Docker
cp .env.example .env
docker compose up -d
指南

配置

.env.example 复制为 .env。在填写任何内容之前请先阅读该文件 —— 它列出的大多数密钥都是为未来的数据源预留的,并不会被当前代码使用。

应用读取的配置项

SCANNER_URL / SCANNER_KEY
指向独立的 RECON 扫描器后端。SCANNER_KEY 必须等于该后端的 GLOONG_KEY。两者都留空即可禁用 RECON —— 此时 /api/scanner 按设计返回 503。
SDK_INGEST_KEY
/api/sdk/ingest 的共享密钥。该接口默认关闭:在此未设置时,数据摄入功能被禁用并返回 503。
GLOONG_TELEGRAM_CHANNELS
用于 Telegram OSINT 层的、以逗号分隔的公开 Telegram 频道名(不含 @),会覆盖精心挑选的默认集合。
GLOONG_PORT
UI 发布到的主机端口。容器自身始终监听 3000。

可选 —— 仅用于提高速率限制

FIRMS_API_KEYOPENSKY_CLIENT_IDOPENSKY_CLIENT_SECRET N2YO_API_KEYAIS_API_KEY。除非你扩展代码以优先使用它们,否则将使用公开的免密钥数据源。

密钥卫生
使用 openssl rand -hex 32 生成密钥。切勿提交已填写的 .env —— 只有 .env.example 才应纳入版本控制。
指南

界面指南

地图填满整个视口,每个控件都浮动在其上方。面板是切换式的而非目标式的,因此你可以构建出自己所需的确切视图,并丢弃其余部分。

图层面板
左侧栏。用于单独开关各个数据源,并承载主题选择器。
RECON 工具包
DNS、WHOIS、证书透明度、IP 和 ASN 丰富化、数据泄露检查、制裁名单、CVE 查询、端口扫描。
情报流
跨越每个已启用数据源的传入事件流。
区域档案
右键点击地图,可获取覆盖该位置的每个数据源的综合摘要。
实体图
关联分析,一次将一个节点扩展为其相邻节点。
状态栏
左侧为社区和文档链接,随后是价格和重大地震事件的实时滚动条。
指南

快捷键

在应用内随时按 ? 即可调出此列表。

F切换全屏
S分享当前视图
L切换图层面板
M切换市场面板
I切换情报流
R重置为全局视图
?显示帮助
ESC关闭面板 / 弹窗

在这些文档中,⌘K(或 /)可从页面任意位置打开搜索。

API 参考

约定

所有路由都位于服务该应用的源上的 /api 之下。读取为 GET,写入为带 JSON body 的 POST。除 /api/sdk/ingest/api/github-webhook 外,均无需鉴权。

错误
失败时会返回非 2xx 状态码并附带 `error` 键,通常还伴有携带上游消息的 `detail`。大多数路由会代理第三方,因此应将上游失败视为常态 —— 读取 body 之前先检查 response.ok。
缓存
路由会设置各自的 Cache-Control TTL:快速变化的数据源通常为 45–60 秒,静态参考数据最多可达一天。轮询频率高于 TTL 只会增加负载而毫无收益。当某个路由声明了 refreshInterval 时,请使用该值。
速率限制
三个 AI 接口允许每个 IP 每分钟 5 次请求,超出则返回 429。其他路由间接受其上游数据源的限制。
时间戳
每个时间戳字段均为 UTC 下的 ISO 8601。
负责任地使用
RECON 扫描器和 /api/osint/sweep 会对指定的目标产生流量。请仅将其指向你拥有或已获得书面授权进行测试的基础设施。其余 OSINT 路由是被动式的,仅查询第三方数据集,而非对象本身。
API 参考

系统

存活探测与聚合计数器。可被监控系统安全轮询。

API 参考

航空与航天

航空器、轨道物体与日球物理。

API 参考

地球与环境

地震、火灾、大气与轨道影像数据源。

API 参考

地缘政治

冲突区、前线、事件流与国家级风险。

API 参考

媒体与市场

新闻聚合、实时广播流与金融工具。

API 参考

监控与基础设施

摄像头网络、固定基础设施、海上交通与切片/流代理。

API 参考

网络威胁

漏洞、攻击与恶意软件遥测数据。

API 参考

OSINT 工具包

RECON 面板背后的查询工具。每个接口接收单一对象并返回归一化结果,因此便于在脚本中组合使用。

API 参考

侦察扫描器

主动扫描,委托给独立的后端执行,因此 Web 层自身从不运行扫描。

API 参考

实体图谱

对平台其他位置浮现的实体进行关联分析。

API 参考

AI 分析

由 Gemini 支持的、针对您所提供数据源的关联分析。三者均为 POST 接口,且均限速为每个 IP 每分钟 5 次请求。

API 参考

Polybolos SDK

将外部平台的实体推送到通用作战图中,并以流的形式回传合并后的画面。

API 参考

Webhooks

来自外部服务的入站钩子。