Deploy Node.js ฟรีๆ ด้วย Hop
คุณกำลังมองหาโฮสฟรี สำหรับ deploy Node.js อยู่หรือเปล่า? วันนี้ผมมาแนะนำตัวที่ชื่อว่า Hop ครับ
จริงๆ นอกจาก Hop ก็ยังมีอีก 2 ตัวเลือกครับ คือ Render และ Fly
ปกติ เราสามารถ deploy Node.js ได้ถ้าเรามี VPS แต่สำหรับบางคน หรือมือใหม่ ที่เพิ่งหัดใช้งาน Node.js อยากแค่ deploy เป็น demo ไม่ได้ต้องการ VPS ก็จะลำบาก เพราะว่า Hosting ทั่วๆไปไม่รองรับ
วันนี้ก็เลยมาแนะนำตัวนี้ครับ ชื่อ Hop สามารถใช้ฟรี (แบบมีเงื่อนไข) คือใช้ได้แค่ Plan ต่ำสุด คือได้ 0.5 CPU, 512MB ram สำหรับทดสอบ และ demo ก็พอรับได้ครับ
Hop คืออะไร?
Hop เป็นเหมือน Cloud hosting ที่ให้เรา deploy แอพของเราได้ง่ายๆ รองรับหลายๆ ภาษา ไม่ใช่เฉพาะแค่ Node.js ผ่านหลายช่องทาง ครับ เช่น
- ใช้ Command Line
- ใช้การ push code ผ่าน Git
- หรือใช้ Dockerfile ก็ได้

ถ้าเราสมัครสมาชิกและทำการยืนยัน email แล้ว หน้าแรกที่เราจะเข้ามาเจอหน้าแนะนำการใช้งาน จากนั้นคือ Dashboard สามารถเลือกอ่านตรง Getting Started ได้

Deploy Node.js ด้วย Hop CLI
สำหรับวันนี้ ผมขอยกตัวอย่าง การ Deploy Node ด้วยการใช้ Hop CLI นะครับ และก็ตัว repository ก็จะใช้ของ default hop ที่ทำไว้เลยครับ เป็น basic express ที่แสดง os hostname
เราสามารถ deploy ด้วย Git ได้ครับ เพียงแค่ connect github และก็กด deploy จากหน้า Console ของ Hop ได้เลย
Repository : https://github.com/hop-examples/node-express-app
- Clone repository
ทำการ clone repository ลงมา
git clone https://github.com/hop-examples/node-express-app
- ติดตั้ง CLI
curl -fsSL https://download.hop.sh/install | sh
สำหรับ Windows สามารถดาวน์โหลดตัวติดตั้ง ได้ที่นี่ (https://download.hop.sh/windows/x86_64)
- ทำการ login
hop auth login
ตัว CLI จะทำการเปิดหน้า browser เพื่อให้เรายืนยันว่าจะ authorize หรือไม่ ก็กด Authorized
- switch project
ต่อมา ทำการ switch project, โดยเราสามารถดูชื่อ project ของเราได้จากคำสั่ง
hop projects ls
สมมติได้ผลลัพธ์
NAME NAMESPACE ID CREATED TYPE
Chai 's Project /chai project_12345 2023-10-05T17:44:39.312Z personal
จากนั้นก็เอาชื่อ project ตรง NAMESPACE เรามาใช้ เพื่อรันคำสั่ง switch แบบนี้
hop projects switch chai
- deploy
รันคำสั่ง deploy ด้วย:
hop deploy
จากนั้นก็ตอบคำถาม, เลือก Plan ซึ่งเลือกได้แค่ Tiny ครับ (ฟรี)
info: Attempting to deploy node-express-app
info: No hopfile found, creating one
Deployment name: node-express-app
Select a tier that will suit you well: Tiny - Perfect for super small applications, such as a Discord bot or basic REST API (0.5 CPU, 512MB ram)
Would you like to attach a volume? no
Container amount to start: 0
Add environment variables? no
Do you want to change advanced settings? no
warn: Free tier has been applied to the resources
info: Estimated monthly price per container: 0.00$
เมื่อ deploy เรียบร้อยแล้ว เราจะได้ผลลัพธ์ประมาณนี้
info: Build complete
info: Deployed successfully, you can find it at: https://console.hop.io/ignite/deployment/deployment_12345
คลิ๊กไปที่ link จะไปหน้า console ทีนี้ ส่วนนี้ มันก็จะมาหน้า app เรา
- เพิ่ม gateway

ทำการกด Create Gateway จากนั้น ทำการตั้งชื่อที่เราต้องการครับ และก็ port ใช้เป็น 3000 (port เดียวกับตัวแอพ node.js ของเรา)

การ Create Gateway เป็นเหมือนการสร้าง domain (เราจะได้ domain ที่เป็น subdomain ของ hop.io อีกที) แต่สามารถ custom domain ผูก domain เราเองได้ครับ
สุดท้าย ที่แท็ป build ด้านซ้ายมือ ทำการกด promote to production ด้วย

ทดลองเข้าเว็บที่ deploy จะเห็นว่า เราได้เว็บของเรา deploy เรียบร้อยแล้ว (กดเข้าที่ gateway จะเห็น url เว็บของเรา)
อย่างตัวอย่างของผม ก็คือ url นี้ https://hello-hop-express.hop.sh/
สรุป
ตัว Hop ก็เป็นอีกหนึ่ง Cloud Hosting ที่ให้เราได้ deploy Node.js หรือภาษา / framework / runtime อื่นๆ ก็ได้ ถ้ามี Dockerfile โดยที่มีแพลนเริ่มต้นฟรี ให้ใช้ได้ระดับเริ่มต้น หรือ demo โปรเจ็คเล็กๆได้ครับ
ส่วนตัว Hop เอาจริงๆ ก็ยังเป็น Beta และยังเป็นกลุ่มเล็กๆ ดีหรือไม่ดี มีบัค หรือมีเรื่อง security อะไรหรือเปล่า อันนี้ก็ต้องตัดสินใจรับความเสี่ยงกันเอาเองนะครับ
Node.js Hosting ฟรี ตัวเลือกอื่นๆ เช่น


Happy Coding ❤️