ข้ามไปที่เนื้อหา

โครงสร้างไดเรกทอรี

การแบ่งเลเยอร์

ภายในแต่ละโมดูลแบ่งเป็นสามเลเยอร์อย่างเคร่งครัด:

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)