Node.js apps run on Flashcloud shared and WordPress hosting through cPanel's Setup Node.js App tool. You don't provision a process manager, reverse proxy, or systemd service yourself. Pick a Node version, tell cPanel where your code lives and what file starts it, and cPanel keeps the process running.
See Deploying a Node.js app for the full walkthrough; this article covers the parts people get stuck on.
Creating the application
Open cPanel from your hosting service (see Accessing cPanel if you need the one-click login), then find Setup Node.js App under Software. Click Create Application and set:
- A Node.js version from the dropdown.
- The Application root, the folder your code lives in relative to your home directory.
- The Application URL, the domain or subdomain the app answers on.
- The Application startup file, the entry point that boots your server, typically
app.js,server.js, orindex.js.
Saving creates an isolated environment for the app pinned to the Node version you chose. That pin is per-application: if you add a second app on a newer Node version later, it won't disturb this one.
Installing dependencies
Get your files onto the server before installing anything, either through the portal's file manager, an FTP/SFTP client, or by pulling from a repository with Git Version Control in cPanel. Once your package.json is in the application root, open Setup Node.js App, find your application in the list, and use its detail page to run npm install with the app's pinned Node version rather than whatever Node happens to be on the system path.
Starting and restarting the app
Once dependencies are installed, go back to Setup Node.js App and start the application. cPanel keeps the process running and restarts it if it crashes. After you deploy new code or change environment variables, use the restart option on the same screen. Don't rely on the process picking up changes on its own.
If your app reads configuration from environment variables, set them in Setup Node.js App rather than a local .env file the process might not load.
Scheduled and background work
If part of your app is a scheduled task rather than the long-running server itself, such as a nightly cleanup script or a periodic queue drain, don't try to run it as a second Node process inside the same app. Drive it from Cron Jobs instead, using the app's own Node environment to invoke the command.
Why not run node directly over SSH
You can start a Node process manually over SSH, but it dies when your shell session ends unless you wrap it in something like screen, tmux, or a process manager you maintain yourself. Setup Node.js App exists so you don't have to build that yourself. cPanel supervises the process and restarts it on crash. Use the tool rather than a bare node app.js &.
When Node.js on shared hosting isn't enough
Setup Node.js App handles typical apps well: web servers, APIs, small background workers driven by cron. If your app needs high concurrency, WebSocket connections held open for long periods, custom native dependencies, or a build toolchain heavier than npm install, a VPS gives you dedicated resources and full control instead of a shared slot. Tell our team what the app needs.
If the app won't start
- Wrong startup file: confirm the entry point in Setup Node.js App matches the file that actually calls
listen()or otherwise boots your server. - Missing modules: make sure you ran
npm installusing this application's own Node version, not a system-widenpm. - Port conflicts: let cPanel assign the port through the environment variable it provides rather than hardcoding a port number in your app.
- Application root mismatch: the root must point at the folder containing
package.json, not a parent or subfolder.
If you've checked all of that and the app still won't come up, open a ticket from the portal's Support section. It's a real person on the other end, not a bot, and they'll help you troubleshoot the app.