What is the best way to deploy Node.js?
I have a Dreamhost VPS (that's what they call a VM), and I have been able to install Node.js and set up a proxy. This works great as long as I keep the SSH connection that I started node with open.
2016 answer: nearly every Linux distribution comes with systemd, which means forever, monit, etc. are no longer necessary - your OS already handles these tasks.
myapp.service file (replacing 'myapp' with your app's name, obviously):
[Unit] Description=My app [Service] ExecStart=/var/www/myapp/app.js Restart=always User=nobody Group=nobody Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/var/www/myapp [Install] WantedBy=multi-user.target
Copy your service file into the
Tell systemd about the new service with
Start it with
systemctl start myapp.
Enable it to run on boot with
systemctl enable myapp.
See logs with
journalctl -u myapp
More details at: How we deploy node apps on Linux, 2016 edition