wasankds.com

[PI-01] Raspberry Pi Web Server

/images/pi-01-slide.jpg

[ PI-01 ] หลักสูตรอบรม "Raspberry Pi Web Server"

โดยผู้เขียน

"Raspberry Pi Home Server" (ดูรายละเอียด)

"Raspberry Pi Web Server" (ดูรายละเอียด)

รูปแบบการสอน

- ออนไลน์สอนสด ผ่าน Google Meet

- สอนครั้งละ 1 ท่านเท่านั้น

ถ้าต้องการมาเรียนกับผู้สอนโดนตรงแบบหน้าต่อหน้า เดินทางมาได้ที่ อ.หนองไผ่ จ.เพชรบูรณ์

หรือ หากต้องการเรียนเป็นกลุ่ม โดยให้ผู้สอนไปสอนถึงสถานที่ ติดต่อขอใบเสนอราคาได้ตามช่องทางที่ให้ไว้

แนะนำคอร์ส

ผู้สอนเคยทำเว็บมาหลากหลายรูปแบบแล้ว เช่น Static HTML (เขียน HTML เพียวๆ), ใช้ CMS (Joomla, WordPress), Google Apps Script Web App และ เขียน Web Server เอง เป็นต้น

และในยุคนี้ ที่ AI เฟื่องฟู การทำเว็บไซต์เป็นเรื่องที่ง่ายขึ้น เร็วขึ้น ผู้สอนเองก็ใช้ AI เพราะมันช่วยทุ่นเวลาได้มากจริงๆ

แต่ไม่ว่าจะแบบไหน "เราต้องมี Server สำหรับเก็บระบบของเรา" ซึ่งผู้สอนก็ใช้มาหลายแบบ เช่า Hosting, เช่า VPS เสียค่าบริการรายเดือนรายปี ยิ่งเราต้องการสเปคมากเท่าไร ค่าบริการก็เพิ่มขึ้นเรื่อยๆ

ยิ่งนานวัน ก็ยิ่งต้องการสเปคของ Server มากขึ้น ทั้งพื้นที่เก็บข้อมูล, ประสิทธิภาพของ Server, การใช้ subdomain เพื่อที่จะใช้งานเว็บแอพได้หลายตัว เป็นต้น

มีความคิดตลอดว่า "อยากมี Server ของตนเอง" แต่จะตั้ง Server แบบทั่วๆไป ก็สู้ค่าใช้จ่ายไม่ไหว เฉพาะติดตั้งครั้งแรก ก็หลายหมื่น(จนถึงแสน) ยังมีค่าใช้จ่ายรายเดือนอีก

นับวันก็ยิ่งมีความต้องการ "อยากมี Server ของตนเอง !!!" โดยเฉพาะเมื่อต้องทำเว็บแอพเกี่ยวกับ ระบบ IoT หรือ Home Automation ( ใช้สั่งงาน Microcontroller อย่าง ESP32 หรือ Raspberry Pi Pico ) "มันจะดีมากๆ ถ้าเรามี Server ตัวเล็กๆ ตั้งอยู่ที่บ้าน !!!"

ผู้เขียนจึงนึกถึง Raspberry Pi แต่ก็ "ไม่แน่ใจว่า มันจะไหว ?", "ไม่แน่ใจว่ามันจะเป็น Server ที่เปิดใช้งานแบบ 24/7 ได้"

ผู้เขียนทดสอบกับ Pi3 ตัวเก่าที่ซื้อมา 10กว่าปีที่แล้ว ทดสอบและเปิดใช้งานเป็นเดือน "เฮ้ย... ได้นี่นา" จากนั้น จึงจัด Raspberry Pi มาอีกหลากหลายรุ่น นับ 10 ตัว

ผูัเขียนย้ายเว็บแอพทั้งหมด ที่เคยฝากไว้บน VPS(เช่า) มาไว้บน Pi5 ที่ทำเป็น Web Server แล้วก็ยกเลิก VPS ไป เว็บ wasankds.com ที่ทุกท่านเปิดดูอยู่นี้ ก็อยู่บน Pi5 ที่บ้านของผู้เขียนเอง

ในแง่ของการลงทุน เราได้ Server ที่สเปคดีกว่าเดิม(ในกรณีของผู้เขียน) โดยเฉพาะ SSD NVMe M.2 ได้ความจุมากกว่า VPS หลายเท่า เอามา Backup Files แบบข้ามเครื่องได้อีก ความเร็ว CPU ของ Pi ก็พอๆกับ VPS ลงทุนไม่ถึง 1หมื่น จ่ายครั้งเดียว ค่าไฟก็ไม่แพง ...คุ้มมาก

แต่... แน่นอนว่า เราตั้ง Server ไว้ที่บ้าน คอขวดจึงอยู่ที่อินเตอร์เน็ตบ้าน ฉะนั้นก็ต้องประเมินว่า Server จะรับโหลดไหวหรือไม่ แต่สำหรับผู้เขียนแล้ว อินเตอร์เน็ตบ้านก็พอแล้ว

หากท่านต้องการมี Web Server ที่บ้านหรือสำนักงาน คอร์สนี้ พลาดไม่ได้

Pi5 Web Server ของผู้สอน ใช้ SSD NVMe M.2 500GB เพราะต้องใช้งานฐานข้อมูล ต้องการการอ่านเขียนข้อมูลที่รวดเร็ว นอกจากนี้ยังใช้งาน GPIO เพื่อเขียนโปรแกรมควบคุมความเร็วพัดลม 2 ตัว(บน/ล่าง) ตามอุณหภูมิของ CPU และ ดึงค่าต่างๆของ CPU/RAM มาแสดงที่หน้าจอ OLED 0.92" ด้วย ( ว่าจะถอดมาบัดกรีสายไฟ ก็ยังไม่ได้ทำ และ Server ก็ใช้งานจริงไปแล้ว)

ค่าบริการ

2,900 บ./คน

- สอนครั้งละ 1 ท่านเท่านั้น

- ออกใบเสร็จฯ ให้ได้

การเตรียมพร้อมก่อนเรียน

ผู้เข้าเรียน จำเป็นต้องเตรียมตัวตามรายการดังต่อไปนี้ ติดขัดประการใด ปรึกษาผู้สอนก่อนได้

    อุปกรณ์ประกอบคอร์ส

  1. Raspberry Pi แบบใดแบบหนึ่ง
    1. Raspberry Pi5 2GB RAM(ขึ้นไป) + SD Card 32GB+ เกรดใช้กับงานกล้อง
    2. หรือ

    3. Raspberry Pi5 2GB RAM(ขึ้นไป) + SSD NVMe M.2 256GB+ (ติดตั้งผ่าน PCIe HAT) (แนะนำแบบนี้)
  2. (เผื่อ) จอและคีย์พอร์สำหรับต่อกับ Pi - ถ้าการติดตั้ง OS ไม่มีปัญหา คงไม่ได้ใช้
  3. (ซ้าย) Pi5 ติดตั้ง SSD NVMe M.2 ขนาด 2230 (ติดตั้งผ่าน PCIe HAT)

    (ขวา) Pi5 ติดตั้ง SD Card + พัดลม Active Cooler (คอร์สนี้ไม่ใช้กล้อง)

    คอมพิวเตอร์ที่ใช้เรียน

  4. คอมพิวเตอร์ที่ใช้ Windows 11
    1. ติดตั้งโปรแกรม VS Code
    2. การเรียนออนไลน์แบบสอนสด ควรมี 2 จอ จอที่ 1 สำหรับทำตาม จอที่ 2 สำหรับดูจอของผู้สอน
  5. ชื่อโดเมน (หากต้องการเรียนพาร์ท "พาเว็บไซต์ออกสู่โลกภาพนอก") จำเป็นต้องใช้

  6. ชื่อโดเมนอะไรก็ได้ โดยจดบน https://www.cloudflare.com/
  7. pi5-server-front-close.jpg

หัวข้อการอบรม

    --- Part I : การเตรียม Raspberry Pi ---

    ในพาร์ทนี้เราต้องเตรียม Raspberry Pi กันก่อน ก่อนที่จะนำไปใช้งาน ที่สำคัญ เราจะต้องติดตั้งแบบกำหนด SSH Keys ไปเลย เพราะเวลาใช้งาน Raspberry Pi เป็น Server เราจะไม่ต่อจอหรือคีย์บอร์ด แต่จะใช้การ Remote เข้าไปจัดการ Raspberry Pi

  1. การสร้าง SSH Keys บน Windows
    1. SSH Keys คืออะไร ?
    2. การสร้างคีย์แบบ ed25519
  2. การติดตั้ง Raspberry Pi OS Lite
    1. ทำไมใช้ Raspberry Pi OS Lite ?
    2. การติดตั้ง OS แบบกำหนด SSH Keys
  3. SSH Remote ไปยัง Pi
    1. SSH Remote คืออะไร ?
    2. SSH Remote ไปยัง Pi
    3. การแก้ปัญหา Known host
  4. การอัปเดตระบบ
  5. การตรวจสอบและปรับแต่งระบบเบื้องต้น
    1. คำสั่งและการ ตรวจสอบระบบ
      1. os-release
      2. htop
      3. hdparm
      4. df -h
  6. การเปิดใช้งาน PCIe gen3 (กรณีใช้ SSD M.2)
  7. การก๊อปปี้ไฟล์ระหว่าง Pi และเครื่อง Remote
    1. การใช้งานคำสั่ง scp
  8. --- Part II : การสร้าง Web Server โดยใช้ Node.js ---

  9. การติดตั้ง Node ผ่าน nvm
    1. การติดตั้ง Node เวอร์ชั่น LTS
    2. การตรวจสอบการติดตั้ง
  10. การ Remote เขียนโปรแกรมบน Pi โดยตรง
    1. การใช้งาน VS Code รีโมทไปเขียนโค้ดโดยตรงบน Pi แบบ Realtime
  11. --- Part III : โปรเจกต์ ---

  12. โปรเจกต์ 1 - Basic Web Server
    1. การสร้างโปรเจกต์โปรเจกต์ Node.js
    2. โครงสร้างของโปรเจกต์ Node.js
    3. การเขียนโค้ด
      1. ใช้โปรแกรม nano (บน Pi)
      2. ใช้โปรแกรม VS Code (บนเครื่อง Remote)
    4. การรันเว็บเซิร์ฟเวอร์
    5. การดูผลลัพธ์(เว็บไซต์)
  13. โปรเจกต์ 2 - การโคลนโปรเจกต์ Static Web Pages จาก GitHub
    1. การติดตั้ง Git
    2. การโคลนโปรเจกต์ Static Web Pages จาก GitHub
    3. การเซ็ตอัพระบบก่อนเปิดใช้งาน
      1. การติดตั้ง Dependencies
      2. การคอนฟิกไฟล์ .env
    4. การเปิดใช้งานระบบ
  14. การตั้งค่าการรันเว็บเซิร์ฟเวอร์อัตโนมัติ
    1. systemd คืออะไร ?
    2. การใช้งานและการตั้งค่า systemd
    3. การจัดการเว็บเซิร์ฟเวอร์
      1. การดูสถานะหรือlog
      2. การปิด/เปิดเว็บเซิร์ฟเวอร์
  15. --- Part IV - พาเว็บไซต์ออกสู่โลกภาพนอก ---

    ในพาร์ทนี้เราจะพาเว็บไซต์ทั้งหมดออกสู่โลกภายนอก ทุกคนบนอินเตอร์เน็ตสามารถเปิดดูเว็บไซต์ของเราได้ ผ่าน "ชื่อโดเมน" หรือ "subdomain" ที่แตกต่างกัน เช่น wasankds.com เข้าเว็บหลัก หรือ mms.wasankds.com เข้าอีกเว็บหนึง เป็นต้น

  16. nginx
    1. nginx คืออะไร ?
    2. การติดตั้ง nginx
    3. การใช้งานหลายเว็บแอพบน Pi
    4. การตั้งค่า nginx
      1. เปิดใช้งานหลายเว็บแอบ
      2. เปิดใช้งาน subdomain
  17. Cloudflared Tunnel
    1. Cloudflared Tunnel คืออะไร ?
    2. การติดตั้ง Cloudflared Tunnel
    3. การตั้งค่า Tunnel
      1. ใช้งาน subdomain
      2. ใช้งาน ssh tunnel
    4. การตั้งค่า DNS
ติดต่อ

วสันต์ คุณดิลกเศวต

Line ID : wasankds

Email : [email protected]

เว็บไซต์ : wasankds.com

โทรฯ : 081-459-8343

กลุ่มไลน์

สำหรับสอบถามหรือติดตามข่าวสารจากเรา

✍ คอมเม้นต์ได้เฉพาะสมาชิกเท่านั้น (ช่องกรอกจะปรากฎเมื่อล็อกอินแล้ว)
✍ คอมเม้นต์จะปรากฎเมื่อได้รับอนุมัติจากผู้ดูและระบบ (มีระบบแจ้งเตือนเพื่อให้ผู้ดูแลระบบตรวจสอบโดยเร็ว)
✍ กรุณาแสดงความคิดเห็นด้วยความสุภาพ