chilli

小辣椒 Chilli

**系统遥测与网络安全监控平台** [![Rust](https://img.shields.io/badge/Rust-1.75+-orange.svg)](https://www.rust-lang.org) [![Axum](https://img.shields.io/badge/Axum-0.7-blue.svg)](https://github.com/tokio-rs/axum) [![SeaORM](https://img.shields.io/badge/SeaORM-0.12-green.svg)](https://www.sea-ql.org/SeaORM) [![Vue.js](https://img.shields.io/badge/Vue.js-3.4+-4FC08D.svg)](https://vuejs.org) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ![小辣椒系统监控平台界面预览](/chilli/docs/demo.png)

项目简介

小辣椒 (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 运行
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

功能模块

仪表盘

系统概览页面,展示关键指标:

进程管理

安全扫描

Docker 安全

IP 访问审计


API 接口

系统状态

方法 路径 描述
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 手动触发同步

IP 审计

方法 路径 描述
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>


🌐 全球捐赠通道

国内用户


🔵 支付宝(小企鹅在收金币哟~)

🟢 微信支付(小绿龙在收金币哟~)

国际用户


📌 开发者社交图谱

技术交流

社交互动