Linux Classroom คือเว็บแอปพลิเคชันที่สร้างสภาพแวดล้อมการเรียนรู้ Linux แบบโต้ตอบได้ (Interactive) โดยตรงบนเว็บเบราว์เซอร์ เหมาะสำหรับใช้เป็นเครื่องมือฝึกสอน, จัด Workshop, หรือให้ผู้ที่สนใจได้ทดลองใช้คำสั่ง Linux, Python, และ Rust ได้อย่างปลอดภัยและสะดวกสบาย โดยไม่ต้องติดตั้งอะไรบนเครื่องคอมพิวเตอร์ของผู้เรียน
สามารถใช่ IP ของแต่ละ student ได้แล้วครับ !
และ สามารถ ssh หาเครื่องเพื่อนนักเรียนด้วยกันไ้ดครับ (user : student , password : student)แต่ละเซสชันของผู้ใช้จะถูกแยกออกจากกันอย่างสมบูรณ์ใน Docker container ส่วนตัว ทำให้ผู้เรียนสามารถทดลองทุกอย่างได้อย่างอิสระโดยไม่ส่งผลกระทบต่อระบบหลักหรือผู้ใช้งานคนอื่น

- 🖥️ เทอร์มินัลเต็มรูปแบบ: ใช้งาน Linux (Ubuntu 22.04) ได้จริงผ่านเทอร์มินัลบนหน้าเว็บ
- 🔒 สภาพแวดล้อมที่ปลอดภัย: ผู้ใช้แต่ละคนจะได้ Container ส่วนตัวที่แยกขาดจากกัน
- 🐍 รองรับ Python: ติดตั้ง Python 3 และ
pipมาให้พร้อมใช้งาน สามารถติดตั้ง library เพิ่มเติมและรันสคริปต์ได้ - 🦀 รองรับ Rust: ติดตั้ง Rust toolchain (rustc, cargo) มาให้พร้อมสำหรับเรียนรู้การพัฒนาโปรแกรมด้วย Rust
- 📚 บทเรียนในตัว: มีพาเนลแสดงบทเรียนอยู่ข้างๆ เทอร์มินัล ทำให้ง่ายต่อการเรียนรู้ตาม
- ⚙️ ติดตั้งง่าย: มีสคริปต์
install.pyและuninstall.pyช่วยให้การติดตั้งและลบทำได้ง่าย - 💻 รองรับหลายระบบ: สามารถติดตั้งและใช้งานได้ทั้งบน Windows และ Linux
- Backend: Python, Flask, Flask-Sock
- Virtualization: Docker
- Frontend: HTML, CSS, JavaScript
- Terminal Emulation: Xterm.js
ทำตามขั้นตอนเหล่านี้เพื่อเริ่มใช้งานโปรเจกต์บนเครื่องของคุณ
คุณต้องติดตั้งโปรแกรมพื้นฐานต่อไปนี้ก่อน:
-
Docker Desktop with WSL 2:
- ดาวน์โหลดและติดตั้ง Docker Desktop จาก docker.com
- หมายเหตุ: โปรแกรมติดตั้ง Docker อาจแจ้งให้คุณเปิดใช้งาน WSL 2 (Windows Subsystem for Linux) ซึ่งเป็นเทคโนโลยีที่จำเป็น กรุณาอนุญาตให้โปรแกรมดำเนินการตามขั้นตอนนั้น ซึ่งอาจมีการรีสตาร์ทเครื่อง
- สำคัญ: หลังจากติดตั้งเสร็จสิ้น ต้องเปิดโปรแกรม Docker Desktop ขึ้นมา และรอจนไอคอนรูปวาฬที่ Taskbar นิ่งและขึ้นสถานะว่า "Running"
-
Python 3:
- ทางเลือกที่ 1 (ใช้ Conda/Anaconda): หากคุณใช้ Anaconda/Miniconda อยู่แล้ว คุณสามารถข้ามขั้นตอนนี้ไปได้เลย
- ทางเลือกที่ 2 (ใช้ Python ปกติ):
- วิธีที่ 1 (แนะนำ): ติดตั้งจาก Microsoft Store โดยค้นหา "Python 3.11" (หรือเวอร์ชันล่าสุด) แล้วกดติดตั้ง วิธีนี้จะตั้งค่า PATH ให้โดยอัตโนมัติ
- วิธีที่ 2: ดาวน์โหลดและติดตั้งจาก python.org
- สำคัญ: หากติดตั้งด้วยวิธีนี้ ในหน้าจอแรกของการติดตั้ง ให้ติ๊กช่อง "Add Python to PATH" ก่อนกด "Install Now"
-
Docker Engine:
sudo apt-get update sudo apt-get install docker.io -y sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER # (ต้อง logout แล้ว login ใหม่เพื่อให้สิทธิ์ทำงาน)
-
Python 3 & Pip:
- ทางเลือกที่ 1 (ใช้ Conda/Anaconda): หากคุณใช้ Anaconda/Miniconda อยู่แล้ว คุณสามารถข้ามขั้นตอนนี้ไปได้เลย
- ทางเลือกที่ 2 (ใช้ Python ปกติ):
sudo apt-get install python3 python3-pip -y
-
Clone a repository:
git clone https://github.com/nanofatdog/Linux-Classroom-in-a-Browser.git cd Linux-Classroom-in-a-Browser -
ตั้งค่า Environment และติดตั้ง Libraries:
- เลือกทำตามวิธีใดวิธีหนึ่งด้านล่างนี้
- สร้าง environment ใหม่ชื่อ
linux-classและติดตั้ง Python:
conda create --name linux-class python=3.10 -y
- เปิดใช้งาน environment:
conda activate linux-class
- ติดตั้ง libraries ที่จำเป็นด้วย pip ภายใน environment ของ conda:
pip install -r requirements.txt
- (แนะนำ) สร้างและเปิดใช้งาน Virtual Environment:
# สำหรับ Linux/macOS python3 -m venv venv source venv/bin/activate # สำหรับ Windows python -m venv venv .\\venv\\Scripts\\activate
- ติดตั้ง libraries ที่จำเป็น:
pip install -r requirements.txt
-
รันสคริปต์ติดตั้ง:
- สคริปต์นี้จะทำการสร้าง Docker image ที่เป็นแม่แบบของห้องเรียนให้โดยอัตโนมัติ
python install.py
คุณจะเห็นขั้นตอนการดาวน์โหลดและติดตั้งโปรแกรมต่างๆ แสดงขึ้นมาบนหน้าจอ
-
สำคัญ: หากคุณใช้ Conda/venv อย่าลืม
conda activate linux-classหรือsource venv/bin/activateก่อนรันเซิร์ฟเวอร์ทุกครั้ง! -
รันแบบปกติ (ที่ Port 5000):
python app.py
-
รันแบบกำหนดค่าเอง:
# เปลี่ยน Port เป็น 8080 python app.py --port 8080 # ใช้งานบน IP Address ที่กำหนด python app.py --host 127.0.0.1 --port 8080 # (สำหรับขั้นสูง) เปิดใช้งาน HTTPS (ต้องมีไฟล์ cert.pem และ key.pem) python app.py --https
-
เข้าใช้งาน: เปิดเว็บเบราว์เซอร์แล้วไปที่
http://127.0.0.1:5000(หรือ port ที่คุณกำหนด)
หากคุณต้องการลบ Docker image ที่โปรเจกต์นี้สร้างขึ้นเพื่อคืนพื้นที่ในเครื่อง ให้รันสคริปต์:
python uninstall.py