Deploy a Node.js App on Shared Hosting via cPanel | Tutorial

👉 More tutorials like this: openjavascript.info
‍🎓 NEW: Earn a professional certificate in web development from Meta Inc. (course links in card below) 👇
⚡ Looking for high-performance, afforable web hosting? We use HostWithLove: bit.ly/3V2RM9Q ❤️
This tutorial shows you how to deploy a Node.js App on a shared hosting account that supports Node.js apps via cPanel.
#nodejs #cpanel #sharedhosting #app #deploy #webdevelopment #tutorial
🔔 Subscribe for more tutorials just like this: / @openjavascript
⚡Web development professional certificates from Meta Inc.⚡
Front-End Developer Professional Certificate: imp.i384100.net/b3dMek
Back-End Developer Professional Certificate: imp.i384100.net/gbYorg
iOS Developer Professional Certificate: imp.i384100.net/Jr7qj2
Meta Android Developer Professional Certificate: imp.i384100.net/oeYnGo
Meta Database Engineer Professional Certificate: imp.i384100.net/BX7KGB
Website: openjavascript.info

Пікірлер: 109

  • @OpenJavaScript
    @OpenJavaScript Жыл бұрын

    UPDATE: The hosting provider I am using in this video (HostWithLove: bit.ly/3V2RM9Q) now allows you to run apps in Node 18.14 (and also still older versions, if you prefer). I highly recommend them if you do not already have shared hosting space for their great support and fair pricing.

  • @user-xi6ln9ni8n

    @user-xi6ln9ni8n

    9 ай бұрын

    Plese, where is the files (app, package, package lock)?

  • @johnmahugu
    @johnmahuguАй бұрын

    i have shared hosting, but i am coming from a PHP and Python back ground. i can see node js app setup here on my shared server. read three books cover to cover, struggled with this for 3 years, you sorted me out in less than 5 minutes. you have absolutely no idea how grateful and happy i am right now. thank you so much bro. I owe you big. biiiiiig simba big. :D

  • @johnmahugu
    @johnmahuguАй бұрын

    did the freecodecamp courses and aced everything, this is the only part where i was seeing pitch blackness. thank you so much.

  • @naqeebnazir8052
    @naqeebnazir805210 ай бұрын

    Well explained. Thank you ❣❣

  • @bichocurioso6769
    @bichocurioso676910 ай бұрын

    Thank you from Brazil.

  • @MrTonyradford
    @MrTonyradford2 ай бұрын

    Thanks for this!

  • @delidag
    @delidag7 ай бұрын

    Hello. Thanks for useful information. This is best tutorual for me. I didn't know it was running Apache Server Node.

  • @xxxtentacionking
    @xxxtentacionking Жыл бұрын

    Thanks It is working

  • @urssaf343
    @urssaf3434 ай бұрын

    One could also serve the Node app via pm2 or forever. That could take care of the directory listing vulnerability.

  • @shivap6094
    @shivap609411 ай бұрын

    Hi, In my nodes application I have used Nuxt.js and deployed in Cpanel but I am getting 503 issue. Should I reinstall node_modules?

  • @phidinh3766
    @phidinh3766 Жыл бұрын

    Hi sir, I'm uploading a Nextjs 13 to cPanel, I see that on the select node version just appears 14.x while my app is using 16.x version? Does it work well? I tried to upload with version 14.x on cPanel but its not working and I get an error some packages not compatible with npm and node version

  • @Onesmo
    @Onesmo5 ай бұрын

    thank you for this video

  • @jetlinkarkha9659
    @jetlinkarkha9659 Жыл бұрын

    I made a website using html,css, javascript for frontend and express nodejs for my backend and my storage using mongodb and store in AWS and run in local host,but I want to deploy my website so can you please help me how to upload and also how to add domain for my website

  • @Pakhtun148
    @Pakhtun1489 ай бұрын

    Hello, im trying to deploy my Node Project over the C Panel however when Installing the dependencies, the Npm takes forever and causes error later on. Could uou help me with that?

  • @cjceditzz8933
    @cjceditzz89338 ай бұрын

    Thank you😊

  • @peterkabiru5144
    @peterkabiru5144 Жыл бұрын

    Well explained, Thank you

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You're welcome!

  • @nikhildhote1746

    @nikhildhote1746

    Жыл бұрын

    @@OpenJavaScript Hi, how can we set up staging environment here

  • @sumajapanesetechnologies6358
    @sumajapanesetechnologies635811 ай бұрын

    Nodejs is it supported to business web hosting plan of the Hosting

  • @joewatson8357
    @joewatson835710 ай бұрын

    Is there any extra activities related to deployed the node js web application

  • @sweetysnehith9692
    @sweetysnehith96927 ай бұрын

    Hi sir Can you please share how can we host nodejs project in iis with static url, kindly help me sir

  • @Toulkun
    @Toulkun Жыл бұрын

    Is it okey if i have react client part of website in one folder, Nodejs server in second folder, mysql as third folder and all three of those folders to be inside one root folder for all of them to be deployed to Cpanel?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    Ideally, these should be in separate locations: frontend in the public_html folder, Node.js app usually in its own folder in the root folder and you can access your MySQL database(s) via phpMyAdmin in cPanel. You could try this but I wouldn't recommend it for security (potentially making sensitive data more accessbile) and also compatibility (cPanel is usually set up to expect MySQL to be stored in a separate location). But, the good news is, all three can interact with each other when dpeloyed. So you could make a request from your React app to a Node.js server that then contacts your MySQL database. For how to interact with a MySQL server in Node.js, I cover that in this tutorial: kzread.info/dash/bejne/qquax8ukY8W2oNo.html If you have any questions about it, let me know in the comments on that video.

  • @T1m9m
    @T1m9m Жыл бұрын

    Thank you so much;

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You are welcome!

  • @surendraojha3258
    @surendraojha325810 ай бұрын

    its only basic , i am stuck on deploying it on shared hosting, running server and displaying message is not issue , i want my all routes worked perfectly . It only showing server is running , when I opened my site!!

  • @bala2222222
    @bala22222223 ай бұрын

    Thank you

  • @Noritoshi-r8m
    @Noritoshi-r8m6 ай бұрын

    To get this to work did you paid for a VPS plan or just a regular Hosting plan?

  • @Toulkun
    @Toulkun Жыл бұрын

    In new Cpanel version when creatinf subdomains we have to use Domains instead, subdomains have been deprecated, but once i want to make new subdomain it automatically places it under public_html. Can you please make a new video on updated Cpanel?

  • @kizitoryan4271

    @kizitoryan4271

    2 күн бұрын

    Hello I'm wondering if you found a solution to this

  • @bluvelvet1ez499
    @bluvelvet1ez4993 ай бұрын

    i dont have a subdomain tool on my cpanel, but i have everything else, what to do, please help

  • @shubhanshusahuu
    @shubhanshusahuu4 ай бұрын

    Thanks

  • @skmahmoodsameer2933
    @skmahmoodsameer293311 ай бұрын

    for me it's 503 error coming, what to do?

  • @tirancm
    @tirancm10 ай бұрын

    thanks

  • @antonymwangi6083
    @antonymwangi6083 Жыл бұрын

    How do I create a storage database in Cpanel and be able to access it in the NodeJs website?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    I did just post a video on this very topic: kzread.info/dash/bejne/qquax8ukY8W2oNo.html If you have any questions, let me know in the comments.

  • @user-ql3yi9nd7f
    @user-ql3yi9nd7f11 ай бұрын

    Where you have hosted, Hostinger, Hostgator or any other platform

  • @user-vw3ir4xw2y
    @user-vw3ir4xw2y9 ай бұрын

    can you do CI/CD version

  • @jaturon2746
    @jaturon27467 ай бұрын

    i try to run npm index.js but it say "permission denied". Can anyone help?

  • @kamranhassan8466
    @kamranhassan8466 Жыл бұрын

    When node app was not running the whole file where listed and anyone can view this, does this mean if our app is crashed and anyone enter then he will be able to see our backend files ??? If yes then it will be a Big issue if not then how we be sure that our backend file is secured

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    Good question! There are actually a few ways of doing that: 1) Set the "application root" to a folder that is not the same as the main folder for the domain you are running the app on. Then, if the app crashes, the folder doesn't contain the app files. 2) Use a full stop in front of any files that are in the domain folder you don't want to server (e.g. ".app.js"). Though this can be error-prone. 3) Change the folder permissions so that the folder cannot be read (can be done in cPanel file manager). Probably 1 and 3 are the most secure solutions.

  • @Backend.FrankGP
    @Backend.FrankGP8 ай бұрын

    thank

  • @abevahananya607
    @abevahananya6075 ай бұрын

    3:38 Hello my friend, which server are you using? I have Hostgator VPS. I don't have the option to (setup node.js app) app in my cpanel.

  • @lyricseditorIN

    @lyricseditorIN

    5 ай бұрын

    have you done setup, tried SSH?

  • @alinmarian3922
    @alinmarian3922 Жыл бұрын

    What about if we want to host the app on a main domain...not subdomain. how do we do that?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    First thing I would try is setting the Application URL ( around 3:50 in the video ) to the main domain when setting up a new Node app. If this doesn't work, it's likely that there is a conflict between your hosting service being set up to serve files from your public_html folder and your attempt to serve a Node.js app on that domain. In this case I'd contact your web host to let them know you'd like your hosting configured to serve your Node app on the main doamin.

  • @technologycatalog
    @technologycatalog Жыл бұрын

    Thank you for this video, i just subscribe to your channel, Can i access my cpanel outside namecheap?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You can only access your cpanel with your hosting provider but you might also be able to connect to your shared hosting space via SSH (if you provider supports it). If 'terminal' is available in your cpanel, it means you probably have access and can do it. Otherwise you should contact your host. They may even provide documentation!

  • @alalyrealestate1136
    @alalyrealestate1136 Жыл бұрын

    thankyou

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You're welcome!

  • @user-cl7uy1ub6u
    @user-cl7uy1ub6u Жыл бұрын

    omg no indian accent thanks to you ^^

  • @AliS219
    @AliS219 Жыл бұрын

    very good

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    Thanks!

  • @tuurgevers9459
    @tuurgevers9459 Жыл бұрын

    does someone by any chance know how to use cpanel with a newer version of node i need atleast 16?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    The hosting provider I am using in this video (HostWithLove: bit.ly/3V2RM9Q) now allows you to run apps in Node 18.14 (and also still older versions, if you prefer). If you already have shared hosting with cPanel, the easiest way would be to contact your hosting provider, asking them to update it on their side. If you have command line access (not always allowed) and are comfortable with using it (I wouldn't advise this if you are not), you may consider updating yourself.

  • @Toulkun

    @Toulkun

    Жыл бұрын

    Agree they made unnecessary changes. I have hard times settting up NodeJS now due to retarded update.

  • @sharfuddinzishan4490
    @sharfuddinzishan44908 ай бұрын

    MongoClient mongoose not supported?

  • @vishalrahangdale3624
    @vishalrahangdale3624 Жыл бұрын

    Can you show process of editing code of nextjs or adding new file after deployment

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    If you make changes to your app itself and want these to be effective, you need to redeploy it. The simplest way would be to stop your app, update the files in the files folder (application root path) and then start the app again. If you just change the files if the application root path without redeploying, these won't be effective.

  • @vishalrahangdale3624

    @vishalrahangdale3624

    Жыл бұрын

    @@OpenJavaScript but we have to run "npm run build" command so that application get ready for deployment then how to do that. I tried but it's not working.

  • @vishalrahangdale3624

    @vishalrahangdale3624

    Жыл бұрын

    @@OpenJavaScript can you make video on it for nextjs app.

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    ​@@vishalrahangdale3624 That's a good idea for a tutorial, which I will make soon For now, try this: Creare the following server.js file in your project (code from Next.js website): // server.js const { createServer } = require('http') const { parse } = require('url') const next = require('next') const dev = process.env.NODE_ENV !== 'production' const hostname = 'localhost' const port = 3000 // when using middleware `hostname` and `port` must be provided below const app = next({ dev, hostname, port }) const handle = app.getRequestHandler() app.prepare().then(() => { createServer(async (req, res) => { try { // Be sure to pass `true` as the second argument to `url.parse`. // This tells it to parse the query portion of the URL. const parsedUrl = parse(req.url, true) const { pathname, query } = parsedUrl if (pathname === '/a') { await app.render(req, res, '/a', query) } else if (pathname === '/b') { await app.render(req, res, '/b', query) } else { await handle(req, res, parsedUrl) } } catch (err) { console.error('Error occurred handling', req.url, err) res.statusCode = 500 res.end('internal server error') } }) .once('error', (err) => { console.error(err) process.exit(1) }) .listen(port, () => { console.log(`> Ready on ${hostname}:${port}`) }) }) Then change the script section in your package.json file to this: "scripts": { "dev": "node server.js", "build": "next build", "start": "NODE_ENV=production node server.js" } After this, run 'npm run build' locally and then upload the resulting files to the 'application root' folder you specify in cPanel and set the 'application startup file' also in cPanel to server.js. Then, deploy your app as per this tutorial and it should hopefully be working.

  • @asdfhgasedrawrfaafrawsdfae6161
    @asdfhgasedrawrfaafrawsdfae6161 Жыл бұрын

    What is the nodejs version in local?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You can host a Node app locally by following this tutorial: kzread.info/dash/bejne/mpmfq6qff8zSZZM.html

  • @a.anvarbekov
    @a.anvarbekov Жыл бұрын

    it is so weird that there is no "Setup Node.js App" section in "SOFTWARE". What should i do. I was going to deploy Nextjs

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    To deploy your Next.js app in the way I did in this tutorial, you need to follow a few preparatory steps. Someone else asked about this, so I'll copy in the answer again here: --- Creare the following server.js file in your project (code from Next.js website): // server.js const { createServer } = require('http') const { parse } = require('url') const next = require('next') const dev = process.env.NODE_ENV !== 'production' const hostname = 'localhost' const port = 3000 // when using middleware `hostname` and `port` must be provided below const app = next({ dev, hostname, port }) const handle = app.getRequestHandler() app.prepare().then(() => { createServer(async (req, res) => { try { // Be sure to pass `true` as the second argument to `url.parse`. // This tells it to parse the query portion of the URL. const parsedUrl = parse(req.url, true) const { pathname, query } = parsedUrl if (pathname === '/a') { await app.render(req, res, '/a', query) } else if (pathname === '/b') { await app.render(req, res, '/b', query) } else { await handle(req, res, parsedUrl) } } catch (err) { console.error('Error occurred handling', req.url, err) res.statusCode = 500 res.end('internal server error') } }) .once('error', (err) => { console.error(err) process.exit(1) }) .listen(port, () => { console.log(`> Ready on ${hostname}:${port}`) }) }) Then change the script section in your package.json file to this: "scripts": { "dev": "node server.js", "build": "next build", "start": "NODE_ENV=production node server.js" } After this, run 'npm run build' locally and then upload the resulting files to the 'application root' folder you specify in cPanel and set the 'application startup file' also in cPanel to server.js. Then, deploy your app as per this tutorial and it should hopefully be working.

  • @a.anvarbekov

    @a.anvarbekov

    Жыл бұрын

    I know how to setup up my app. The problem is that I don't see the "Setup Nodejs App" button

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    @@a.anvarbekov Ah, I see. In this case it's most likely that your hosting provider does not support Node.js in cPanel. I'd first contact them to see if the will install it for you. Otherwise, you might consider a hosting provider that will support Node.js apps. If you do go down that route, you might consider using the one I do in the video, HostWithLove (Node comes installed as standard): bit.ly/3V2RM9Q

  • @ZeeWorldx23

    @ZeeWorldx23

    4 ай бұрын

    ​@@OpenJavaScript next js 14 required node js 18.7. but in my shared namecheap hosting we have node js 14 only. I am getting an error on the electron pkg. any solution? I would appreciate your help.

  • @rdpaulgarcia
    @rdpaulgarcia11 ай бұрын

    I LOVE YOU "CABRON" JEJEJE

  • @ramendrasoni3368
    @ramendrasoni3368 Жыл бұрын

    Nodejs version 16 is supported or not...?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    Yes, 16 is supported as well as 18 by the host I'm using. I used the default version upon creating a new app in this video but you can select a more recent one.

  • @tomashernandez9027
    @tomashernandez9027 Жыл бұрын

    It works fine, except for the static files, it doesn't seem to find them, how is it configured?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    You are in luck! I did a tutorial on serving static files recently: kzread.info/dash/bejne/mK2Xj5aSncqypZM.html

  • @ryanchristiansen
    @ryanchristiansen5 ай бұрын

    This is for a subdomain. That is such a boundary condition - few people would ever want this. People want to create an app for their domain, or on shared hosting with another one of their domains.

  • @user-xi6ln9ni8n
    @user-xi6ln9ni8n9 ай бұрын

    Plese, where is the filrs (app, package, package lock)?

  • @user-xi6ln9ni8n

    @user-xi6ln9ni8n

    9 ай бұрын

    Plese, where is the files (app, package, package lock)?

  • @Tima-ql7on
    @Tima-ql7on Жыл бұрын

    Sir node.js application is not showing to me why?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    There's a good chance that Node.js isn't showing in cPanel because it hasn't been installed on your server. If you have an existing hosting package, you should contact your host and ask them if it is possible to install. Otherwise, you might consider the host I'm using in this video, HostWithLove, which has packages that come Node.js installed as standard: bit.ly/3V2RM9Q

  • @TaprobanaOrg
    @TaprobanaOrg Жыл бұрын

    💙💙

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    💙

  • @evoli9305
    @evoli9305 Жыл бұрын

    How can Cpanel know that the express server is on port 3000?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    When creating a new Node application, you specify an application startup file (e.g. app.js) and from this the port number to run the server on is read. In this example, 'app.listen(process.env.PORT || 3000)' is specified, meaning that when deploying, the server will first look to the value of the PORT environment variable for your suggested port and, if no value is present, use 3000. But note that, on a shared server via cpanel (unlike locally, where you have full control over your computer as a server), your application may be silently run on a different port from the one you suggest.

  • @evoli9305

    @evoli9305

    Жыл бұрын

    @@OpenJavaScript so when a client app calls the server, it automatically redirect the request from the http default port to the 3000?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    ​ @EVOLI The server that is hosting and running cPanel makes the final call on which port to run your app. It will configure the Node app running on that port to be served when a request comes in to domain you are choosing to run your app on. The port you specify is suggested for the hosting server (it may run on the port you suggest or a different one).

  • @evoli9305

    @evoli9305

    Жыл бұрын

    @@OpenJavaScript so clear! Thank you!

  • @OP_Jeinimitsu
    @OP_Jeinimitsu10 ай бұрын

    I'm facing a ssl issue.. I can't download any npm pack from npm commands, issue 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY'. SSL is ok, I did the procedure with autossl. I know I can bypass by setting strict-ssl=false, but the problem shows up again when, in discordjs, I try to connect to my own sql server. Same ssl issue. Any idea how to resolve? I've no more ideas, I'm near desperate -.-

  • @cyeljin7326

    @cyeljin7326

    10 ай бұрын

    same issue here have you found a solution?

  • @johnmahugu
    @johnmahuguАй бұрын

    imagine i had to go pay for a full cloud server coz i couldnt find a way to host the apps i had made for clients which were running fine offline but on shared hosting .... tears. hehehehee

  • @_Greenflag_
    @_Greenflag_7 ай бұрын

    Presenting an how-to-deploy-an-application-tutorial for beginner which has a MAJOR SECURITY issue is great. NEVER !!! upload your server files inside your main domain name. If your application is offline or your server crashed, ALL SOURCES CODE IS LEAKED and can be freely downloaded just by visiting the domain name.

  • @teenytinyteetee

    @teenytinyteetee

    7 ай бұрын

    This makes sense to me so are we supposed to host our server files on a different domain?

  • @_Greenflag_

    @_Greenflag_

    7 ай бұрын

    Sure. Create of configure a new domain name and store your files in a different folder. If you put your source code inside your domain name, all your files will be leaked as at 3:23

  • @M3R14M.

    @M3R14M.

    6 ай бұрын

    Wouldn't password protection solve this?

  • @_Greenflag_

    @_Greenflag_

    6 ай бұрын

    @@M3R14M. As far as I know, there is no such option on Cpanel. Just store your files in a different folder than your domain name.

  • @timileyin457

    @timileyin457

    5 ай бұрын

    Password protect a crashed server? 😮

  • @AngelliaX
    @AngelliaX7 ай бұрын

    this is a SECURITY HAZARD, for any newbies out there knowing nothing about hosting, yet get a hosting and come accross your video, do the same, then boom they are at a risk of exposing their whole app the app shouldnt be host on the same folder as the public files

  • @kwanelekhumalo
    @kwanelekhumalo Жыл бұрын

    Doesn't work! Am I the only one?

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    What seems to be the issue?

  • @efoobright5041

    @efoobright5041

    Жыл бұрын

    @@OpenJavaScript RangeError: WebAssembly.instantiate(): Out of memory: wasm memory at internal/deps/cjs-module-lexer/dist/lexer.js:1:33593 at async initCJSParse (internal/modules/esm/translators.js:72:5) at async Loader.commonjsStrategy (internal/modules/esm/translators.js:185:18)

  • @efoobright5041

    @efoobright5041

    Жыл бұрын

    @@OpenJavaScript It works without any dependencies, but with express only it dosen't works. is it a problem with the physical memory ? actually i have only 1Go.

  • @nourdraw1548

    @nourdraw1548

    Жыл бұрын

    Spent 3 days trying node on Cpanel. All kinds of errors!

  • @OpenJavaScript

    @OpenJavaScript

    Жыл бұрын

    ​@@efoobright5041 It's unlikely to be size-related as Express isn't that large relative to your limit. Because it's working only without dependencies I would guess it's a problem of node_modules being uploaded correctly. If npm install in cPanel isn't working for you (when the app is stopped), I would recommend trying to upload the node_modules folder to the root directory of your app yourself. I have tried this previously and it fixed a similar issue.

  • @johnmahugu
    @johnmahuguАй бұрын

    5 minutes !!!!

  • @user-zy3jo9lx4t
    @user-zy3jo9lx4t8 ай бұрын

    waste of time to watch