ข้ามไปยังเนื้อหาเอกสาร

ภาพรวมการติดตั้งและการโฮสต์ระบบด้วยตนเอง (Self-Hosting)

Aqiled เป็นระบบสารสนเทศเพื่อการบริหารจัดการโรงเรียน (School Information System) แบบโอเพนซอร์สและเป็นอิสระ สร้างขึ้นเพื่อส่งเสริมความเป็นอิสระของสถาบันการศึกษา โรงเรียน มูลนิธิ หรือนักพัฒนาสามารถขอรับซอร์สโค้ด นำไปติดตั้งบนโครงสร้างพื้นฐานของตนเอง และรักษาการเป็นเจ้าของข้อมูลของนักเรียนได้อย่างสมบูรณ์

พร้อมใช้งานแล้ว. ตรวจสอบล่าสุดเมื่อ: 26 ตุลาคม 2026.

สถาปัตยกรรมของระบบ

Aqiled ประกอบด้วย 3 องค์ประกอบหลัก:

  1. Back-End API (/back-end): พัฒนาด้วย .NET 8/9/10 และ PostgreSQL 18 ทำหน้าที่จัดการตรรกะทางธุรกิจ การยืนยันตัวตน สิทธิ์ความปลอดภัยระดับแถว (Row-Level Security), Hangfire สำหรับงานเบื้องหลัง และ SignalR สำหรับการแจ้งเตือนแบบเรียลไทม์
  2. Main Application (/front-end): พัฒนาด้วย React, Vite, Tailwind CSS และ TypeScript ใช้งานโดยครู บุคลากร ผู้บริหาร นักเรียน และผู้ปกครอง
  3. Platform Admin Portal (/admin-portal): ใช้เฉพาะผู้ให้บริการแพลตฟอร์มในสภาพแวดล้อมแบบหลายโรงเรียน (Multi-Tenant) โดยจะปิดการใช้งานในการติดตั้งแบบโรงเรียนเดี่ยว (Single-School)
  1. 1ฮาร์ดแวร์เซิร์ฟเวอร์และ OS
  2. 2PostgreSQL 18 พร้อม RLS
  3. 3บริการ .NET API
  4. 4รีเวิร์สพร็อกซี Nginx/Caddy
  5. 5เว็บแอปพลิเคชัน React

รูปแบบการติดตั้ง (Deployment Modes)

Aqiled รองรับ 2 รูปแบบการติดตั้ง:

  • โหมดโรงเรียนเดี่ยวแบบเฉพาะเจาะจง (Dedicated Single-School - แนะนำสำหรับโอเพนซอร์ส):
    • แต่ละโรงเรียนจะทำงานบนเซิร์ฟเวอร์หรือคอนเทนเนอร์แยกอิสระของตนเอง
    • ใช้ข้อมูลประจำตัวฐานข้อมูลเฉพาะ และล็อกตัวระบุ deploymentidentity ของโรงเรียน
    • ปิดการใช้งานฟังก์ชัน SuperAdmin การลงทะเบียนตัวอย่าง และการกำหนดเส้นทางข้ามโรงเรียน
    • หน้าบ้าน (Front-End) จะเชื่อมต่อไปยังเส้นทาง /api ภายในเครื่องโดยตรง
  • โหมดผู้เช่าหลายราย (Multi-Tenant):
    • แพลตฟอร์มเดียวดูแลจัดการหลายโรงเรียน โดยแยกข้อมูลด้วย PostgreSQL Row-Level Security

แผนผังคู่มือการติดตั้ง

เพื่อให้การติดตั้งระบบของคุณเป็นไปอย่างราบรื่น โปรดศึกษาคู่มือตามลำดับดังนี้:

  1. ข้อกำหนดเบื้องต้นของระบบและฐานข้อมูล — ขนาดฮาร์ดแวร์ ข้อกำหนด PostgreSQL 18 และการตั้งค่าสิทธิ์ฐานข้อมูล
  2. เลือกรูปแบบการติดตั้งของคุณ:
  3. การตั้งค่าเริ่มต้นโรงเรียนและโหมดโรงเรียนเดี่ยว — รันคำสั่ง provision-school และกำหนดค่า Tenant ID
  4. รีเวิร์สพร็อกซี SSL และเว็บซ็อกเก็ต — กำหนดค่า Nginx หรือ Caddy สำหรับ SSL และ SignalR
  5. การแก้ไขปัญหาการติดตั้งและการดำเนินงาน — ตรวจสอบสถานะความพร้อม (/health/ready) และวิธีแก้ไขข้อผิดพลาดทั่วไป