Прескачане към основното съдържание

Node.js

Въведение

Node.js е сървърна платформа, която изпълнява приложения, написани на JavaScript.

Първо трябва да инсталирате Node.js:

  • Отидете в "Настройки" -> "Приложения"

Меню за управление на приложенията във FASTPANEL

  • Щракнете върху бутона "Инсталиране" за необходимата версия на Node.js

Инсталиране на версия на Node.js във FASTPANEL

Създайте уебсайт:

  • Изберете шаблон за уебсайт на Node.js

Конфигурация на нов сайт във FASTPANEL

  • Посочете домейна и свързаните параметри. На етапа на конфигуриране можете да промените DB, FTP потребителя и Backend

Конфигурация на нов сайт във FASTPANEL

  • Качете файловете на приложението в директорията на уебсайта
  • За да инсталирате зависимостите, изпълнете npm20.15.1 install в Terminal (необходимо е да инсталирате приложението ttyd за FASTPANEL®)

Инсталиране на зависимости за Node.js

  • Рестартирайте Node.js, като отидете в таблото за управление на сайта и след това отворите раздела "Услуги".

Рестартиране на услуга на 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®

  • В контролния панел отидете в "настройки на сайта" -> "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
  • В контролния панел отидете в "настройки на сайта" -> "Backend"
  • Изберете обработчика Standalone или PM2.
  • Изберете желаната версия на Node.js.
  • В полето Launch command въведете: yarn run start.
  • Запазете. Изчакайте приложението да се компилира (информация ще се появи в логовете). Проверете уебсайта

Допълнителна информация

В режим Standalone се стартира процес на Node.js за изпълнение на вашите скриптове.

В режим PM2 се използва мениджърът на процеси PM2 за управление на процесите на Node.js, логовете и системното натоварване.
Този режим също така ви позволява да посочите броя на работните процеси — тоест броя на процесите на Node.js, които обработват входящите заявки към сървъра.
Освен това този режим предоставя опцията Enable file watch — PM2 автоматично рестартира вашето приложение, когато файл бъде променен в текущата директория или нейните поддиректории. Моля, имайте предвид, че този режим води до допълнително системно натоварване и не се препоръчва за производствени среди.

По подобен начин можете да конфигурирате приложението, ако то изисква 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.