Node.js e Plesk Giacomo Lanzi

Node.js via SOD hosting panel

If you are interested in hosting Node.js apps on your web space, we have good news! The control panel offered by SOD, based on Plesk, is equipped with a Node.js extension that allows you to easily manage applications. In this article we see how it is possible to integrate Node through the control panel.

Host a Node.js application from the Plesk panel

To verify that everything is working, let’s try hosting a Node.js application in the panel. We will use a generic “Hello, World” application. To do this, we will use the Git extension that you find directly from the panel. It would also be possible to upload the application directly to the server, but I thought that implementing a second extension could also be useful for the purposes of this mini guide.

Once you have accessed the SOD Plesk panel, you will need to create a destination folder for the application. Select the “Files” tab, create a “hello-world” folder. From the “Websites & Domains” tab, among the available components, select Git. If you own more than one domain, be sure to select the option under the correct one.

Create Folder by Application

The second screen on where to find the Git icon:

Git icon

Setting up a local repository

Now let’s set up a local repository as a clone of a remote one to download the code to the folder you created a moment ago. The URL of the repository we will clone is: https://github.com/plesk/node-hello-world.git

To do this, click on the Git icon, set the URL in the space provided and select the “hello-world” folder you created a while ago.

Repository settings

Differences between “Application root” and “Document root” folders

The next step is to change the Document root folder for the domain. Note that the Document root and Application root folders are not the same. When we talk about web apps (such as those based on Node.js), the document root is the position where the static resources are located, while the application root is the root directory where the app. In most cases, the Document root is a folder within the Application root.

Right now we need to change the document root. To do this, go to the “Websites & Domains” panel, select the correct site and go to “Hosting Settings” (right above Git) and click the link:

Root of documents - Node.js

Change the current “Document root” to hello-world/public.

Enable support for Node.js

Before running the “Hello World” app, the last thing you need to do is enable support for Node.js on the domain. Then go to the “Websites & Domain” panel and click on the appropriate option. Here you can see some information about the app. Click on “Enable Node.js” and in a few moments this will be enabled.

Enable Node.jsAbilitato

At this point, if everything went well, clicking on the “Application URL” you should see a screen that says “Hello World!”. Congratulations, you have just installed and run an app on your domain.

Applications with dependencies

Applications built with Node.js, more often than not, must satisfy dependencies that are defined in the package.json file, which is installed in the “node_modules” directory.

Let’s look at another ExpressJS-based application. You can find it in its repository, upload it manually, or repeat the steps described in the previous section. Here is the repository: https://github.com/plesk/node-express.git. Once you have things sorted out, you will find yourself as in the screenshot below, assuming you have cloned the repository in the express-demo folder:

Node.js Express-demo

Install the dependencies and change the startup file

Before trying to access the app, you need to initialize it. Let’s start by installing the dependencies. Fortunately, in the Plesk panel of SOD, there is a simple “NPM install” button. This is done to install app dependencies based on the “package.json” file. Install the dependencies this way, for convenience.

Finally, we need to set up the app’s startup file. Plesk uses the Phusion Passenger server application to service the Node.js apps. In the demonstration repository, there is a file called “server.js”. This, which is not a common part of ExpressJS-based apps, contains a few lines of code necessary to make the app work:

const app = require (‘./ app’);
const http = require (‘http’);

http.createServer (app) .listen (process.env.PORT);
You can use the idea behind this file when hosting other Node.js applications, for example based on a different framework. The last thing you have to do is change the “Application Startup File” option and set it to “server.js”.

Node.js Startup File

At this point, browsing to the address that hosts the app, you should see the ExpressJS welcome screen.

Solve problems

For every Node.js developer it is essential to know how to identify problems to find a solution. To do this, here are a couple of tips that might help you Debug.

Checking the log file

The first thing to do when debugging a Node.js application is to check the log files. For example, if you forget to install the dependencies for the Express demo app, the server error log will contain the error “cannot find module ‘express'”. Unfortunately, due to how Phusion Passenger works, server level error logs are used instead of per domain error logs. In this case, end users will see a simple generic error message.

To check the server log messages, go to the “Websites & Domain” panel, under the domain concerned, look for the log option. Clicking on it will give you access to a screen of the logged messages.

 

See messages directly on the app screen

It can be very useful to see the error messages directly on the app website, without looking for the option in the control panel. Go to the Node.js app settings screen and change the application mode to “development”. The next time a problem occurs, the error will be shown in the browser window.

Furthermore, if the app is in “development” mode, it is not necessary to restart the app every time you change the contents of a file.

Conclusions

As we have seen, implementing Node.js applications on your domain is really simple with the Plesk control panel of the SOD hosting service, which is once again very flexible, intuitive and easy to use.

If you want to try this and other features, you can test the demo version by simply clicking here.

Useful links:

VPS hosting services – Cloud server

 

 

 

 

Share


RSS

More Articles…

Categories …

Tags

RSS darkreading

RSS Full Disclosure

  • SEC Consult SA-20240513-0 :: Tolerating Self-Signed Certificates in SAP® Cloud Connector May 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 May 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 May 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) May 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) May 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) May 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) May 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 May 14, 2024
    Posted by malvuln on May 14Updated, fixed typo SHA256 : 810229C7E62D5EDDD3DA9FFA19D04A31D71F9C36D05B6A614FEF496E88656FF5
  • RansomLord v3 / Anti-Ransomware Exploit Tool Released May 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 May 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_1}