Перайсці да асноўнага змесціва

Node.js

Уводзіны

Node.js — гэта серверная платформа, якая запускае праграмы, напісаныя на JavaScript.

Спачатку неабходна ўсталяваць Node.js:

  • Перайдзіце ў "Settings" -> "Applications"

Меню кіравання праграмамі ў FASTPANEL

  • Націсніце кнопку "Install" для патрэбнай версіі Node.js

Усталяванне версіі Node.js у FASTPANEL

Стварыце вэб-сайт:

  • Выберыце шаблон для вэб-сайта Node.js

Канфігурацыя новага сайта ў FASTPANEL

  • Пакажыце дамен і звязаныя параметры. На этапе канфігурацыі вы можаце змяніць БД, карыстальніка FTP і Backend

Канфігурацыя новага сайта ў FASTPANEL

  • Загрузіце файлы праграмы ў каталог вэб-сайта
  • Каб усталяваць залежнасці, выканайце npm20.15.1 install у Terminal (неабходна ўсталяваць праграму ttyd для FASTPANEL®)

Усталяванне залежнасцей 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

  • Захавайце. Дачакайцеся, пакуль праграма будзе скампілявана (інфармацыя з'явіцца ў логах). Праверце вэб-сайт

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
  • Запусціце зборку праекта.
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.