atlas-crew/synapse

GitHub: atlas-crew/synapse

边缘防护与舰队情报平台,提供高性能 WAF 与集中化舰队管理。

Stars: 1 | Forks: 1

```html

Edge Protection Platform

边缘防护与舰队情报平台
一个多语言单仓仓,包含基于 Rust 的 WAF/边缘引擎、Node.js 舰队情报 API、React 仪表盘以及配套的 TypeScript 库。

Rust Node.js React 19 License Pingora

在线演示 · 文档

## 架构 ``` apps/ signal-horizon/ api/ → Fleet intelligence API (Node.js, Express, Prisma) ui/ → Dashboard (React 19, Vite, Tailwind) shared/ → Shared types and defaults synapse-waf/ → Edge WAF engine (Rust, Cloudflare Pingora) synapse-client/ → CLI and client for Synapse APIs (TypeScript) packages/ synapse-api/ → Reusable Synapse API client library (TypeScript) ``` **Signal Horizon** 是舰队情报控制平面,负责汇聚边缘传感器的遥测数据、相关攻击态势,并驱动整个 Synapse 节点舰队的协同防御决策。 **Synapse WAF** 是基于 Cloudflare Pingora 框架构建的高性能 WAF 与边缘代理。它处理请求检查、实体追踪、风险评分、DLP 扫描、行为阻断以及边缘处的攻击态势关联。 ## 安装 ### Docker(推荐) ``` # 完整平台 docker compose up -d # see site docs for compose.yml # 或独立运行 Synapse docker run -d -p 6190:6190 -p 6191:6191 \ -v $(pwd)/config.yaml:/etc/synapse/config.yaml:ro \ nickcrew/synapse-waf:latest ``` ### npm ``` npm install -g @atlascrew/horizon # Horizon server npm install -g @atlascrew/synapse-waf # Synapse WAF npm install -g @atlascrew/synapse-client # Synapse CLI npm install @atlascrew/synapse-api # Client library ``` 请参阅[文档站点](https://atlascrew.dev)获取完整的配置与部署指南。 ## 开发 ## 前置条件 | 工具 | 版本 | 用途 | |------|---------|---------| | [Node.js](https://nodejs.org) | >= 20 | TypeScript 项目 | | [pnpm](https://pnpm.io) | >= 10 | 包管理 | | [Rust](https://rustup.rs) | nightly | Synapse WAF | | [just](https://github.com/casey/just) | >= 1.0 | 任务运行器 | | [Redis](https://redis.io) | 任意 | 会话状态与作业队列 | | [PostgreSQL](https://www.postgresql.org) | >= 15 | Signal Horizon 数据库 | | [ClickHouse](https://clickhouse.com) | >= 24 | 时序遥测(开发环境可选) | ## 快速开始 ### 首次设置 ``` # 1. 启动基础设施服务 brew services start redis # Redis on :6379 open -a Postgres # PostgreSQL on :5432 (or brew services start postgresql) just ch-start # ClickHouse on :8123 # 2. 验证服务正在运行 just services # 3. 安装依赖项 just install pnpm rebuild esbuild prisma @prisma/client @prisma/engines # 4. 设置数据库 cp apps/signal-horizon/api/.env.example apps/signal-horizon/api/.env # 编辑 .env — 将 DATABASE_URL 设置为匹配您的本地 PostgreSQL 凭据 just db-generate # Generate Prisma client just db-migrate # Apply schema to PostgreSQL just ch-init # Apply schema to ClickHouse just db-seed # Seed tenants, sensors, and API keys ``` ### 日常使用 ``` just dev # Start everything in parallel ``` 启动后: | 服务 | 地址 | |---------|-----| | Signal Horizon UI | | | Signal Horizon API | | | Synapse 代理 | | | Synapse 管理 API | | 初始化种子会创建一个默认租户,API 密钥为 `dev-dashboard-key` —— UI 会自动使用,无需手动配置认证。 ### 基础设施服务 ``` just services # Check status of Redis, PostgreSQL, ClickHouse just ch-start # Start ClickHouse (launchd) just ch-stop # Stop ClickHouse just ch-init # Initialize ClickHouse schema ``` ## 开发 所有通用任务均可通过根目录的 `justfile` 调用。运行 `just` 查看完整列表。 ### 开发服务器 ``` just dev # All services in parallel just dev-horizon # Signal Horizon API + UI only just dev-synapse # Synapse WAF only ``` ### 构建 ``` just build # All projects (Nx dependency graph) just build-horizon # Signal Horizon API + UI just build-synapse # Synapse WAF (release) just build-synapse-dev # Synapse WAF (debug, faster compile) just build-synapse-api # synapse-api library just build-synapse-client # synapse-client CLI ``` ### 测试 ``` just test # Everything just test-horizon # Signal Horizon API + UI just test-synapse # Synapse WAF (cargo test) just test-synapse-heavy # Synapse WAF integration tests just test-synapse-api # synapse-api library just test-synapse-client # synapse-client CLI ``` ### 代码检查与类型检查 ``` just lint # ESLint + Clippy across all projects just type-check # TypeScript type-checking just check-synapse # Clippy + rustfmt check just fmt-synapse # Auto-format Rust code ``` ### CI ``` just ci # Full pipeline: lint → type-check → build → test just ci-ts # TypeScript projects only just ci-rust # Rust only (clippy, build, test) ``` ### 数据库(Signal Horizon) ``` just db-migrate # Run Prisma migrations (dev) just db-seed # Seed the database just db-reseed # Reset + reseed just db-studio # Open Prisma Studio ``` ## 已发布包 | 包 | 源码路径 | 注册表 | |---------|--------|----------| | nickcrew/horizon | `apps/signal-horizon/` | [Docker Hub](https://hub.docker.com/r/nickcrew/horizon) | | nickcrew/synapse-waf | `apps/synapse-waf/` | [Docker Hub](https://hub.docker.com/r/nickcrew/synapse-waf) | | @atlascrew/horizon | `apps/signal-horizon/` | [npm](https://www.npmjs.com/package/@atlascrew/horizon) | | @atlascrew/synapse-waf | `apps/synapse-waf/` | [npm](https://www.npmjs.com/package/@atlascrew/synapse-waf) | | @atlascrew/synapse-api | `packages/synapse-api/` | [npm](https://www.npmjs.com/package/@atlascrew/synapse-api) | | @atlascrew/synapse-client | `apps/synapse-client/` | [npm](https://www.npmjs.com/package/@atlascrew/synapse-client) | | synapse-waf | `apps/synapse-waf/` | [crates.io](https://crates.io/crates/synapse-waf) | ## 工作区工具 - **[pnpm](https://pnpm.io)** — 支持工作区的包管理 - **[Nx](https://nx.dev)** — 构建编排与依赖关系图(运行 `just graph` 可视化) - **[just](https://github.com/casey/just)** — 任务运行器(根目录 `justfile`) - **[Cargo](https://doc.rust-lang.org/cargo/)** — Rust 构建系统(在 `synapse-waf` 内自包含) Synapse WAF 在 `apps/synapse-waf/justfile` 中也拥有自己的 `justfile`,提供演示与服务管理的配方。 ## 许可证 | 组件 | 许可证 | |-----------|---------| | Signal Horizon(API、UI) | [AGPL-3.0-only](LICENSE) | | Synapse WAF | [AGPL-3.0-only](LICENSE) | | @atlascrew/synapse-api | [MIT](packages/synapse-api/package.json) | | @atlascrew/synapse-client | [MIT](apps/synapse-client/package.json) | ```
标签:API网关, AppImage, CLI客户端, Cloudflare, DLP, Docker, Express, GNU通用公共许可证, MITM代理, MITRE ATT&CK, NIDS, Node.js, Pingora, Prisma, React, Rust, Synapse WAF, Syscalls, Tailwind CSS, TypeScript, Vite, WAF, Web应用防火墙, 信号地平线, 可视化界面, 多语言单体仓库, 威胁情报, 安全插件, 安全防御评估, 容器化, 开发者工具, 搜索引擎查询, 攻击防护, 测试用例, 网络流量审计, 自动化攻击, 舰队管理, 行为阻断, 边缘节点, 边缘计算, 边缘防护, 遥测聚合, 集体防御, 风险评分