技术栈¶
选型一览¶
| 层 | 选型 | 理由 |
|---|---|---|
| 语言 | Go 1.25+ | 单二进制、交叉编译、并发好、生态成熟 |
| Web 框架 | Gin | 生态最大、中间件丰富 |
| 数据库 | SQLite | 嵌入式、零运维,贴合单机场景 |
| SQLite 驱动 | glebarez/sqlite(纯 Go) |
无 CGO,交叉编译省心 |
| ORM | GORM | 开发效率高,复杂查询可回落原生 SQL |
| 实时通信 | gorilla/websocket | 终端、日志 tail、指标推送 |
| 任务调度 | robfig/cron | 面板计划任务 |
| 系统监控 | gopsutil | 跨平台 CPU / 内存 / 磁盘 / 进程 |
| Docker | 官方 SDK | 容器 / 镜像 / 卷 / 网络 |
| 认证 | JWT + refresh | 无状态 API + 可选会话 |
| 2FA | TOTP(RFC 6238) | 登录二次验证 |
| AI | 抽象 LLM 接口 | OpenAI / DeepSeek / Qwen / Ollama 统一适配 |
| 前端 | Vue 3 + ECharts | 现代 SPA + 图表 |
总体架构¶
┌──────────────────────────────────────────────────────────┐
│ OpsMini(单机面板,单二进制) │
│ │
│ Vue3 SPA(构建产物 embed 进二进制) │
│ │ HTTP / WebSocket │
│ ┌────▼───────────────────────────────────────────────┐ │
│ │ Gin Router → 中间件(认证/权限/审计/限流/安全入口) │ │
│ │ Controller → Service → Repository │ │
│ └────┬──────────────────────────────────────────────┘ │
│ │ │
│ ┌────▼───────────────────────────────────────────────┐ │
│ │ SQLite(业务数据) │ 系统资源适配层 │ │
│ │ users/cron/... │ Docker SDK / crontab / │ │
│ │ │ gopsutil / 文件系统 / SSH │ │
│ └─────────────────────┴──────────────────────────────┘ │
│ │
│ 对外两套 REST API: │
│ · /api/v1 面板 API(JWT + RBAC) │
│ · /agent/v1 Agent API(Token + 命令白名单) │
└──────────────────────────────────────────────────────────┘