Smarx Role is a Windows Azure role that supports publishing web applications written in Node.js, Ruby, and Python. Apps are published/synchronized via Git or blob storage, allowing nearly instantaneous changes to published applications.
It automatically pulls in dependent modules using each language's package manager (npm, Gem, or pip).
For an overview of the Smarx Role and how it works, see
smarx's talk at MIX 2011
This software, when executed, requires you to download and install programs from third-parties that are in no way affiliated with Microsoft. These programs are: Python 2.7.1, Ruby 1.9.2, Node.js 0.4.7, and msysgit 1.7.4. The licenses for those products are
between you and the relevant third parties and are available at the projects' homepages:
The simplest way to deploy a Smarx Role is to grab one of the precreated packages from the
, and deploy via the
Windows Azure portal
For the actual application bits that you deploy, the requirements are relatively simple:
- The application must reside either at a Git URL or in a blob container (details specified in
- The application should be written in Python, Ruby, or Node.js, with a file called app.py, app.rb, or app.js.
- The application will be executed with the parameters
-p #### -e production, where #### is the port the application should listen on for incoming HTTP requests.
- The application should specify dependent modules via pip, Gem, or npm conventions. (Smarx Role will execute
pip install -r Pipfile,
bundle install, and npm install --verbose for you before running your code.)
If you want, you can write CoffeeScript
coffee -o . src/*.coffee
before executing your code, so, for example, you'll want a file called
if you're writing your main Node.js application in CoffeeScript. (Of course, you can simply compile your
down to .js
before committing/uploading it.)