Vai al contenuto principale

Node.js

Introduzione

Node.js è una piattaforma server che esegue applicazioni scritte in JavaScript.

Per prima cosa, devi installare Node.js:

  • Vai a "Settings" -> "Applications"

Menu di gestione delle applicazioni in FASTPANEL

  • Fai clic sul pulsante "Install" per la versione di Node.js richiesta

Installa la versione di Node.js in FASTPANEL

Crea un sito web:

  • Seleziona un modello per un sito web Node.js

Nuova configurazione del sito in FASTPANEL

  • Specifica il dominio e i parametri correlati. Nella fase di configurazione puoi modificare il DB, l'utente FTP e il Backend

Nuova configurazione del sito in FASTPANEL

  • Carica i file dell'applicazione nella directory del sito web
  • Per installare le dipendenze, esegui npm20.15.1 install nel Terminale (è necessario installare l'applicazione ttyd per FASTPANEL®)

Installazione delle dipendenze Node.js

  • Riavvia Node.js andando nella dashboard del sito e quindi aprendo la sezione "Services".

Servizio di riavvio Node.js

Framework Express

Usando il framework Express come esempio, creiamo un semplice server web:

  • Connettiti al server tramite SSH come utente proprietario del sito (puoi usare l'applicazione ttyd per FASTPANEL®)
  • Crea un file app.js nella directory del sito web e inserisci il codice seguente:
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}`);
});

  • Nella directory del sito web, esegui il comando per installare express
npm20.15.1 install express
  • Vai alla dashboard del sito, quindi alla sezione Services
  • Riavvia il servizio
  • Controlla il sito web

Docusaurus

Usando l'applicazione web Docusaurus come esempio, configuriamo le impostazioni:

  • Connettiti al server tramite SSH come utente proprietario del sito (puoi usare l'applicazione ttyd per FASTPANEL®)
  • Nella directory del sito web, esegui l'installazione di Docusaurus
npx20.15.1 create-docusaurus -j ./docs
  • Quando ti viene chiesto di selezionare un modello, rispondi classic (recommended)

  • Dopo l'installazione, sostituisci una riga nel file docs/package.json

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

$SERVICE_PORT è una variabile di sistema impostata in FASTPANEL®

  • Nel pannello di controllo, vai a "site settings" -> "Backend"

  • Seleziona il gestore Standalone o PM2.

  • Scegli la versione di Node.js desiderata.

  • Specifica la cartella di lavoro docs

  • Nel campo Launch command, inserisci: npm run start

  • Salva. Attendi la compilazione dell'applicazione (le informazioni appariranno nei log). Controlla il sito web

Next.js

Usando Next.js con Node.js 20.19 come esempio, creiamo un semplice server web:

  • Connettiti al server tramite SSH come utente proprietario del sito web (puoi anche usare l'applicazione ttyd in FASTPANEL®).
  • Nella directory del sito web, esegui il comando di inizializzazione del progetto:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • Aggiungi un blocco scripts al file package.json:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Crea una directory pages e al suo interno aggiungi un file chiamato 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
  • Esegui la build del progetto.
yarn20.19.4 build
  • Nel pannello di controllo, vai a "site settings" -> "Backend"
  • Seleziona il gestore Standalone o PM2.
  • Scegli la versione di Node.js desiderata.
  • Nel campo Launch command, inserisci: yarn run start.
  • Salva. Attendi la compilazione dell'applicazione (le informazioni appariranno nei log). Controlla il sito web

Informazioni aggiuntive

In modalità Standalone, viene avviato un processo Node.js per eseguire i tuoi script.

In modalità PM2, viene utilizzato il gestore di processi PM2 per gestire i processi Node.js, i log e il carico di sistema.
Questa modalità ti consente anche di specificare il numero di worker, cioè il numero di processi Node.js che gestiscono le richieste in arrivo al server.
Inoltre, questa modalità fornisce l'opzione Enable file watch — PM2 riavvia automaticamente la tua applicazione quando un file viene modificato nella directory corrente o nelle sue sottodirectory. Tieni presente che questa modalità introduce un carico di sistema aggiuntivo e non è consigliata per gli ambienti di produzione.

Allo stesso modo, puoi configurare l'applicazione se richiede YARN invece di NPM

Puoi installare le dipendenze del tuo progetto elencate in package.json usando YARN o NPM direttamente da FASTPANEL®. Per farlo, apri la scheda del sito web e vai alla sezione Services:

Servizi Node.js

Log

Un'applicazione Node.js può generare log. In FASTPANEL®, si trovano nella dashboard del sito, nella sezione Logs, nella scheda "Backend log"

Comandi della console

Dopo aver installato Node.js in FASTPANEL®, gli utenti possono lavorare con i propri progetti usando comandi della console come:

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

Esempio:

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

Ogni nome di comando include il numero di versione di Node.js installato. In questo esempio, la versione disponibile è Node.js 20.15.1.