DEV Community

Cover image for How to Host Nodejs/Express Applications on Namecheap cPanel
Abdulfatai Suleiman
Abdulfatai Suleiman

Posted on

How to Host Nodejs/Express Applications on Namecheap cPanel

What is Namecheap?

Namecheap is an ICANN-accredited domain name registrar, which provides domain name registration and web hosting.

Getting Started

Step 1: Write some code!

We will create a simple Express application and host it on Namecheap on this tutorial.

Write some code!

const express = require('express');
const app = express();

const PORT = process.env.PORT || 8000;

app.get('/', (req, res) => {
  res.send('Hello world');
});

app.get('/:name', (req, res) => {
  const name = req.params.name;
  res.send(`Hello ${name}`);
});

app.listen(PORT, () => console.log(`Server is running on PORT ${PORT}`));
Enter fullscreen mode Exit fullscreen mode

Save the code above in a file named app.js. When you run it, you should get a result similar to the images below.
Alt Text

Alt Text

Alt Text

Hosting Express on cPanel

This section assumes we have created a Namecheap account and purchased a domain along with hosting.

Step 2: Log in to cPanel

image

Step 3: Create a NodeJs Application

cPanel has tools for operations like SSL management, Databases, File management, Emails, Site metrics, Domain management, etc. Navigate to the SOFTWARE section and select Setup Node.js App.
image

The following interface will be displayed there:
image

Next, click the CREATE APPLICATION button on the right side of the screen.
Alt Text

You will see a screen similar to the one above, select a Node.js version (preferably the latest). Provide a name for your application in the Application root form field, and select the domain/subdomain you want the app hosted on in the Application URL section.
Alt Text

Step 4: Upload the Express Application to cPanel

Navigate to the FILES section in cPanel and select File Manager. It is a tool that allows for the management of files on our server.
image

Next, zip your local project, upload it to the cPanel file manager. Then unzip it on the server.
Alt Text

Alt Text

Step 5: Install Project Dependencies

Open the Node.js App page again and scroll down and open the project.

Click on the Run NPM Install button.
Alt Text

Alt Text

Step 6: Restart the Node.js Application

Whenever you make changes to the web application, you have to restart the application to effect the changes. To do this, scroll up on the Node.js App page and locate the RESTART button, then click it.
Alt Text

Congratulations! You have successfully hosted a Node.js/Express application on Namecheap cPanel. It is accessible via the domain you linked to the app during its creation.

Alt Text

Conclusion

We saw the possibility of hosting Node.js web applications on cPanels like Namecheap and learned how to host a Node.js project on cPanel. If you have any questions, don't hesitate to contact me on Twitter: @iamnotstatic

Top comments (9)

Collapse
 
krlz profile image
krlz

I did the same thing, but its important to define the correct path for this to work, any other but not the root /, otherwise you will have a conflict with what is already being handle in the public folder

app.get('/nottherrot', (req, res) => {
res.send('Hello world');
});

Collapse
 
halltech profile image
Olajide Ayomide

I am getting an error
The node binary used for scripts is /home/cebilute/nodevenv/rest-api/14/bin/node but npm is using /opt/alt/alt-nodejs14/root/usr/bin/node itself. Use the--scripts-prepend-node-pathoption to include the path for the node binary npm was executed with.

Collapse
 
atlas7005 profile image
Atlas

Doesn't work for me, I just get redirected to the "Default Web Site Page" thing, when trying to access the app.

Collapse
 
iamnotstatic profile image
Abdulfatai Suleiman

Oh sorry to hear that, have you resolved it?

Collapse
 
olatuneday profile image
Oladosu Olatuneday

i have same problem, pls how did u go about yours?

Collapse
 
olatuneday profile image
Oladosu Olatuneday

Doesn't work for me, I just get redirected to the "Default Web Site Page" thing, when trying to access the app

Collapse
 
iamnotstatic profile image
Abdulfatai Suleiman

You need to add "RewriteEngine off" to your .htaccess file

Collapse
 
jacksonemmanuel profile image
Jackson

Should the .htaccess file be in the project root?

Thread Thread
 
iamnotstatic profile image
Abdulfatai Suleiman

Yeah