Where to place node.js files on server?
I have just gotten a VPS to bring my first node.js project online, but I am wondering where do I place the node files like app.js if I want it to be accessible at http://www.mywebsite.com:3000?
Right now, to host a website, I am using WHM to create a cPanel account, which creates
/home/cpanelusername and my HTML/PHP files all go into
/home/cpanelusername/public_html. Where does node.js files go to? Or did I get this step wrong as well?
On my Mac where I developed the node app, I simply
cd into the directory containing the node file and run
You have to execute app.js file using the node binary, just like you do in local development. That means that you should probably make that execution a service call, the details of which depend on your linux distro. If it's not a service call, then executing it in ssh will mean that the app stops working once you log out of ssh.
For example, in Ubuntu server (which I use) I have an Upstart script which automatically runs my node.js app automatically on system start and log to /var/log. An example of the file, named /etc/init/myapp.js.conf is:
description "myapp server" author "Me" # used to be: start on startup # until we found some mounts weren't ready yet while booting: start on started mountall stop on shutdown script # We found $HOME is needed. Without it we ran into problems export HOME="/root" exec node /home/me/myapp/myapp.js 2>&1 >> /var/log/myapp.log end script
Replace names, etc. as necessary.
Edit to add: You can then start and stop your service by running:
sudo start myapp.js or
sudo stop myapp.js