技術棧¶
選型一覽¶
| 層 | 選型 | 理由 |
|---|---|---|
| 語言 | 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 + 命令白名单) │
└──────────────────────────────────────────────────────────┘