0
votes

I am currently trying to develop an administration panel for (game)servers using node.js

Digging through the huge amount of articles, stackoverflow questions and resources that are scattered through the internet I came to the conclusion that this setup would make sense to me:

  • Node.js at the server, express on top of that, with an angular.js frontend
  • MongoDB as database to store "core" and persistent data (user accounts to statistics to messages etc.)
  • Redis as storage for data that needs to be immediately available for multiple users and updated frequently. Data that isn't needed if no user is online (live server data, for example)

Now the problem: this administration panel would also be distributed to "regular" users, therefore it's going to be used by people with little knowledge about the technologies used to develop it. For example: the small server hosted on a home PC. As a direct consequence it's going to be used on most Operating Systems as well.

Technically, there's no problem with that. You can install the 3 core softwares and be fine. However, setting up everything might be difficult and not user friendly for most people of my userbase.

So here's the question:

Is there a way (or has it already been developed) to run redis and mongo ON a node.js wrapper therefore eliminating the need of installing and maintaing 3 separate processes?

The scenario would be: A user downloads my application that has a mongodb server and a redis server inside it (downloaded and installed by the wrapper appropriately based on OS etc.) that are run by the node.js wrapper, that also manages stability and crash recoveries.

1
why don't you just provide an install script for each platform that will download, install and configure mongo, redis, and node.js for your app?chovy
Edited the question. Although your solution makes sense, I still like the idea of a wrapper more.Luke Rager

1 Answers

0
votes
  • Make a script downloading and building the binaries on linux, mac, and windows. Be aware redis is not officially supported on windows but there is a version available.
  • Use node child_process to run manage the datastores
  • use nexe to create a node.js binary. It will not support dynamic modules or native modules, which may present a problem.