コンテンツにスキップ

技術スタック

選定一覧

層 選定 理由
言語 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 │  │
│   └─────────────────────┴──────────────────────────────┘  │
│                                                          │
│   外部向け 2 セットの REST API:                            │
│   · /api/v1   パネル API(JWT + RBAC)                     │
│   · /agent/v1 Agent API(Token + コマンドホワイトリスト)    │
└──────────────────────────────────────────────────────────┘