โครงสร้างไดเรกทอรี¶
การแบ่งเลเยอร์¶
ภายในแต่ละโมดูลแบ่งเป็นสามเลเยอร์อย่างเคร่งครัด:
Controller (HTTP handler): แยกวิเคราะห์และตรวจสอบพารามิเตอร์ เรียก Service ประกอบการตอบกลับ
→ Service (ตรรกะธุรกิจ): จัดการ Repository กับทรัพยากรระบบ ขอบเขตทรานแซกชัน
→ Repository (GORM): การเข้าถึงข้อมูลล้วน ๆ ไม่เขียนตรรกะธุรกิจ
การจัดระเบียบไดเรกทอรี¶
opsmini/
├── cmd/
│ └── agent/main.go # จุดเข้าโปรแกรมหลัก
├── internal/
│ ├── router/ # การลงทะเบียนเส้นทาง เวอร์ชัน API
│ ├── middleware/ # การยืนยันตัวตน สิทธิ์ การตรวจสอบ การจำกัดอัตรา จุดเข้าความปลอดภัย
│ ├── api/v1/ # Controller (แยกแพ็กเกจตามโมดูล)
│ ├── service/ # Service (แยกแพ็กเกจตามโมดูล)
│ ├── repository/ # Repository (แยกแพ็กเกจตามโมดูล)
│ ├── model/ # โมเดลข้อมูล GORM
│ ├── config/ # การโหลดการกำหนดค่า
│ └── pkg/ # ยูทิลิตี้ทั่วไป (jwt/response/store)
├── web/ # frontend Vue3 (embed หลัง build)
│ ├── index.html # จุดเข้า SPA
│ └── static/ # ไลบรารี static เช่น echarts/vue/xterm
├── configs/ # ตัวอย่างการกำหนดค่าเริ่มต้น
├── docs/ # เอกสาร
└── install/ # สคริปต์ติดตั้งแบบคลิกเดียว
โมดูลหลัก¶
| โมดูล | หน้าที่ |
|---|---|
auth |
ล็อกอิน / ออกจากระบบ เซสชัน 2FA RBAC |
setting |
การกำหนดค่าพาเนล ธีม การแสดง/ซ่อนเมนู ภาษา |
dashboard / monitor |
การรวมเมตริก การเก็บข้อมูลอนุกรมเวลา กฎการแจ้งเตือน |
website / database / appstore |
เว็บไซต์ ฐานข้อมูล ร้านซอฟต์แวร์ |
container |
Docker คอนเทนเนอร์ / อิมเมจ / วอลุ่ม / เน็ตเวิร์ก |
system / file / terminal |
ทรัพยากรระบบ ไฟล์ เว็บเทอร์มินัล |
cron / log |
งานตามกำหนดเวลา ล็อก |
ai |
การเชื่อมต่อ LLM บริบท การรันด้วยภาษาธรรมชาติ (NL) |
security |
baseline, FIM, ภัยคุกคาม, ไฟร์วอลล์, ความปลอดภัยการล็อกอิน |
agent |
REST API ภายนอก (/agent/v1) |