I'm currently in a similar situation (going to deploy my first application on a private VPS), and here is the list I came up with:
1- Error logging : here I used a simple WriteStream , nothing unusual.
var fs = require('fs');
2- Use Forever to ensure that your script runs continuously. Yes, they have many other solutions (e.g. daemon ), but I have been using it forever for some time and have never had any problems.
3- Consider setting up the admin interface. This was actually a requirement in my case, so I went ahead with a smog that would look very nice, especially for your client :).
4- If you use forever, you can control its status using Monit . Check out this blog post for basic setup.
5- If you are using Mongo, consider developing a backup strategy for your data. This page is a very good starting point .
Please note that this list does not contain support information for multiple applications, multiple machines, or multi-core processors.
If you are interested in multi-app support, nginx seems like a reliable solution. This (brilliant) SO answer will help you tweak.
If you have many spare machines to use, node-http-proxy was developed by nodejitsu and allows you to expose only one machine and the reverse -proxy - the rest.
If you are looking for multi-core support, cluster comes bundled with node, so you can create N different processes (N is the number of cores you have) and ask them to listen on the common port.
And, since we all love hearing a pleasant story, here are a few posts about using nodejs / mongodb in production and lessons learned:
1- Lessons learned from i.TV launch
2- Using Mongodb for 2+ billion documents on Craigslist