Node.js e Plesk Giacomo Lanzi

Node.js tramite pannello hosting di SOD

Tempo di lettura: 5 min

Se sei interessato ad ospitare app di Node.js sul tuo spazio web, abbiamo buone notizie! Il pannello di controllo offerto da SOD, su base Plesk, e’ dotato di un’estensione Node.js che consente di gestire facilmente le applicazioni. In questo articolo vediamo come e’ possibile integrare Node tramite il pannello di controllo.

Ospitare un’applicazione Node.js dal pannello Plesk

Per verificare che tutto funzioni, proviamo a ospitare un’applicazione Node.js nel pannello. Utilizzeremo un’applicazione generica “Hello, World”. Per farlo, utilizzeremo l’estensione Git che trovi direttamente dal pannello. Sarebbe possibile anche caricare l’applicazione direttamente sul server, ma ho pensato che implementare anche una seconda estensione potesse essere utile ai fini di questa mini guida.

Una volta avuto accesso al pannello Plesk di SOD, dovrai creare una cartella di destinazione per l’applicazione. Seleziona la scheda “Files“, crea una cartella “hello-world“. Dalla scheda “Websites & Domains“, tra le componenti a disposizione, seleziona Git. Se possiedi piu’ di un dominio, stai attento a selezionare l’opzione sotto a quello corretto.

Crea Cartella per applicazione

La seconda schermata su dove trovare l’icona Git:

Icona Git

Impostazione di un repository locale

Adesso impostiamo un repository locale come clone di uno remoto per scaricare il codice nella cartella che hai creato un attimo fa. L’URL del repository che cloneremo e’: https://github.com/plesk/node-hello-world.git

Per farlo, clicca sull’icona di Git, imposta l’URL nell’apposito spazio e seleziona come destinazione la cartella “hello-world” che hai creato poco fa.

Impostazioni di un Repository

Differenze tra le cartelle “Application root” e “Document root”

Il prossimo step e’ quello di cambiare la cartella root dei documenti (Document root) per il dominio. Da notare che le cartelle Document root e Application root non sono la stessa cosa. Quando si parla di web app (come per esempio quelle basate su Node.js), la root dei documenti e’ la posizione dove si trovano le risorse statiche, mentre la root dell’applicazione e’ la directory radice dove e’ situata l’app. Nella maggior parte dei casi, la Document root e’ una cartella all’interno della Application root.

In questo momento dobbiamo cambiare la root dei documenti. Per farlo spostati sul pannello “Websites & Domains”, seleziona il sito corretto e vai su “Hosting Settings” (proprio sopra a Git) e clicca il link:

Root dei documenti - Node.js

Cambia l’attuale “Document root” impostandola su hello-world/public.

Abilita il supporto per Node.js

Prima di far girare l’app “Hello World”, l’ultima cosa che devi fare e’ abilitare il supporto per Node.js sul dominio. Vai quindi nel pannello “Websites & Domain” e clicca sull’apposita opzione. Qui potrai vedere alcune informazioni in merito all’app. Clicca su “Enable Node.js” e in pochi istanti questo sara’ abilitato.

Abilita Node.jsAbilitato

A questo punto, se tutto e’ andato a buon fine, cliccando sull'”Application URL” dovresti vedere una schermata con scritto “Hello World!”. Complimenti, hai appena installato e fatto girare un’app sul tuo dominio.

Applicazioni con dipendenze

Le applicazioni realizzate con Node.js, il piu’ delle volte, devono soddisfare delle dipendenze che sono definite nel file package.json, che viene installato nella directory “node_modules”.

Prendiamo in esame un’altra applicazione basata su ExpressJS. Puoi trovarla nel suo repository, caricarla manualmente oppure ripetere le operazioni descritte nella sezione precedente. Ecco il repository: https://github.com/plesk/node-express.git. Una volta che avrai sistemato le cose, ti ritroverai come nello screenshot qui sotto, ipotizzando che tu abbia clonato il repository nella cartella express-demo:

Node.js Express-demo

Installare le dipendenze e cambiate il file di startup

Prima di provare ad accedere all’app, bisogna inizializzarla. Iniziamo installando le dipendenze. Per fortuna, nel pannello Plesk di SOD, c’e’ un semplice tasto “NPM install”. Questo e’ fatto per installare le dipendenze delle app in base al file “package.json”. Installa le dipendenze in questo modo, per comodita’.

Infine, c’e’ da impostare il file di startup dell’app. Plesk utilizza l’applicazione server Phusion Passenger al servizio delle app Node.js. Nel repository di dimostrazione, c’e’ un file chiamato “server.js”. Questo, che non e’ una parte comune delle app basate su ExpressJS, contiene poche righe di codice indispensabili per far funzionare l’app:

const app = require('./app');
const http = require('http');

http.createServer(app).listen(process.env.PORT);

Puoi usare l’idea dietro questo file quando ospiti altre applicazioni Node.js, per esempio basate su un framework differente. L’ultima cosa che c’e’ da fare e’ cambiare l’opzione “Application Startup File” e impostarla su “server.js”.

Node.js Startup File

A questo punto, navigando all’indirizzo che ospita la app, dovresti vedere la schermata di benvenuto di ExpressJS. 

Risolvere i problemi

Per ogni sviluppatore Node.js e’ indispensabile sapere come individuare i problemi per trovare una soluzione. Per farlo, ecco un paio di suggerimenti che potrebbero esserti d’aiuto per fare Debug.

Controllo del log file

La prima cosa da fare quando si fa debug a un’applicazione Node.js e’ controllare i file di log. Per esempio, se si dimentica di installare le dipendenze per l’app demo Express, il registro degli errori del server conterra’ l’errore “impossibile trovare il modulo ‘express'”. Sfortunatamente, a causa di come funziona Phusion Passenger, viene utilizzato il log di errore a livello di server invece dei log di errore per dominio. In questo caso, gli utenti finali vedranno un semplice messaggio di errore generico.

Per verificare i messaggi log del server, andare nel pannello “Websites & Domain”, sotto al dominio interessato, cercare l’opzione log. Cliccandoci sopra di avra’ accesso a una schermata dei messaggi di log registrati.

 

Vedere i messaggi direttamente sullo schermo dell’app

Puo’ essere molto utile vedere i messaggi di errore direttamente sul sito dell’app, senza cercare l’opzione nel pannello di controllo. Vai alla schermata delle impostazioni dell’app Node.js e cambia la modalita’ di applicazione in “development”. La prossima volta che si presenta un problema, l’errore verra’ mostrato nella finestra del browser.

Inoltre, se l’app e’ in modalita’ “development”, non e’ necessario riavviare l’app ogni volta che si modifica il contenuto di un file.

Conclusioni

Come abbiamo visto, implementare applicazioni Node.js sul proprio dominio e’ davvero semplice con il pannello di controllo Plesk del servizio di hosting SOD, che si rivela ancora un volta davvero duttile, intuitivo e facile da usare.

Se vuoi provare questa e altre funzionalita’, puoi testare la versione demo semplicemente cliccando qui.

Link utili:

Gestire WordPress dal pannello hosting

Server hosting per sito web di SOD

 

 

Condividi


RSS

Piu’ articoli…

Categorie …

Tags

RSS CSIRT

RSS darkreading

RSS Full Disclosure

  • SEC Consult SA-20240513-0 :: Tolerating Self-Signed Certificates in SAP® Cloud Connector Maggio 14, 2024
    Posted by SEC Consult Vulnerability Lab via Fulldisclosure on May 14SEC Consult Vulnerability Lab Security Advisory < 20240513-0 > ======================================================================= title: Tolerating Self-Signed Certificates product: SAP® Cloud Connector vulnerable version: 2.15.0 - 2.16.1 (Portable and Installer) fixed version: 2.16.2 (Portable and Installer) CVE number: CVE-2024-25642 impact: high homepage:...
  • TROJANSPY.WIN64.EMOTET.A / Arbitrary Code Execution Maggio 14, 2024
    Posted by malvuln on May 14Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/f917c77f60c3c1ac6dbbadbf366ddd30.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: TrojanSpy.Win64.EMOTET.A Vulnerability: Arbitrary Code Execution Description: The malware looks for and executes a x64-bit "CRYPTBASE.dll" PE file in its current directory. Therefore, we can hijack the DLL and execute […]
  • BACKDOOR.WIN32.ASYNCRAT / Arbitrary Code Execution Maggio 14, 2024
    Posted by malvuln on May 14Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/2337b9a12ecf50b94fc95e6ac34b3ecc.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Backdoor.Win32.AsyncRat Vulnerability: Arbitrary Code Execution Description: The malware looks for and executes a x32-bit "CRYPTSP.dll" PE file in its current directory. Therefore, we can hijack the DLL and execute […]
  • Re: Panel.SmokeLoader / Cross Site Request Forgery (CSRF) Maggio 14, 2024
    Posted by malvuln on May 14Updated and fixed a payload typo and added additional info regarding the stored persistent XSS see attached. Thanks, Malvuln Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/4b5fc3a2489985f314b81d35eac3560f_B.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Panel.SmokeLoader Vulnerability: Cross Site Request Forgery (CSRF) - Persistent XSS […]
  • Panel.SmokeLoader / Cross Site Request Forgery (CSRF) Maggio 14, 2024
    Posted by malvuln on May 14Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/4b5fc3a2489985f314b81d35eac3560f_B.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Panel.SmokeLoader Vulnerability: Cross Site Request Forgery (CSRF) Family: SmokeLoader Type: Web Panel MD5: 4b5fc3a2489985f314b81d35eac3560f (control.php) SHA256: 8d02238577081be74b9ebc1effcfbf3452ffdb51f130398b5ab875b9bfe17743 Vuln...
  • Panel.SmokeLoader C2 / Cross Site Scripting (XSS) Maggio 14, 2024
    Posted by malvuln on May 14Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/4b5fc3a2489985f314b81d35eac3560f.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Panel.SmokeLoader Vulnerability: Cross Site Scripting (XSS) Family: SmokeLoader Type: Web Panel MD5: 4b5fc3a2489985f314b81d35eac3560f (control.php) SHA256: 8d02238577081be74b9ebc1effcfbf3452ffdb51f130398b5ab875b9bfe17743 Vuln ID:...
  • Panel.Amadey.d.c C2 / Cross Site Scripting (XSS) Maggio 14, 2024
    Posted by malvuln on May 14Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/50467c891bf7de34d2d65fa93ab8b558.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Panel Amadey.d.c Vulnerability: Cross Site Scripting (XSS) Family: Amadey Type: Web Panel MD5: 50467c891bf7de34d2d65fa93ab8b558 (Login.php) SHA256: 65623eead2bcba66817861246e842386d712c38c5c5558e50eb49cffa2a1035d Vuln ID:...
  • Re: RansomLord v3 / Anti-Ransomware Exploit Tool Released Maggio 14, 2024
    Posted by malvuln on May 14Updated, fixed typo SHA256 : 810229C7E62D5EDDD3DA9FFA19D04A31D71F9C36D05B6A614FEF496E88656FF5
  • RansomLord v3 / Anti-Ransomware Exploit Tool Released Maggio 14, 2024
    Posted by malvuln on May 14Proof-of-concept tool that automates the creation of PE files, used to exploit Ransomware pre-encryption. Updated v3: https://github.com/malvuln/RansomLord/releases/tag/v3 Lang: C SHA256: 83f56d14671b912a9a68da2cd37607cac3e5b31560a6e30380e3c6bd093560f5 Video PoC (old v2): https://www.youtube.com/watch?v=_Ho0bpeJWqI RansomLord generated PE files are saved to disk in the x32 or x64 directories where the program is run from. Goal is to exploit...
  • APPLE-SA-05-13-2024-8 tvOS 17.5 Maggio 14, 2024
    Posted by Apple Product Security via Fulldisclosure on May 14APPLE-SA-05-13-2024-8 tvOS 17.5 tvOS 17.5 addresses the following issues. Information about the security content is also available at https://support.apple.com/HT214102. Apple maintains a Security Releases page at https://support.apple.com/HT201222 which lists recent software updates with security advisories. AppleAVD Available for: Apple TV HD and Apple TV 4K (all […]

Customers

Newsletter

{subscription_form_2}