Elegí estas dos opciones PaaS porque son gratis, fáciles y excelentes para arrancar con una aplicación de NodeJS en la nube.
Los pasos los voy a mostrar con Linux, pero no deberían variar en Windows, o la Manzanita.

Antes de arrancar, es necesario tener nuestro package.json en orden, pueden ver del tema en este post.

Arranquemos creando un web server con Express de la forma simple:

mkdir sitioEnNode
cd sitioEnNode
npm install express
node_modules/express/bin/express
 

Ahora que tenemos nuestro servidor web con Express vamos a ver que tenemos creado el package.json donde tenemos las dependencias (por ejemplo a jade), asi que primero vamos a instalarlas:

npm install
 

Con esto vamos a instalar desde npm las dependencias declaradas en el package.json.

Iniciamos la aplicación para probar que todo esté en orden e ingresamos a http://localhost:3000:

node app.js
sitioEnNode server listening on port 3000 in development mode
 

Nodejitsu

Primero ingresamos a Nodejitsu, nos creamos un usuario y lo activamos
Luego nos queda instalar el cliente:

npm install -g jitsu
 

Si estas en linux, necesitas permisos de root para instalar con npm como global (parámetro -g), para eso ingresa sudo antes de toda la linea anterior.

Ahora nos queda autenticarnos, ya que es la primera vez que usamos el cliente:

jitsu login
 

Eso es todo, ahora hagamos un deploy!, vamos a la carpeta que creamos antes con nuestro web server:

cd sitioEnNode
jitsu deploy
 

Nos va a preguntar:

prompt: subdomain (sitioEnNode): sitioEnNode //nombre del subsominio

prompt: scripts.start (server.js): app.js //js del server

prompt: version (0.0.0): 0.6.12 //version de node

 

Estas preguntas son para configurarlas en nuestro package.json (si no estan las propiedades, las crea)

Y eso es todo para Nodejitsu, simplemente entramos al sub-dominio y tenemos el deploy de la app. :)


Nodester

Con Nodester es distinto, pero no mas difícil, utiliza Git para los deploys por lo que en realidad nuestro deploy es un repositorio más (nos proporciona otras formas también).

Primero tenemos que pedir un cupón para el acceso (por lo general no tarda mas de 2 días)

curl -X POST -d "email=you@gmail.com" http://nodester.com/coupon
 

Despues de recibir el cupón, instalamos el cliente

npm install nodester-cli -g
nodester user setup <user> <pass>
nodester user setkey
 

Para seguir con el ejemplo, vamos a deployar la misma aplicación que creamos al principio, así que nos movemos a la carpeta y creamos una app de nodester

cd sitioEnNode
nodester app create sitioEnNode app.js
 

El create nos va a dar el puerto donde va a estar corriendo la app, asi que confirmemos que tengamos nuestro app.js en ese puerto (o, en este ejemplo no va a ser necesario cambiar nada porque el autogenerado de express ya viene pensado para usar el puerto del proceso o 3000 si no tiene)

nodester app info sitioEnNode
 

Nos va a dar una url al repo de git donde se inició la app, por ejemplo: git@nodester.com:/node/git/algo/caracteresLocos, entonces ahora agregamos un remoto a ese repo:

En caso de no tener un repo git en esa carpeta, primero tenemos que iniciarlo y comitear los archivos

git init
git add .
git commit -m "commit inicial"
 
git remote add nodester git@nodester.com:/node/git/algo/caracteresLocos
git push nodester master
 

Y listo, cada vez que queramos subir cambios es un push al remoto nodester (último comando)

Acordate que es git, el comando push va a subir SOLO lo que se encuentre commiteado


Dominios Personalizados

Para cerrar con el deploy vamos a configurar un dominio personalizado. El subdominio alcanza para algunos casos, pero en otros queremos registrar nuestro dominio y apuntarlo al deploy.

A la fecha de este post Nodester y Nodejitsu no poseen DNS registrados en nic.com

Teniendo en cuenta eso, vamos a hacerlo con A-Record en nic.com.

Después de registrar el dominio, vamos a nuestra cuenta de nic.com, sección dominios y le damos al boton Launch.
Eso nos va a llevar a la pagina de administracion de dominios (Domain Manager), en esa pantalla vamos a tener una sección “DNS Manager”, la cual va a tener información cargada, si no esta la información y recién registran esperen un rato (mas o menos una hora).

Dentro de esa información van a ver esta linea (con una IP real):

A  @  XXX.XXX.XXX.XXX

Y mas abajo un link launch, click a ese link!.

Lo vamos a hacer es modificar esa IP a la que nos da Nodester o Nodejitsu.

Les recomiendo no modificar el nombre del host ( @ ), ya que está relacionado con otras configuraciones.

Les dejo las IPs de Nodester y Nodejitsu

Luego de modificar y guardar, tienen que esperar un par de horas, pero mientras esperamos vamos a avisar que tenemos un dominio:

Nodejitsu

En el package.json agregamos una propiedad más “domain” donde ponemos nuestro/s dominio/s

//...otras configuraciones


"subdomain": "sitioEnNode",
"domains": [
  "sitioEnNode.com",
  "www.sitioEnNode.com"
],

//...otras configuraciones

 

Nodester

En la consola ejecutamos el appdomain de nodester para setear nuestro dominio.

nodester appdomain add sitioEnNode sitioEnNode.com
nodester appdomain add sitioEnNode www.sitioEnNode.com
 

Bueno, con eso ya tendríamos una aplicación en NodeJS deployada y con dominio copado, que tal?
Si tienen dudas, quieren agregar algo o cambiar, comenten!


Algunos Links:</p>