Autostart Node.js app (Ghost Blog) on server restart

After my preparation and installation of Ghost, I'm stuck with setting my DO Ubuntu to auto-start itself on server restart. I was suggested to use forever, and I do use it, however as far as I can understand from the concept of it; forever is just to keep the process running once it's started, and it vanishes (needs to be manually started) on each restart.

I'm looking for a solid solution that will keep multiple nodejs apps alive, even when the server is restarted or completely crashed.

DigitalOcean's one-click Ghost app use an Upstart script to have Ghost start on boot. It looks like:

description "Ghost: Just a blogging platform"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectedly trigger a respawn
respawn

setuid ghost
setgid ghost
env NODE_ENV=production
chdir /var/www/ghost

exec /usr/local/bin/npm start --production

pre-stop exec /usr/local/bin/npm stop --production

and it is installed to /etc/init/ghost.conf This has the added benefit of allowing you manage it like any other service on your server with commands like sudo service ghost restart

For howtoinstallghost.com, allghostthemes.com, ghostforbeginners.com we use pm2 to keep Ghost running. We have a write up on how to setup pm2 here:

http://www.allaboutghost.com/keep-ghost-running-with-pm2/

You want to set it up as an init.d script so that you can start it or stop it as a service (and set it up to autostart using chkconfig).

Details are here: https://help.ubuntu.com/community/UbuntuBootupHowto

Note that's in addition to using things like Forever and Monit to restart on service crash and so on.