QRcode1337/argus

GitHub: QRcode1337/argus

一个基于 Docker 容器化部署的自托管地理空间情报平台,通过整合航班、卫星、船舶、地震、威胁情报等多源数据,在 Cesium 三维地球上实现统一的态势感知与情报可视化。

Stars: 0 | Forks: 0

# ARGUS(VPS 部署) ARGUS 是一个运行在 VPS 上的地理空间情报平台,包含一个 **Docker 化的多服务后端** 和一个 Next.js/Cesium 前端。 此仓库是以下内容的唯一权威来源: - 应用程序代码(`argus-app`、`argus-api`、`ingestor`) - 基础设施(`docker-compose.yml`、`nginx`、`cloudflared`、`infra`) - 运维文档(`docs`、`VPS_CHANGELOG_AND_NEXT_STEPS.md`) ## 架构概述 ARGUS 在 VPS 上以容器形式运行(单主机部署): - **nginx** (`argus_nginx`) 反向代理 / 边缘入口。 - **argus-app** (`argus_app`) Next.js 前端 + 用于数据源代理的 API 路由。 - **argus-api** (`argus_api`) Express 后端(分析、健康检查、服务器 API)。 - **postgis / timescaledb** (`argus_postgis`) 主数据库。 - **titiler** (`argus_titiler`) 栅格瓦片服务。 - **ingestor** (`argus_ingestor`) 定时的数据接入/处理任务(例如,GFS)。 - **cloudflared** (`argus_cloudflared`) Cloudflare Tunnel,用于安全地暴露服务。 所有服务在 `argus_network` 上进行通信。 ## 服务映射 ### 用户请求路径 1. 互联网流量通过 Cloudflare Tunnel / DNS 进入。 2. `cloudflared` 将流量转发至 `nginx`。 3. `nginx` 路由规则: - `/` -> `argus-app` - `/spatial/*` -> Zerve 托管的 spatial FastAPI 应用 - `/api/feeds/*` -> `argus-app` 代理路由 - `/api/*` -> `argus-api` - `/tiles/*` -> `titiler` ### 数据路径 - `ingestor` 将栅格处理输出写入 `data/tiles`。 - `argus-api` 发布可用的分析图层。 - `titiler` 将这些栅格文件作为瓦片端点提供服务。 - `argus-app` 在 Cesium 中渲染叠加图层。 ## 数据源 / 集成 当前的数据源集成包括: - OpenSky 商业航班 - ADS-B 军用航班 - CelesTrak 卫星 - USGS 地震数据 - TFL CCTV + 网络摄像头源 - Cloudflare Radar 中断记录 - AlienVault OTX 威胁脉冲 - FRED 宏观数据源 - AISStream 船舶快照 大多数第三方数据源通过服务端路由进行代理,以避免在浏览器端暴露 CORS/API 密钥。 ## 仓库目录布局 ``` argus/ argus-app/ # Next.js app + Cesium UI + feed proxy routes argus-api/ # Express API service ingestor/ # Data ingestion/processing jobs nginx/ # Nginx config cloudflared/ # Cloudflare tunnel config infra/ # DB init / infra assets data/ # Local data mounts (tiles, etc) docs/ # Architecture plans and technical notes docker-compose.yml ``` ## 在 VPS 上运行(Docker) ### 1) 前置条件 - 已安装 Docker + Docker Compose 插件 - 仓库根目录下存在 `.env` 文件(切勿提交机密信息) ### 2) 启动技术栈 ``` docker compose up -d --build ``` ### 3) 检查健康状态 ``` docker compose ps docker compose logs -f --tail=100 ``` ### 4) 停止技术栈 ``` docker compose down ``` ## 常用操作 ### 仅重新构建 app/api ``` docker compose up -d --build argus-app argus-api ``` ### 重启单个服务 ``` docker compose restart argus-app ``` ### 打开容器 Shell ``` docker compose exec argus-app sh docker compose exec argus-api sh ``` ### 从内部网络验证 API ``` docker compose exec -T argus-api node -e "fetch('http://localhost:3001/api/health').then(r=>r.text()).then(console.log)" ``` ## 环境变量 主要的运行时环境文件:`.env`(位于仓库根目录) 重要的配置项包括(非详尽): - `CESIUM_ION_TOKEN` - `CLOUDFLARE_RADAR_TOKEN` - `OTX_API_KEY` - `FRED_API_KEY`、`FRED_SERIES_ID` - `AISSTREAM_API_KEY`、`AISSTREAM_ENDPOINT` - `OPENSKY_CLIENT_ID`、`OPENSKY_CLIENT_SECRET` - `POSTGRES_DB`、`POSTGRES_USER`、`POSTGRES_PASSWORD` - `CORS_ORIGIN`(`argus-api` 的逗号分隔允许列表) - GlitchTip / Sentry DSNs 请勿提交包含机密信息的文件。`.gitignore` 已排除本地环境变体。 ## 开发说明 - 前端专用文档:`argus-app/README.md` - 基础设施更新与事故记录:`VPS_CHANGELOG_AND_NEXT_STEPS.md` - 大型架构/设计提案:`docs/plans/*` ## Git / 分支规范 - `master` 分支当前用于部署工作。 - 保持提交专注且具备运维可读性。 - 避免提交本地机密文件(`.env*`、凭据、备份配置)。 - 推送前请执行 `git status` 进行检查。 ## 故障排查快速清单 1. `docker compose ps` -> 确认所有服务均已启动。 2. `docker compose logs ` -> 排查错误。 3. 检查路由流程:Cloudflare -> nginx -> 目标服务。 4. 验证瓦片路径一致性:`/data/tiles` 是否按预期挂载。 5. 当数据源路由返回认证错误时,检查相关的环境变量是否已配置。 ## 安全说明 - 在聊天中泄露的机密信息应立即轮换并重新签发。 - 切勿在源代码中硬编码 API 密钥。 - 仅将凭据保存在 `.env` 或机密管理器中。 - 清除提交中残留的 `.bak` / 临时配置文件。 如果您正在接入此仓库,接下来请阅读 `AGENTS.md`。
标签:ADS-B, AIS船舶追踪, AV绕过, CCTV监控, Cesium, Cloudflare Tunnel, Docker, Docker Compose, ESC4, FastAPI, GIS, MITM代理, Mutation, Nginx, OSINT, PostGIS, TimescaleDB, Titiler, VPS部署, 卫星追踪, 反向代理, 可视化, 国际情报平台, 地理空间情报, 地震监测, 威胁情报, 安全防御评估, 开发者工具, 数据摄取, 数据集成, 时空数据, 栅格瓦片服务, 网络中断监控, 自定义脚本, 航班追踪, 请求拦截, 软件分析