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 latest release
, edit ServiceConfiguration.cscfg
, 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 ServiceConfiguration.cscfg).
- 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
before executing your code, so, for example, you'll want a file called src/app.coffee
if you're writing your main Node.js application in CoffeeScript. (Of course, you can simply compile your .coffee
down to .js
before committing/uploading it.)