RSS Feed

NodeJS en la nube con Nodejitsu y Nodester

5

julio 16, 2012 by - @pjnovas

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:


  • http://twitter.com/El_Jurgen Jorge Altieri

    Muy bueno! Justo iba a ver el tema de los dominios personalizados y me ahorraste la búsqueda.

    Heroku también parece ser una buena opción gratuita.

  • http://programaelfuturo.hol.es/ H Maza

    muy buen post me ayudoo bastante ahora que estoy ingresando al mundo de nodejs

  • Pingback: payday loans

  • Pingback: Salas de Chat

  • Pingback: Kirk