Deploy Node.js ฟรีๆ ด้วย Hop

Nodejs Oct 5, 2023

คุณกำลังมองหาโฮสฟรี สำหรับ 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 ก็ได้
Hop
Hop enables you to deploy and scale high-bandwidth realtime apps with ease

ถ้าเราสมัครสมาชิกและทำการยืนยัน 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

GitHub - hop-examples/node-express-app: A basic Node.js HTTP server using Express, deployable to Hop
A basic Node.js HTTP server using Express, deployable to Hop - GitHub - hop-examples/node-express-app: A basic Node.js HTTP server using Express, deployable to Hop
  1. Clone repository

ทำการ clone repository ลงมา

git clone https://github.com/hop-examples/node-express-app
  1. ติดตั้ง CLI
curl -fsSL https://download.hop.sh/install | sh
สำหรับ Windows สามารถดาวน์โหลดตัวติดตั้ง ได้ที่นี่ (https://download.hop.sh/windows/x86_64)
  1. ทำการ login
hop auth login

ตัว CLI จะทำการเปิดหน้า browser เพื่อให้เรายืนยันว่าจะ authorize หรือไม่ ก็กด Authorized

  1. 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
  1. 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 เรา

  1. เพิ่ม 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 ฟรี ตัวเลือกอื่นๆ เช่น

Deploy app servers close to your users · Fly
Cloud Application Hosting for Developers | Render
Render is a unified cloud to build and run all your apps and websites with free TLS certificates, global CDN, private networks and auto deploys from Git.

Happy Coding ❤️

Tags

Chai Phonbopit

เป็น Web Dev ทำงานมา 10 ปีหน่อยๆ ด้วยภาษา JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจ Web3, Crypto และ Blockchain เขียนบล็อกที่ https://devahoy.com