跳轉到

技術棧

選型一覽

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