Deploy node.js on cloudfoundry.com
Deploy node.js on cloudfoundry.com
Instructions to create a simple node.js app called node_app
and then upload and run it on cloudfoundry.com.
In order to use cloudfoundry.com, you need to sign up and have your account approved. Do that now because approval does not happen immediately.
\---
We will first get our node.js app working locally.
Download and install the latest node.js.
Change directory to where your code lives and then do:
$ mkdir node_app
$ cd node_app
Install the express
package using the built in npm
(node package manager).
$ npm install express
In your favorite editor, create a file called app.js
and put the following
in it:
var app = require('express').createServer();
app.get('/', function(req, res){
res.send('The node.js app is working...');
});
app.listen(process.env.VCAP_APP_PORT || 8000);
Now you can run the app locally with:
$ node app.js
Test your app by going to: http://localhost:8000
\---
You should now have a working local version of your app, lets get it working on cloudfoundry.com.
You will need to have ruby and rubygems installed. Then you want to install
vmc
:
$ sudo gem install vmc
Now lets start using vmc.
$ vmc target api.cloudfoundry.com
$ vmc login
(use the credentials from the approval email)
$ vmc passwd
(optional: change password to something you will remember)
We need to add the details of our app before we push it, so in a file called
package.json
add:
{
"name":"node_app",
"version":"0.0.1",
"dependencies":{
"express":""
}
}
Due to a bug, you will need to remove the symlink in the express module in order for a push to vmc to work.
$ rm node_modules/.bin/express
Now we need to push our app to cloudfoundry.com:
$ vmc push node_app
(all the defaults are fine)
Note:
When doing $ vmc push node_app
, my machine had issues with a couple installed
gems: Invalid gemspec in [_gem_spec_]: invalid date format in specification:
"2011-08-17 00:00:00.000000000Z"
I had to update the date format in my gem files, described
here, in order for the push to
work.
There you go. You now have a node.js app running on cloudfoundry.com. Enjoy…