Wednesday, January 27, 2016

PM2 - Setup

Recent changes to the project now have it completely running under Node/Express/PM2. Details of the change(s) should be posted on the project's WIKI, but I thought it important enough to share what I've learned. This link was very helpful to get started. When adding the application to PM2, the following line is used to register/start the application: (THIS ONLY NEEDS TO BE RUN ONCE. There is an entry in /etc/init.d that will run the PM2 Daemon on server startup) pm2 start server/app.js –u app-www --watch --name app -- --app http://################### Let's break it down (now):
  1. "pm2" : The name of the cool Node Management platform that "on-the-fly" devotes resources to the given apps.
  2. "start" : Creates a new application
  3. "server/app.js" : The location of the main application .js
  4. "-u app-www" : The user to run under. We don't want PM2 to run as ROOT for security purposes, especially on port 80 or 443.
  5. "--watch" : Vital and saves each deployment from having to restart the application on each deployment. This is newly in place and still being tested. I originally thought it best to send a command after deployment was complete (and still do) but this may be just as good, and baked into the functionality of PM2.
  6. "--name app" : Force the name of the application (there could be many, but not in this current case). It's possible to run multiple applications under the same PM2 umbrella.
  7. "--" : Tells PM2 that everything after is a parameter to be sent to the Node Application
  8. Everything else, see below.
app Node Options: -a, --app path to app [string] [required] -c, --crt path to crt* [string] -k, --key path to key* [string] -d, --debug enable debug [boolean] NOTE: When this is enabled, the site will run on Port 8080 -h, --help Show help [boolean] *Required to run site under SSL.