Przejdź do głównej treści

Node.js

Wprowadzenie

Node.js to platforma serwerowa uruchamiająca aplikacje napisane w JavaScript.

Najpierw musisz zainstalować Node.js:

  • Przejdź do "Ustawienia" -> "Aplikacje"

Menu zarządzania aplikacjami w FASTPANEL

  • Kliknij przycisk "Install" dla wymaganej wersji Node.js

Instalacja wersji Node.js w FASTPANEL

Utwórz witrynę internetową:

  • Wybierz szablon dla witryny internetowej Node.js

Konfiguracja nowej witryny w FASTPANEL

  • Określ domenę i powiązane parametry. Na etapie konfiguracji możesz zmienić DB, użytkownika FTP i Backend

Konfiguracja nowej witryny w FASTPANEL

  • Prześlij pliki aplikacji do katalogu witryny internetowej
  • Aby zainstalować zależności, uruchom npm20.15.1 install w Terminalu (wymagana jest instalacja aplikacji ttyd dla FASTPANEL®)

Instalacja zależności Node.js

  • Uruchom ponownie Node.js, przechodząc do panelu witryny, a następnie otwierając sekcję "Usługi".

Usługa restartu Node.js

Framework Express

Używając frameworka Express jako przykładu, utwórzmy prosty serwer WWW:

  • Połącz się z serwerem przez SSH jako użytkownik będący właścicielem witryny (możesz użyć aplikacji ttyd dla FASTPANEL®)
  • Utwórz plik app.js w katalogu witryny internetowej i wypełnij go następującym kodem:
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}`);
});

  • W katalogu witryny internetowej uruchom polecenie instalacji express
npm20.15.1 install express
  • Przejdź do panelu witryny, a następnie do sekcji Usługi
  • Uruchom ponownie usługę
  • Sprawdź witrynę internetową

Docusaurus

Na przykładzie aplikacji internetowej Docusaurus skonfigurujmy ustawienia:

  • Połącz się z serwerem przez SSH jako użytkownik będący właścicielem witryny (możesz użyć aplikacji ttyd dla FASTPANEL®)
  • W katalogu witryny internetowej uruchom instalację Docusaurus
npx20.15.1 create-docusaurus -j ./docs
  • Gdy pojawi się pytanie o wybór szablonu, odpowiedz classic (recommended)

  • Po instalacji zamień jedną linię w pliku docs/package.json

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

$SERVICE_PORT to zmienna systemowa ustawiona w FASTPANEL®

  • W panelu sterowania przejdź do "ustawienia witryny" -> "Backend"

  • Wybierz handler Standalone lub PM2.

  • Wybierz żądaną wersję Node.js.

  • Określ folder roboczy docs

  • W polu Launch command wpisz: npm run start

  • Zapisz. Poczekaj na skompilowanie aplikacji (informacje pojawią się w logach). Sprawdź witrynę internetową

Next.js

Używając Next.js z Node.js 20.19 jako przykładu, utwórzmy prosty serwer WWW:

  • Połącz się z serwerem przez SSH jako użytkownik będący właścicielem witryny internetowej (możesz również użyć aplikacji ttyd w FASTPANEL®).
  • W katalogu witryny internetowej uruchom polecenie inicjalizacji projektu:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • Dodaj blok scripts do pliku package.json:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Utwórz katalog pages i dodaj w nim plik o nazwie 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
  • Uruchom kompilację projektu.
yarn20.19.4 build
  • W panelu sterowania przejdź do "ustawienia witryny" -> "Backend"
  • Wybierz handler Standalone lub PM2.
  • Wybierz żądaną wersję Node.js.
  • W polu Launch command wpisz: yarn run start.
  • Zapisz. Poczekaj na skompilowanie aplikacji (informacje pojawią się w logach). Sprawdź witrynę internetową

Dodatkowe informacje

W trybie Standalone uruchamiany jest proces Node.js do wykonywania Twoich skryptów.

W trybie PM2 do zarządzania procesami Node.js, logami i obciążeniem systemu używany jest menedżer procesów PM2.
Ten tryb pozwala także określić liczbę workerów — czyli liczbę procesów Node.js obsługujących przychodzące żądania do serwera.
Dodatkowo ten tryb udostępnia opcję Enable file watch — PM2 automatycznie uruchomi ponownie Twoją aplikację po zmodyfikowaniu pliku w bieżącym katalogu lub jego podkatalogach. Pamiętaj, że ten tryb powoduje dodatkowe obciążenie systemu i nie jest zalecany dla środowisk produkcyjnych.

W podobny sposób możesz skonfigurować aplikację, jeśli wymaga ona YARN zamiast NPM

Możesz zainstalować zależności projektu wymienione w package.json przy użyciu YARN lub NPM bezpośrednio z FASTPANEL®. Aby to zrobić, otwórz kartę witryny internetowej i przejdź do sekcji Usługi:

Usługi Node.js

Logi

Aplikacja Node.js może generować logi. W FASTPANEL® znajdują się one w panelu witryny, w sekcji Logi, na karcie "Backend log"

Polecenia konsoli

Po zainstalowaniu Node.js w FASTPANEL® użytkownicy mogą pracować ze swoimi projektami przy użyciu poleceń konsoli, takich jak:

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

Przykład:

$ 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 │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Każda nazwa polecenia zawiera numer wersji zainstalowanego Node.js. W tym przykładzie dostępną wersją jest Node.js 20.15.1.