მთავარ შიგთავსზე გადასვლა

Node.js

შესავალი

Node.js არის სერვერული პლატფორმა, რომელიც უშვებს JavaScript-ში დაწერილ აპლიკაციებს.

პირველ რიგში, საჭიროა Node.js-ის ინსტალაცია:

  • გადადით "Settings" -> "Applications"

აპლიკაციების მართვის მენიუ FASTPANEL-ში

  • დააჭირეთ ღილაკს "Install" Node.js-ის საჭირო ვერსიისთვის

Node.js ვერსიის დაყენება FASTPANEL-ში

შექმენით ვებსაიტი:

  • აირჩიეთ შაბლონი Node.js ვებსაიტისთვის

ახალი საიტის კონფიგურაცია FASTPANEL-ში

  • მიუთითეთ დომენი და მასთან დაკავშირებული პარამეტრები. კონფიგურაციის ეტაპზე შეგიძლიათ შეცვალოთ DB, FTP მომხმარებელი და Backend

ახალი საიტის კონფიგურაცია FASTPANEL-ში

  • ატვირთეთ აპლიკაციის ფაილები ვებსაიტის დირექტორიაში
  • დამოკიდებულებების დასაინსტალირებლად გაუშვით npm20.15.1 install Terminal-ში (FASTPANEL®-ისთვის საჭიროა ttyd აპლიკაციის ინსტალაცია)

Node.js-ის დამოკიდებულებების დაყენება

  • გადატვირთეთ Node.js საიტის დაფაზე გადასვლით და შემდეგ "Services" სექციის გახსნით.

Node.js სერვისის გადატვირთვა

Express framework

მოდით, Express framework-ის მაგალითზე შევქმნათ მარტივი ვებ სერვერი:

  • დაუკავშირდით სერვერს SSH-ით, როგორც მომხმარებელი, რომელიც ფლობს საიტს (FASTPANEL®-ისთვის შეგიძლიათ გამოიყენოთ ttyd აპლიკაცია)
  • შექმენით ფაილი 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-ით, როგორც მომხმარებელი, რომელიც ფლობს საიტს (FASTPANEL®-ისთვის შეგიძლიათ გამოიყენოთ ttyd აპლიკაცია)
  • ვებსაიტის დირექტორიაში გაუშვით 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

  • შეინახეთ. დაელოდეთ აპლიკაციის დაკომპილირებას (ინფორმაცია გამოჩნდება ლოგებში). შეამოწმეთ ვებსაიტი

Next.js

Next.js-ის გამოყენებით Node.js 20.19-თან ერთად, მოდით შევქმნათ მარტივი ვებ სერვერი:

  • დაუკავშირდით სერვერს SSH-ით, როგორც მომხმარებელი, რომელიც ფლობს ვებსაიტს (FASTPANEL®-ში ასევე შეგიძლიათ გამოიყენოთ ttyd აპლიკაცია).
  • ვებსაიტის დირექტორიაში გაუშვით პროექტის ინიციალიზაციის ბრძანება:
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
  • გაუშვით პროექტის აგება.
yarn20.19.4 build
  • მართვის პანელში გადადით "site settings" -> "Backend"
  • აირჩიეთ Standalone ან PM2 დამმუშავებელი.
  • აირჩიეთ სასურველი Node.js ვერსია.
  • Launch command ველში შეიყვანეთ: yarn run start.
  • შეინახეთ. დაელოდეთ აპლიკაციის დაკომპილირებას (ინფორმაცია გამოჩნდება ლოგებში). შეამოწმეთ ვებსაიტი

დამატებითი ინფორმაცია

Standalone რეჟიმში Node.js პროცესი იშვება თქვენი სკრიპტების შესასრულებლად.

PM2 რეჟიმში Node.js პროცესების, ლოგებისა და სისტემური დატვირთვის სამართავად გამოიყენება PM2 პროცესების მენეჯერი.
ეს რეჟიმი ასევე გაძლევთ საშუალებას მიუთითოთ worker-ების რაოდენობა — ანუ Node.js პროცესების რაოდენობა, რომლებიც ამუშავებენ სერვერზე შემომავალ მოთხოვნებს.
გარდა ამისა, ეს რეჟიმი უზრუნველყოფს Enable file watch ოფციას — PM2 ავტომატურად გადატვირთავს თქვენს აპლიკაციას, როცა ფაილი შეიცვლება მიმდინარე დირექტორიაში ან მის ქვეკატალოგებში. გთხოვთ გაითვალისწინოთ, რომ ამ რეჟიმს მოაქვს დამატებითი სისტემური დატვირთვა და არ არის რეკომენდებული production გარემოსთვის.

ანალოგიურად, შეგიძლიათ დააკონფიგურიროთ აპლიკაცია, თუ მას YARN სჭირდება NPM-ის ნაცვლად

თქვენ შეგიძლიათ თქვენი პროექტის package.json-ში ჩამოთვლილი დამოკიდებულებების ინსტალაცია YARN-ის ან NPM-ის გამოყენებით პირდაპირ FASTPANEL®-იდან. ამისთვის გახსენით ვებსაიტის ბარათი და გადადით Services სექციაში:

Node.js სერვისები

ლოგები

Node.js აპლიკაციას შეუძლია ლოგების გენერირება. FASTPANEL®-ში ისინი მდებარეობს საიტის დაფაზე, 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.