C3EQUALZz/PixErase

GitHub: C3EQUALZz/PixErase

一个基于 Clean Architecture 构建的开源情报处理平台,集成图像取证、网络侦察和 OSINT 操作能力,面向生产环境设计。

Stars: 4 | Forks: 0

PixErase (OSINT Service)

*一个将 Clean Architecture 应用于 OSINT (开源情报) 平台的研究项目。* 基于 Robert Martin (又名 Uncle Bob) 的原则构建。 ## 技术栈 ### 后端 | 工具 | 作用 | |-----------------------|-----------------------------------------------| | **FastAPI** | 高性能异步 REST 框架 | | **Dishka** | IoC 容器 (替代 FastAPI DI) | | **Taskiq + RabbitMQ** | 异步任务队列 & 消息代理 | | **PostgreSQL** | 主关系型存储 | | **Redis** | 缓存 & Taskiq 结果后端 | | **MinIO** | S3 兼容对象存储 | | **OpenCV** | 图像处理库 | | **rembg** | AI 驱动背景去除 | | **Httpx** | 请求外部 HTTP 服务的库 | | **OpenTelemetry** | 分布式追踪与可观测性 | ### 监控与可观测性 | 工具 | 作用 | |----------------|----------------------------------| | **Prometheus** | 指标存储的时间序列数据库 | | **Loki** | 集中式日志存储 | | **Grafana** | 仪表板与可视化 | | **Tempo** | 分布式追踪后端 | | **Vector** | 日志 / 指标收集与传输 | ## 功能特性 - **图像处理**: 压缩、旋转、灰度转换、背景去除、水印去除、放大 - **EXIF 分析**: 从图像中提取元数据 (相机设置、GPS 坐标、时间戳) - **网络侦察**: IP 地址分析、端口扫描、域名调查 - **OSINT 操作**: DNS 记录分析、子域名发现、证书透明度监控 ## 快速开始 ### 前置条件 - Docker + Docker Compose - Git - Python 3.12+ (用于本地开发) ### 设置 ``` git clone https://github.com/C3EQUALZz/PixErase cd PixErase/backend cp .env.dist .env just up ``` ### 默认端点 | 服务 | URL | |---------------------------|--------------------------------| | **后端 API** (Swagger) | http://localhost:8080/api/docs | | **Grafana** | http://localhost:3000 | | **MinIO 控制台** | http://localhost:9001 | | **RabbitMQ UI** | http://localhost:15672 | ### 配置管理 遵循 twelve-factor app 方法论,配置通过环境变量 (通常称为 env vars) 进行管理。这些变量提供了一种灵活的方式,可以在不更改代码库的情况下跨部署调整设置。与传统的配置文件不同,它们最大限度地降低了意外包含在版本控制中的风险,并提供了一种通用的、独立于语言和操作系统的配置方法。 - 后端配置: `src/pix_erase/setup/config/` - 示例环境文件: `.env.dist` 配置系统利用这些 env vars 来定义服务设置。 有关详细文档,请参阅 [环境变量](docs/getting-started/configuration.md)。 遵循 twelve-factor app 方法论,配置通过环境变量 (通常称为 env vars) 进行管理。这些变量提供了一种灵活的方式,可以在不更改代码库的情况下跨部署调整设置。与传统的配置文件不同,它们最大限度地降低了意外包含在版本控制中的风险,并提供了一种通用的、独立于语言和操作系统的配置方法。 ## 文档 项目文档使用 MkDocs 构建并可在 [GitHub Pages](https://github.com/C3EQUALZz/PixErase) 访问。 API 文档可通过 [Swagger](http://localhost:8080/api/docs) 访问,由 FastAPI 自动生成。无需手动更新 —— 直接使用即可。 ## 架构方法: Clean Architecture ### 核心概念 最好的架构通常在开发后期、代码库成型后才会浮现。 ### 指导原则 依赖倒置 (来自 SOLID) 驱动了我们对依赖注入的使用。依赖关系从外部工具流向内部业务逻辑,确保后者保持隔离。这将应用程序分为两个主要层: 1. **内部层:** 业务逻辑 (用例)。 2. **外部层:** 工具 (数据库、服务器、代理、外部库)。 包含业务逻辑的 **内部层规则** 应当是纯净的。它应该: - 不从外部层导入。 - 仅依赖 Python 的标准库。 - 通过接口与外部层通信。 业务逻辑与 PostgreSQL 或 REST API 等具体细节无关 —— 它与抽象接口交互。 **外部层约束** 有其他限制: - 组件 (例如 HTTP 服务器、数据库) 彼此之间不直接交互。 - 与核心层的通信通过接口进行。 - 数据格式经过调整以适应业务逻辑。 例如,通过 HTTP 请求从数据库获取数据: ``` HTTP → Use Case Use Case → Repository (e.g., Postgres) Use Case ← Repository HTTP ← Use Case ``` 更复杂的流程可能如下所示: ``` HTTP → Use Case Use Case → Repository Use Case ← Repository Use Case → External API Use Case ← External API Use Case → Message Queue Use Case ← Message Queue Use Case → Repository Use Case ← Repository HTTP ← Use Casearly identical, differing mainly in naming conventions. ``` ## 开发 ### 本地开发设置 关键命令: - `just up-dev` - 启动基础设施服务 - `just test` - 运行测试 - `just lint` - 运行 linting 检查 - `just static` - 运行静态分析 ## 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) ## 作者 **Danil Kovalev** - [GitHub 主页](https://github.com/C3EQUALZz) 欲了解更多详情,请参阅 [文档](docs/)。
标签:AV绕过, Clean Architecture, DNS分析, Docker, ESC4, EXIF分析, FastAPI, Grafana, MinIO, OpenCV, OSINT, PostgreSQL, Python, RabbitMQ, 人工智能, 元数据提取, 动态插桩, 图像处理, 威胁情报, 安全防御评估, 实时处理, 密码管理, 开发者工具, 异步任务队列, 插件系统, 搜索引擎查询, 数据统计, 无后门, 水印消除, 测试用例, 用户模式Hook绕过, 目标识别, 端口扫描, 背景移除, 自定义请求头, 证书透明度, 请求拦截, 进程保护, 逆向工具