Sunday, April 7, 2013

MicroNodeAppliance - an ultra light Linux VM with NodeJS

Some time ago, I wanted to run a virtual web server on a machine with not enough storage to hold another complete OS.

I decided to aim at the smallest possible Linux distribution, and I found MicroCore, a ~8MB system at the base of TinyCore. Beautiful! I created a starting environment following this guide, and then installed NodeJS.

There are pros and cons in using this solution:

Pros:
  • ~29MB VM image size
  • Boots in a few of seconds
  • Can create many VMs in the same machine before running out of memory
  • It runs in memory, so if you break something just reboot to revert to the last state (see cons)
  • CLI only
Cons:
  • It runs in memory, so a script must be run to persist the changes to the storage (see pros, if you haven't already done it!)
  • Not recommended for beginners

I wonder how would it perform if mounted on the instances of a distributed system!
Here you can download the .ova file:


I'm not sure if stuff like this requires a license, in any case I wrote a bunch of files including a README and a cron file. In doubt, they are released under the WTFPL.

Hopefully it can be used for something good!

4 comments:

  1. QA from beginner: How to save the changes to disk?

    ReplyDelete
    Replies
    1. Hi Volodymyr, sorry for the delay.
      To persist changes to disk you can either use the backup command (which will ask for confirmation) or run filetool.sh -b.
      Keep in mind that only some folders are saved with the backup process. The list can be found in the file /opt/.filetool.lst and you can extend it as needed.

      Delete
  2. How do you share the files between host and client?

    ReplyDelete
    Replies
    1. Hi Rick,
      You could use vsftpd, which is already installed on the VM.
      I found this guide on how to set it up: http://www.m-opensolutions.com/?p=582

      Delete