I have just completed a full stack attendance tracking app for my team. I am an intermediate level programmer and took this experience to learn webdev. The app is isomorphic, fronted by HTML/CSS/Javascript and backed up Node; Express; Node Modules et all and MongoDB.
The app has been tested on localhost and is working fine.
Now this app is going to need to be installed or "perched" on a server, which also hosts several other of the team's internal applications. I installed the npm-pack-all module; used this module to output a .tgz (which contains all source files).
I did an npm install of the .tgz, and ran the application on my localhost again, and it worked fine. I did this with the assumption that me distributing the .tgz to the administrator of the interal team server, will enable him to simply do npm i install of the .tgz and then run the application. But I am not sure if the .tgz has bundled node too; otherwise npm i install .tgz on the internal team server wouldn't work unless the internal team server has node installed on it already. Also the mongodb database is missing, as the database has some pre-configured collections and data. This means that mongodb will have to be installed on the internal team server, and I will have to create all those collections again, and all that initial data again.
Moving on from the aforementioned approach, I also wanted to explore other options. I was going through some threads, and noticed mention of .exe and .msi ; but I am not sure where to start.
My problem statement is this:
- I just need to distribute the completed application (source files with database) to the internal team server administrator.
- It will help if the administrator or anyone does not see the source files or source files' content; or if that's not possible; at least the source files need to be protected from being modified.
- It will help if the mongodb database and/or node js run-time is also installed (if not already installed on that server) with the same 'production-ready' configuration. In other words, in the case of mongodb, it will install with all the collections and the default data that was created during development.
Pls help!