ข้ามไปยังเนื้อหาหลัก

Node.js

บทนำ

Node.js เป็นแพลตฟอร์มเซิร์ฟเวอร์ที่ใช้รันแอปพลิเคชันที่เขียนด้วย JavaScript

ก่อนอื่น คุณต้องติดตั้ง Node.js:

  • ไปที่ "Settings" -> "Applications"

เมนูการจัดการ Applications ใน FASTPANEL

  • คลิกปุ่ม "Install" สำหรับ Node.js เวอร์ชันที่ต้องการ

ติดตั้งเวอร์ชัน Node.js ใน FASTPANEL

สร้างเว็บไซต์:

  • เลือกเทมเพลตสำหรับเว็บไซต์ Node.js

การกำหนดค่าเว็บไซต์ใหม่ใน FASTPANEL

  • ระบุโดเมนและพารามิเตอร์ที่เกี่ยวข้อง ในขั้นตอนการกำหนดค่า คุณสามารถเปลี่ยน DB, ผู้ใช้ FTP และ Backend ได้

การกำหนดค่าเว็บไซต์ใหม่ใน FASTPANEL

  • อัปโหลดไฟล์แอปพลิเคชันไปยังไดเรกทอรีของเว็บไซต์
  • หากต้องการติดตั้ง dependencies ให้รัน npm20.15.1 install ใน Terminal (ต้องติดตั้งแอปพลิเคชัน ttyd สำหรับ FASTPANEL®)

ติดตั้ง dependencies ของ Node.js

  • รีสตาร์ท Node.js โดยไปที่แดชบอร์ดของเว็บไซต์ จากนั้นเปิดส่วน "Services"

รีสตาร์ทบริการ Node.js

เฟรมเวิร์ก Express

โดยใช้เฟรมเวิร์ก Express เป็นตัวอย่าง มาสร้างเว็บเซิร์ฟเวอร์อย่างง่ายกัน:

  • เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ในฐานะผู้ใช้ที่เป็นเจ้าของเว็บไซต์ (คุณสามารถใช้แอปพลิเคชัน ttyd สำหรับ FASTPANEL® ได้)
  • สร้างไฟล์ app.js ในไดเรกทอรีของเว็บไซต์ และใส่โค้ดต่อไปนี้ลงไป:
const express = require('express');
const app = express();
const PORT = process.env.SERVICE_PORT;

app.get('/', (req, res) => {
res.send('Hello! This is my first server on Node.js + Express 🚀');
});

app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});

  • ในไดเรกทอรีของเว็บไซต์ ให้รันคำสั่งเพื่อติดตั้ง express
npm20.15.1 install express
  • ไปที่แดชบอร์ดของเว็บไซต์ จากนั้นไปที่ส่วน Services
  • รีสตาร์ทบริการ
  • ตรวจสอบเว็บไซต์

Docusaurus

โดยใช้เว็บแอปพลิเคชัน Docusaurus เป็นตัวอย่าง มาตั้งค่าการกำหนดค่ากัน:

  • เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ในฐานะผู้ใช้ที่เป็นเจ้าของเว็บไซต์ (คุณสามารถใช้แอปพลิเคชัน ttyd สำหรับ FASTPANEL® ได้)
  • ในไดเรกทอรีของเว็บไซต์ ให้รันการติดตั้ง Docusaurus
npx20.15.1 create-docusaurus -j ./docs
  • เมื่อระบบถามให้เลือกเทมเพลต ให้ตอบ classic (recommended)

  • หลังการติดตั้ง ให้แทนที่หนึ่งบรรทัดในไฟล์ docs/package.json

"start": "docusaurus start",
# replace with
"start": "docusaurus start --port $SERVICE_PORT",

$SERVICE_PORT เป็นตัวแปรระบบที่ตั้งค่าไว้ใน FASTPANEL®

  • ในแผงควบคุม ไปที่ "site settings" -> "Backend"

  • เลือกตัวจัดการ Standalone หรือ PM2

  • เลือกเวอร์ชัน Node.js ที่ต้องการ

  • ระบุโฟลเดอร์การทำงาน docs

  • ในช่อง Launch command ให้ป้อน: npm run start

  • บันทึก รอให้แอปพลิเคชันคอมไพล์เสร็จ (ข้อมูลจะปรากฏใน logs) ตรวจสอบเว็บไซต์

Next.js

โดยใช้ Next.js กับ Node.js 20.19 เป็นตัวอย่าง มาสร้างเว็บเซิร์ฟเวอร์อย่างง่ายกัน:

  • เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ในฐานะผู้ใช้ที่เป็นเจ้าของเว็บไซต์ (คุณสามารถใช้แอปพลิเคชัน ttyd ใน FASTPANEL® ได้เช่นกัน)
  • ในไดเรกทอรีของเว็บไซต์ ให้รันคำสั่งเริ่มต้นโปรเจกต์:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • เพิ่มบล็อก scripts ลงในไฟล์ package.json:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • สร้างไดเรกทอรี pages และภายในนั้น ให้เพิ่มไฟล์ชื่อ index.js:
mkdir pages
cat <<EOF > pages/index.js
export async function getServerSideProps() {
return {
props: {
nodeVersion: process.version,
port: process.env.SERVICE_PORT || 3000,
},
};
}

export default function Home({ nodeVersion, port }) {
return (
<div style={{
fontFamily: 'sans-serif',
textAlign: 'center',
marginTop: '20vh'
}}>
<h1>✅ It works!</h1>
<p>Next.js app running on Node.js {nodeVersion}</p>
<p>Port: {port}</p>
</div>
);
}
EOF
  • รันการ build โปรเจกต์
yarn20.19.4 build
  • ในแผงควบคุม ไปที่ "site settings" -> "Backend"
  • เลือกตัวจัดการ Standalone หรือ PM2
  • เลือกเวอร์ชัน Node.js ที่ต้องการ
  • ในช่อง Launch command ให้ป้อน: yarn run start
  • บันทึก รอให้แอปพลิเคชันคอมไพล์เสร็จ (ข้อมูลจะปรากฏใน logs) ตรวจสอบเว็บไซต์

ข้อมูลเพิ่มเติม

ในโหมด Standalone จะมีการเปิดใช้โปรเซส Node.js เพื่อรันสคริปต์ของคุณ

ในโหมด PM2 จะใช้ตัวจัดการโปรเซส PM2 เพื่อจัดการโปรเซส Node.js, logs และโหลดของระบบ
โหมดนี้ยังช่วยให้คุณสามารถระบุจำนวน workers ได้ — นั่นคือ จำนวนโปรเซส Node.js ที่จัดการคำขอขาเข้าของเซิร์ฟเวอร์
นอกจากนี้ โหมดนี้ยังมีตัวเลือก Enable file watch — PM2 จะรีสตาร์ทแอปพลิเคชันของคุณโดยอัตโนมัติเมื่อมีการแก้ไขไฟล์ในไดเรกทอรีปัจจุบันหรือไดเรกทอรีย่อยของมัน โปรดทราบว่าโหมดนี้ทำให้เกิดโหลดระบบเพิ่มเติม และไม่แนะนำสำหรับสภาพแวดล้อม production

ในทำนองเดียวกัน คุณสามารถกำหนดค่าแอปพลิเคชันได้หากต้องใช้ YARN แทน NPM

คุณสามารถติดตั้ง dependencies ของโปรเจกต์ที่ระบุไว้ใน package.json โดยใช้ YARN หรือ NPM ได้โดยตรงจาก FASTPANEL® ในการดำเนินการนี้ ให้เปิดการ์ดเว็บไซต์และไปที่ส่วน Services:

บริการ Node.js

บันทึก

แอปพลิเคชัน Node.js สามารถสร้าง logs ได้ ใน FASTPANEL® logs จะอยู่ในแดชบอร์ดของเว็บไซต์ ในส่วน Logs ภายใต้แท็บ "Backend log"

คำสั่งคอนโซล

หลังจากติดตั้ง Node.js ใน FASTPANEL® แล้ว ผู้ใช้สามารถทำงานกับโปรเจกต์ของตนโดยใช้คำสั่งคอนโซล เช่น:

  • pm2
  • yarn20.15.1
  • npx20.15.1
  • npm20.15.1
  • node20.15.1

ตัวอย่าง:

$ npm20.15.1 list
node-socket-port-server@1.0.0 /var/www/node_user/data/www/node.site
└── express@4.21.2
$ pm2 ls
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ amazing_site│ default │ 1.0.0 │ cluster │ 9355 │ 2m │ 0 │ online │ 0% │ 62.4mb │ user │ disabled │
│ 1 │ amazing_site│ default │ 1.0.0 │ cluster │ 9362 │ 2m │ 0 │ online │ 0% │ 62.5mb │ user │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

ชื่อของแต่ละคำสั่งจะมีหมายเลขเวอร์ชันของ Node.js ที่ติดตั้งไว้รวมอยู่ด้วย ในตัวอย่างนี้ เวอร์ชันที่พร้อมใช้งานคือ Node.js 20.15.1