跳转至

技术栈

选型一览

层 选型 理由
语言 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 + 命令白名单)              │
└──────────────────────────────────────────────────────────┘