How to Host Nodejs/Express Applications on Namecheap cPanel
Tags: javascript, webdev, devops, beginners
Published: 2021-02-08 15:46:34

### 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!
```js
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}`));
```
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](https://dev-to-uploads.s3.amazonaws.com/i/wabzvsy8uz4dl9tlx27j.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/xd1fyzwu6tvtsdfzpg1w.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/orjgsjjopxze34aml5t8.png)

## 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](https://dev-to-uploads.s3.amazonaws.com/i/in7vo1vcqwb97q5xm47q.png)
 
#### 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](https://dev-to-uploads.s3.amazonaws.com/i/fizwsgr9dk7qux538qbm.png)
 
The following interface will be displayed there:
![image](https://dev-to-uploads.s3.amazonaws.com/i/qr59nbv34khynuszxwf0.png)

Next, click the CREATE APPLICATION button on the right side of the screen.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/i38ea3w4r9jotou0qufq.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/uwo7ixe3wyfe8f7xdxah.png)

#### 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](https://dev-to-uploads.s3.amazonaws.com/i/l0q5f5e2ythfxa4e07ko.png)

Next, zip your local project, upload it to the cPanel file manager. Then unzip it on the server. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/dg0jae83r9ytvijy72f4.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/brnmqse3oiy6gesio4zv.png)

#### 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](https://dev-to-uploads.s3.amazonaws.com/i/gybg8rb0clyyfd1g0yq1.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/djd94ejqi9ob7zw0i5ge.png)

#### 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](https://dev-to-uploads.s3.amazonaws.com/i/e7gls34pi6226u6kgk0o.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/4mjytix6xkxh2lyzoc58.png)

## 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](https://twitter.com/iamnotstatic)