I honestly really appreciate the advice, it's been super helpful. I have now amended the article. I will revisit it tonight and go into a little more detail explaining what everything does.
Brother, there's a million ways to skin a cat. The article is already 2000 words long and took me a long time to write/test. Going into huge amounts of detail isn't within the scope of the article.
A appreciate the feedback you posted below, and will be making modifications to the article to address some things I wasn't aware of
But, the setup works. There is no zero downtime. I've been using this setup for my smaller applications for over a year and I've never had downtime. Ever.
Also, I rarely provision in bash and haven't provisioned a server manually for a very long time. I use Ansible. But, regular node developers are unlikely likely to be using Vagrant, Docker, Ansible, Chef etc. I didn't want to include that complexity.
I'll address these issues today. You could have gave the feedback without the ear bashing but I'll take that as you're being "cruel to be kind" :)
I hadn't seen pass until after I write this script. The main reason I developed PassMan was mostly for learning and practice and to brush up on my bash scripting.
This project is not intended to be a sample application. As it stands it's a simple starter kit to avoid having to repeat the same configurations for every application. I created it purely for personal use, and decided to share it.
Over time I will be adding more features. Today PouchDB and CouchDB remote replication has been added comply with offline first development practices. Along with a few other tweaks. Next I'll be adding common React components that I use often in my own commercial projects.
It's every growing, and an attempt to get contributors to jump on board to create something that will be beneficial and helpful to all.