Engine Yard is proud to introduce full support for Node.js. Many of our customers have asked for it and we're thrilled to see what we can achieve together. We're providing support for Node.js 0.8 today, with 0.6 support due this week.

Trial users may deploy a Node.js application for 500 free hours to evaluate our service and get comfortable with what we provide.

To start, sign up or log into Engine Yard Cloud. Define a new application and choose Node.js as the application type. Then choose your cluster configuration and boot the cluster. After the cluster has booted, your application will automatically be deployed.

We encourage you to include a package.json file in your Node.js applications which defines the expected Node version and dependencies. We also recommend an app.js file in the root of your application to boot it. You can then use our web interface or command line deploy tool.

The Node.js stack on Engine Yard Cloud optionally allows Node.js to serve all TCP traffic, including HTTP and WebSockets. If you have a solo instance, little additional configuration is needed. On a cluster, your WebSocket backend must have a shared socket store: we do not currently have sticky sessions between application instances. If you're using socket.io, it includes a RedisStore option for just this case. We'll be improving and simplifying WebSocket support as we collect more information from our customers.

If you participated in our Node.js Early Access program or your environment shows as “Legacy”, please contact Engine Yard Support to help you migrate to the new production Node.js stack.

This week we will continue to enhance the Node.js experience by providing support for npm start as well as the ability to switch Node.js versions (for example, to use Node.js 0.6). While we do not yet support mixed Ruby and Node.js environments, we're planning to add additional deploy hooks to customize the Engine Yard Node.js experience without any need for Ruby code. Our command line deployment tool is currently installed as a Ruby gem rather than an NPM package.