christianpeirson/argos-edge

GitHub: christianpeirson/argos-edge

将多个 SDR 与网络分析 CLI 整合到单一 SvelteKit 仪表板中,在边缘设备上实现射频、网络与地理定位数据的实时态势感知。

Stars: 1 | Forks: 0

ARGOS — run RF, cyber, and intelligence-gathering operations from one console

快速开始 · 文档 · 架构 · 配置 · 安全


CI Release License: MIT Node >=22.11 Platform Stack

Argos tactical dashboard — live MIL-STD-2525 map

## 什么是 Argos? Argos 将原生 SDR 和网络分析 CLI —— `hackrf_sweep`、Kismet、`gpsd`、`grgsm` —— 封装在一个单一的 Svelte 5 仪表板之后,通过 WebSocket 和 SSE 将每个工具的数据流传输到一个操作员视图中。它原生运行在 NVIDIA Jetson AGX Orin 或 Raspberry Pi 5 上,将完整的 RF 和网络图像整合到一个界面中,而不是分散在不同的终端。 ## 快速开始 ``` git clone https://github.com/christianpeirson/argos-edge.git cd argos-edge sudo bash scripts/ops/setup-host.sh # installs host tools + services, generates .env npm install npm run dev ``` 打开 `http://:5173`;战术仪表板将会加载。有关前置条件和生产环境(systemd)部署,请参阅[安装说明](#installation)。 ## 功能特性 每一行对应目前集成的工具。 | 领域 | 工具 | 访问 / 传输 | | -------------------------- | ------------------------------------------------ | --------------------------------------------- | | **频谱** | `hackrf_sweep`、OpenWebRX、NovaSDR、SDR++ | 通过 WebSocket 的瀑布图 + 峰值保持 | | **蜂窝网络** | `grgsm`、GSM/IMSI 监控 | 实时扫描视图 + 控制台 | | **Wi-Fi / 蓝牙** | Kismet、Blue Dragon (BLE 测量) | 通过 SSE 的测量表 | | **地理定位与制图** | `gpsd`、信号地理定位 | Leaflet + MapLibre GL,MIL-STD-2525 符号体系 | | **RF 传播** | Signal-Server、Navy APM | 地图叠加层 | | **态势感知** | TAK / Cursor-on-Target 导出 | 广播 + 证书管理 | | **网络侦察** | 授权使用的攻击框架 (`tactical/`) | 集成的 PTY 终端 (node-pty + xterm) | | **AI 助手** | Anthropic Claude | 控制台内 Agent 面板 (在线) | ## 硬件要求 | 组件 | 备注 | 必需 | | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ----------- | | 计算设备 — NVIDIA Jetson AGX Orin (Ubuntu 22.04) _或_ Raspberry Pi 5 8GB (Kali) | Jetson 是主要目标;Raspberry Pi 5 是最初的备选平台 | 是 | | HackRF One (或 USRP B205mini) | 频谱捕获;B205mini 用于宽频 Blue Dragon BLE | 是 | | u-blox GPS 加密狗 | 定位 | 推荐 | | 外部 Wi-Fi 适配器 | Wi-Fi 扫描(受管 NIC 保留用于互联网连接) | 是 | | USB 3.0 供电集线器 | 外围设备供电 | 是 | | 500GB+ NVMe SSD | 存储 | 推荐 | ## 安装说明 **前置条件:** 在全新主机上需要 Node `>=22.11`、`git` 和 `sudo`。 **主要路径 — 原生主机 (Jetson AGX Orin / Ubuntu 22.04)。** 请遵循官方指南:**[`docs/install/jetson-aarch64.md`](docs/install/jetson-aarch64.md)**。总结如下: 1. `sudo bash scripts/ops/setup-host.sh` —— 安装 Node、Kismet、`gpsd`、udev 规则以及第三方工具容器;生成 `.env`。 2. 配置 `.env`(参见[配置](#configuration))。 3. `npm run build`,然后通过 systemd 部署:`sudo bash scripts/ops/install-services.sh` 和 `systemctl start argos-final`。 **备选路径 — Raspberry Pi 5 / Kali。** 参见 [`SETUP.md`](SETUP.md)。 ## 架构 ``` SDR / network hardware (HackRF, USRP, Wi-Fi, GPS) → native CLI tool wrappers (hackrf_sweep, Kismet, gpsd, grgsm) → Node server + SvelteKit (adapter-node, custom ws/upgrade handler) → real-time transport (WebSocket + SSE) → Svelte 5 dashboard (runes + IBM Carbon) ``` | 层级 | 技术 | | ------------- | ------------------------------------------------------------------------ | | 前端 | SvelteKit 2 · Svelte 5 (runes) · IBM Carbon (`carbon-components-svelte`) | | 语言 | TypeScript (strict) | | 服务器 | Node `>=22.11` · `adapter-node` (自定义 `ws` 升级处理程序) | | 实时 | WebSocket (`ws`) + SSE | | 存储 | better-sqlite3 | | 终端 | node-pty + xterm | | 可观测性 | OpenTelemetry · Sentry | **基于:** [HackRF](https://greatscottgadgets.com/hackrf/) · [Kismet](https://www.kismetwireless.net/) · [gpsd](https://gpsd.gitlab.io/gpsd/) · [gr-gsm](https://github.com/ptrkrysik/gr-gsm) · [OpenWebRX](https://www.openwebrx.de/) · [GNU Radio](https://www.gnuradio.org/) · [MapLibre](https://maplibre.org/) · [Leaflet](https://leafletjs.com/) · [TAK](https://tak.gov/)。 有关框架设计理由请参见 [ADR-0001](docs/adr/0001-frontend-framework-evaluation.md),有关 IBM Carbon UI 决策请参见 [ADR-0006](docs/adr/0006-adopt-ibm-carbon-design-system.md)。 ## SDR 选项 | 工具 | 类型 | 访问 | HackRF | | --------- | ------ | -------------- | ------ | | OpenWebRX | Docker | iframe `:8073` | 共享 | | NovaSDR | Docker | iframe `:9002` | 共享 | | SDR++ | Native | noVNC `:6082` | 共享 | ## 配置 运行时配置通过环境变量进行 —— 将 [`.env.example`](.env.example) 复制到 `.env`。所有变量都会在启动时在 `src/lib/server/env.ts` 中进行验证,并且安装脚本会在首次运行时生成所需的值。 | 变量 | 必需 | 用途 | | --------------------- | -------- | ---------------------------------------------------------------------------------------- | | `ARGOS_API_KEY` | 是 | API 身份验证(默认拒绝;最少 32 个字符) | | `ANTHROPIC_API_KEY` | 可选 | 启用 AI 助手面板 ([console.anthropic.com](https://console.anthropic.com/)) | | `STADIA_MAPS_API_KEY` | 可选 | 矢量地图瓦片 ([stadiamaps.com](https://stadiamaps.com/)) | | `OPENCELLID_API_KEY` | 可选 | 基站数据库 ([opencellid.org](https://opencellid.org/)) | ## 图库
Argos live status bar with MGRS grid
Live status bar — WiFi / SDR / GPS / TAK status with MGRS grid and Zulu time
## 文档 - **入门指南** — [Jetson 安装指南](docs/install/jetson-aarch64.md) · [SETUP.md](SETUP.md) - **指南** — [数据库](docs/General%20Documentation/database-guide.md) · [WebSocket/SSE](docs/General%20Documentation/websocket-guide.md) · [部署](docs/General%20Documentation/deployment.md) · [MCP 服务器](docs/General%20Documentation/mcp-servers.md) - **运维** — [`docs/operations/`](docs/operations/) (测量操作手册、内存可靠性) - **架构决策** — [`docs/adr/`](docs/adr/) (ADR 0001–0006) ## 资源与参考 - [Jetson 移植说明](docs/jetson-port-notes.md) — aarch64/Tegra 细节 - [CI/CD pipeline 规范](docs/ci-cd-pipeline-spec.md) — 分支模型、门控和必需检查 - [架构决策记录](docs/adr/) — 设计理由日志 - **源流** — Argos 最初是 [Graveside2022/Argos](https://github.com/Graveside2022/Argos) 的 Jetson/aarch64 移植版;此仓库是目前活跃的开发主线。 ## 故障排除 | 问题 | 解决方案 | | -------------------------------- | ------------------------------------------- | | 无 DNS / 无法解析主机名 | `sudo tailscale set --accept-dns=true` | | 无法获取 GPS 定位 | 移步至有天空视野的室外,等待约 2 分钟 | | 页面空白 | 检查 `npm run dev` 输出的错误信息 | | 未检测到 Wi-Fi 适配器 | 拔下并重新插入 USB 集线器 | | 未检测到 HackRF | 在主机上运行 `hackrf_info` | | 端口冲突 | `sudo lsof -i :5173` | ## 安全 有关私密的漏洞报告,请参见 [SECURITY.md](SECURITY.md)。Argos 集成了仅供**授权**培训、研究和测试使用的攻击性和信号情报工具 —— 您需自行确保遵守所有适用法律和授权。 ## 许可证 Argos 基于 MIT 许可证发布 —— 参见 [LICENSE](LICENSE)。
标签:MITM代理, SDR软件无线电, SvelteKit, 信号情报, 战术指控系统, 插件系统, 用户代理, 系统分析, 网络分析, 网络安全, 自动化攻击, 请求拦截, 隐私保护