[MPOS] การใช้งานร่วมกับชื่อโดเมน เพื่อใช้งานได้จากทุกที่ในโลก

ลิงค์ที่เกี่ยวข้อง
เกริ่น
Cloudflare Tunnel
ในกรณีที่เราติดตั้ง MPOS ไว้ที่คอมพิวเตอร์ที่บ้านหรือร้าน จะใช้ระบบได้ภายในเครือข่ายที่บ้านหรือร้าน เท่านั้น
แต่ถ้าต้องการใช้งานระบบนอกเครือข่าย ก็คือ ทำระบบให้ออกสู่ Internet นั่นเอง เช่น Server อยู่ กทม. เราอยู่ เพชรบูรณ์ ก็สามารถเข้าใช้งานระบบได้ เหมาะมากสำหรับดูข้อมูลแบบ Realtime
ลักษณะนี้ ทำได้หลายวิธี วิธีที่ง่ายและค่าใช้จ่ายถูกที่สุดคือการใช้ Cloudflare Tunnel ซึ่ง เราจะอธิบายกันในหัวข้อนี้

Remote Server
สำหรับการติดตั้งบน Remote Server ก็คือ เราเช่า Server แล้วเข้าไปติดตั้งหรือจัดการระบบผ่าน SSH หรือ Remote Desktop วิธีนี้เราไม่ต้องตั้ง Server ที่บ้านหรือร้าน ความยุ่งยากจะน้อยกว่า สามารถใช้งานได้จากทุกที่ในโลก ระบบเปิดใช้งานได้แบบ 24/7 แต่ก็จะมีค่าบริการรายเดือน (ที่เราใช้อยู่หลักร้อยบาทต่อเดือน)
เรามีบริการติดตั้งให้ เพราะการติดตั้งบน Remote Server มีความยุ่งยากพอสมควร
ในกรณีที่ต้องการเปิดใช้มากว่า 1 ระบบ (ติดตั้งหลายระบบบน Server ตัวเดียวกัน) ต้องเปิดใช้ Subdomain ซึ่งควรทำ เพราะอย่างน้อยเราต้องมี 2 ระบบ ใช้สำหรับทดสอบหรือฝึกพนักงาน 1 ระบบ และใช้จริงอีก 1 ระบบ เราสามารถใช้งานระบบที่ต่างกัน ผ่าน Subdomain ที่ต่างกัน เช่น mpos1.wasankds.com และ mpos2.wasankds.com เป็นต้น

อีกประการคือ เราจะมีระบบแจกฟรีอื่นๆด้วย ฉะนั้นใช้งานระบบผ่าน Subdomain จะดีกว่า
ตัวอย่างการล็อกอินเข้า Server (Linux Ubuntu) ผ่านทาง SSH เพื่อเข้าไปจัดการ Server

ตัวอย่างการล็อกอินเข้า Server (Windows Server) ผ่านทาง Remote Desktop

ขั้นตอนโดยสรุป
- จดชื่อโดเมนบน Cloudflare
- ตั้งค่า Cloudflare Tunnel และ MPOS
จดชื่อโดเมนบน Cloudflare
จดชื่อโดเมนบน Cloudflare
ขั้นตอนนี้จะต้องใช้บัตรเครดิตเพื่อชำระเงิน ค่าโดเมนอยู่ระหว่าง 200-2,000 บาท/ปี แล้วแต่ประเภทของโดเมน
ไปที่ https://www.cloudflare.com ลงทะเบียนผู้ใช้งาน และ Login เข้าสู่ระบบให้เรียบร้อย

คลิกที่ Buy a domain เพื่อจดชื่อโดเมนใหม่

ค้นหาชื่อโดเมนที่ต้องการ เช่น goodza แล้วคลิกที่ปุ่ม Search

เลือกชื่อโดเมนที่ต้องการ คลิกปุ่ม Confirm เพื่อยืนยันการจดโดเมน

ชำระเงิน ขั้นตอนนี้ต้องใช้บัตรเครดิตด้วย

เมื่อชำระเงินเรียบร้อยแล้ว ก็จะได้ชื่อโดเมนมาใช้งาน (ใช้ภาพเก่า สมัยจดโดเมน tualeklek.com)

เมื่อดูที่หน้า Home จะแสดงรายชื่อโดเมนที่เราจดไว้

ตั้งค่า Cloudflare Tunnel และ MPOS
สร้าง Cloudflare Tunnel
ขั้นตอนต่อไป เป็นการสร้าง Cloudflare Tunnel ซึ่งต้องติดตั้ง Connector ลงบน Server ที่ติดตั้ง MPOS
โดยปกติเราจะเชื่อมต่อชื่อโดเมนกับเลข IP Address (ไม่ใช่ Local IP อย่าง 192.168.x.x ต้องเป็น Public IP) แต่ Cloudflare Tunnel จะเชื่อมต่อชื่อโดเมนผ่าน Connector แทน
ที่ Home ของ Cloudflare คลิกที่เมนู Zero Trust

ที่หน้า Zero Trust Home คลิกที่เมนู Network -> Tunnels จากนั้นคลิกที่ปุ่ม Create a tunnel

คลิก Select Cloudflared

ตั้งชื่อ Tunnel ตามที่ต้องการ เช่น mpos-tunnel แล้วคลิกที่ปุ่ม Save tunnel

ในขั้นตอนต่อมา จะเป็นการติดตั้ง Connector ซึ่งจะมีอธิบายไว้ 4 ขั้นตอน ตามภาพ

1.) ดาวน์โหลดไฟล์ติดตั้ง Connector
หัวข้อ Choose an operating system : คลิกเลือกระบบปฏิบัติการของ Server ที่ติดตั้ง MPOS
หัวข้อ Choose an architecture : คลิกเลือกสถาปัตยกรรมของ Server ที่ติดตั้ง MPOS
คลิกลิงค์ เพื่อดาวน์โหลดไฟล์ติดตั้ง Connector มาเก็บไว้ที่เครื่องคอมพิวเตอร์ของเรา

2.) ติดตั้ง Connector โดยดับเบิ้ลคลิกที่ไฟล์ที่ดาวน์โหลดมา เพื่อติดตั้ง
3.) เปิด Terminal ด้วยสิทธิ์ Admin โดยคลิกเม้าส์ขวาที่ปุ่ม Windows -> Terminal (Admin)

4.) ก๊อปปี้คำสั่งติดตั้งเซอร์วิส cloudflared.exe service install ...
จากนั้นวางลงใน Terminal
ก๊อปปี้คำสั่งติดตั้งเซอร์วิส

วางคำสั่งใน Terminal

ที่ Your Cloudflare Tunnels ถ้าติดติดตั้ง Connector สำเร็จ จะเห็นสถานะเป็น HEALTHY

เชื่อมต่อชื่อโดเมน กับ MPOS
เมื่อสร้าง Tunnel เรียบร้อยแล้ว ถัดมาเราจะเชื่อมต่อ ชื่อโดเมน กับ MPOS
ที่หน้า Tunnel คลิกแท็บ Published application routes จากนั้นคลิกที่ปุ่ม Add a published application route

ตั้งค่าการเชื่อมโยงชื่อโดเมน กับ URL ใช้งานแอปพลิเคชัน MPOS
ช่อง Domain เลือก โดเมนที่เราจดไว้
ช่อง Type เลือก HTTP
ช่อง URL ใส่ URL ใช้งาน MPOS ที่ติดตั้งไว้บน Server เช่น localhost:80 สำคัญตรงเลขพอร์ท เราจะไปตั้งใน MPOS ให้ตรงกันด้วย
คลิกปุ่ม Save

แก้ไขไฟล์ .env
ที่ MPOS แก้ไขไฟล์ .env เพื่อใช้งานร่วมกับชื่อโดเมน ที่เราจดไว้
PORT_DEPLOY ใส่เป็น 1
PORT_SERVER ใส่เป็น 80 ให้ตรงกับที่ตั้งค่าไว้ใน Tunnel
DOMAIN_ALLOW ใส่เป็น URL ของโดเมนที่เราจดไว้ เช่น "https://tualeklek.com"
จากนั้นให้รีสตาร์ทระบบ เพื่อให้การตั้งค่าใหม่มีผล

เท่านี้เราก็สามารถใช้งาน MPOS ผ่านโดเมนที่เราตั้งค่าไว้ได้แล้ว และสามารถใช้งานได้ทั่วโลก

หมายเหตุ : Cloudflare Tunnel ทำ Subdomain ได้ด้วย

ตัวอย่างการตั้งค่า Subdomain สังเกตุว่าเราใช้คนละพอร์ท 80 และ 81
