小辣椒 (Chilli) 是一个基于 Rust + Vue.js 构建的高性能系统遥测与网络安全监控平台。它集成了实时进程监控、安全漏洞扫描、Docker 容器管理、系统状态采集等功能,为开发者和运维人员提供全面的系统可视化和安全态势感知能力。
┌─────────────────────────────────────────────────────────────┐
│ Frontend Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Dashboard │ │ Security │ │ Docker Manager │ │
│ │ 仪表盘 │ │ 安全扫描 │ │ 容器管理 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ Vue 3 + TypeScript │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ HTTP API Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ /health │ │ /api/running│ │ /api/kill/:pid │ │
│ │ 健康检查 │ │ 进程列表 │ │ 终止进程 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │/security/scan│ │/security/docker│ │ /api/processes │ │
│ │ 漏洞扫描 │ │ Docker安全 │ │ 进程详情 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ Axum (Rust) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Business Logic Layer │
│ ┌──────────────────┐ ┌────────────────────────────────┐ │
│ │ Process Monitor │ │ Security Scanner │ │
│ │ 进程监控核心 │ │ 漏洞扫描引擎 │ │
│ └──────────────────┘ └────────────────────────────────┘ │
│ ┌──────────────────┐ ┌────────────────────────────────┐ │
│ │ Docker Security │ │ GitHub Advisory Sync │ │
│ │ 容器安全检测 │ │ 安全公告同步引擎 │ │
│ └──────────────────┘ └────────────────────────────────┘ │
│ ┌──────────────────┐ │
│ │ IP Audit Module │ │
│ │ IP访问审计引擎 │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Data Access Layer │
│ SeaORM (SQLite / MySQL / PostgreSQL) │
└─────────────────────────────────────────────────────────────┘
# 使用 Docker 运行
docker run -d \
--name chilli \
-p 9333:9333 \
-v $(pwd)/data:/data \
ctkqiang/chilli:latest
# 或使用 Docker Compose
docker-compose up -d
访问 http://localhost:9333 即可使用 Web 界面。
# 克隆仓库
git clone https://github.com/ctkqiang/chilli.git
或
git https://gitcode.com/ctkqiang_sr/chilli.git
cd chilli
# 编译后端
cargo build --release
# 编译前端
cd portal
npm install
npm run build
cd ..
# 运行
./target/release/chilli
前端构建后的文件将自动嵌入到后端二进制中,访问 http://localhost:9333 即可使用 Web 界面。
创建 .env 文件:
# 服务端口
PORT=9333
# 数据库配置 (SQLite - 默认)
DATABASE_URL=sqlite://./data/chilli.db
# 或 MySQL
# MYSQL_HOST=localhost
# MYSQL_USER=root
# MYSQL_PASSWORD=password
# MYSQL_DATABASE=chilli
# 或 PostgreSQL
# POSTGRES_HOST=localhost
# POSTGRES_USER=postgres
# POSTGRES_PASSWORD=password
# POSTGRES_DATABASE=chilli
系统概览页面,展示关键指标:
/proc/net/tcp 解析(Linux)或跨平台 listeners 库 fallback| 方法 | 路径 | 描述 |
|---|---|---|
| GET | / |
服务信息 |
| GET | /health |
健康检查 |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /api/running |
获取运行中进程列表 |
| POST | /api/kill/:pid |
终止指定进程 |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /api/security/scan |
执行系统漏洞扫描 |
| GET | /api/security/docker |
扫描 Docker 安全 |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /api/advisories |
获取同步的安全公告 |
| POST | /api/advisories/sync |
手动触发同步 |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /api/ip-access-logs |
获取最近 IP 访问审计记录 |
| 查询参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
limit |
u32 | 50 | 返回记录最大数量 |
| 组件 | 用途 |
|---|---|
| Axum | Web 框架 |
| Tokio | 异步运行时 |
| SeaORM | ORM 框架 |
| Serde | 序列化/反序列化 |
| sysinfo | 系统信息采集 |
| listeners | 端口监听检测 |
| reqwest | HTTP 客户端 |
| 组件 | 用途 |
|---|---|
| Vue 3 | 前端框架 |
| TypeScript | 类型系统 |
| Pinia | 状态管理 |
| Vue Router | 路由管理 |
| vue-i18n | 国际化 |
| Axios | HTTP 客户端 |
| Vite | 构建工具 |
# 运行所有测试
cargo test
# 运行单元测试
cargo test --lib
# 运行集成测试
cargo test --test integration_tests
# 生成测试覆盖率报告
cargo tarpaulin --out Html
chilli/
├── src/ # 后端源码
│ ├── core/ # 核心业务逻辑
│ │ ├── ip_audit.rs # IP 访问审计引擎
│ │ ├── get_running_process.rs # 进程监控
│ │ └── get_security.rs # 安全扫描
│ ├── models/ # 数据模型
│ │ ├── access_log.rs # 访问日志实体
│ │ ├── users.rs # 用户实体
│ │ └── security.rs # 安全漏洞实体
│ ├── routes/ # API 路由
│ │ ├── ip_access.rs # IP 审计 API
│ │ ├── processes.rs # 进程管理 API
│ │ └── security.rs # 安全扫描 API
│ ├── service/ # 服务层
│ │ └── database.rs # 数据库服务
│ ├── utils/ # 工具函数
│ ├── ip_monitor.rs # IP 审计后台监控任务
│ ├── config.rs # 配置管理
│ └── main.rs # 入口文件
├── portal/ # 前端源码
│ ├── src/ # Vue 源码
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia 状态
│ │ └── locales/ # 国际化文件
│ └── dist/ # 构建输出
├── docs/ # 文档和图片
│ └── demo.png # 界面预览图
├── Cargo.toml # Rust 依赖
└── README.md # 项目说明
如果这个项目对你有帮助,请给它一个 ⭐️ 星标!
</div>
🔵 支付宝(小企鹅在收金币哟~) |
🟢 微信支付(小绿龙在收金币哟~) |