Skip to content

Commit

Permalink
Modificada descripción e instalación en el README
Browse files Browse the repository at this point in the history
  • Loading branch information
germaaan committed Feb 23, 2016
1 parent f7332b1 commit 5723362
Showing 1 changed file with 13 additions and 66 deletions.
79 changes: 13 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,105 +9,52 @@
-------------------


Portal de transparencia de la [UGR](http://www.ugr.es/) para publicar los datos y hacerlos accesibles y tratables. La aplicación web está diseñada en [Node.js](http://nodejs.org/) junto con [Express](http://expressjs.com/) y [Jade](http://jade-lang.com/). [Express](http://expressjs.com/) es un framework para desarrollar aplicaciones web mientras que [Jade](http://jade-lang.com/) es un módulo para trabajar con plantillas y poder implementar la arquitectura Modelo Vista Controlador.
Portal de transparencia de la [UGR](http://www.ugr.es/) para publicar los datos y hacerlos accesibles y tratables. Desarrollado con [Node.js](http://nodejs.org/) y [Express](http://expressjs.com/).

La aplicación es accesible desde [http://transparente.ugr.es/](http://transparente.ugr.es).
La aplicación es accesible desde <http://transparente.ugr.es>.

## Instalación manual
0.- Se asume que `git` se encuentra instalado en el sistema, en caso contrario:

1. En caso de no tener instalado `git`:
```
sudo apt-get install git
```

1.- Lo primero es instalar **Node.js**. Para ello primero instalamos el paquete `python-software-properties` que nos permite añadir repositorios mediante el comando `add-apt-repository`. Seguidamente añadimos el repositorio para instalar **Node.js**, actualizamos la lista de paquetes e instalamos `nodejs`.

2. Instalamos **Node.js**:
```
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update && sudo apt-get install nodejs
wget -qO- https://deb.nodesource.com/setup_4.x | sudo bash -
sudo apt-get install -y nodejs
```

Comprobamos que **Node.js** y **NPM** (su gestor de paquetes) se han instalado correctamente.

```
node -v
npm -v
```

2.- Descargamos todo el contenido del repositorio para poder ejecutar la aplicación. Es preferible que siempre hagamos el clonado de un repositorio mediante SSH para lo que es necesario que primero hayamos subido nuestra clave SSH a GitHub. En la propia página de GitHub explican como hacerlo desde [aquí](https://help.github.com/articles/generating-ssh-keys/).

```
git clone git@github.com:oslugr/ugr-transparente-servidor.git
```

Si tuviéramos problemas con la conexión SSH, siempre podremos seguir haciéndolo mediante HTTPS:

3. Descargamos todo el contenido del repositorio para poder ejecutar la aplicación.
```
git clone https://github.com/oslugr/ugr-transparente-servidor.git
```

3.- Nos situamos en el directorio de la aplicación (`ugr-transparente-servidor`) y procedemos a instalar todas las dependencias necesarias para la aplicación.

4. Instalamos todas las dependencias de la aplicación:
```
cd ugr-transparente-servidor
sudo npm install
```

Comprobamos también que las dependencias de todos los módulos se cumplen:

```
npm list --depth=0
```

4.- El puerto que el servidor va a estar escuchando para resolver peticiones deberemos indicarlo en el archivo `package.json`. Para que la aplicación sea accesible de forma pública, tendremos que poner como puerto de escucha obligatoriamente el puerto 80, ya que este es el puerto por defecto al que los navegadores harán las peticiones por defecto.

Si estamos probando la aplicación de forma local, podemos usar cualquier puerto, pero siempre con un número superior a 1024, ya que los inferiores a este son puertos reservados por el sistema; por ejemplo, vamos a usar el 3000.

También tenemos que indicar la IP o el URL del servidor en el que estará la aplicación ejecutándose; por ejemplo, para la ejecución de prueba ejecutamos la aplicación localmente en la dirección IP `127.0.0.1`, para la ejecución de acceso público ejecutamos la aplicación en el servidor `transparente.ugr.es`.

Indicaremos el puerto con la variable `PORT` y la IP o URL con la variable `IP`. Ambas variables se las pasamos a la aplicación en el script de inicio `npm start`.
- Configuración local:

```
{
...
"scripts": {
"start": "PORT=3000 IP=127.0.0.1 forever start -l /var/log/forever.log -a -o /var/log/out.log -e /var/log/err.log ./app.js",
...
}
```

- Configuración pública:

```
{
...
"scripts": {
"start": "PORT=80 IP=transparente.ugr.es forever start -l /var/log/forever.log -a -o /var/log/out.log -e /var/log/err.log ./app.js",
...
}
```

6.- Por último solo nos queda, arrancar la aplicación mediante un script de inicio del archivo `package.json`. Es imprescindible que ejecutemos este script con permisos de superusuario debido a que los archivos de registro se almacenarán en directorios que requieren dichos permisos.

5. Finalmente iniciamos la aplicación:
```
sudo npm start
npm start
```

- Si se ha realizado la configuración para una instalación pública, al abrir el navegador y acceder a la dirección correspondiente (como es [http://transparente.ugr.es](http://transparente.ugr.es)), la aplicación debería estar funcionando para ser accesible desde cualquier lugar con acceso a internet.
- Si se ha realizado la configuración para una instalación local, al abrir un navegador y acceder a la dirección [http://localhost:3000](http://localhost:3000), la aplicación debería estar funcionando para ser accesible solo desde el entorno local.

7.- Cuando queramos detener el proceso tendremos que usar el script `kill` que hay en el archivo `package.json`.

6. Igualmente podemos reiniciar o detener la aplicación de una forma similar:
```
npm run-script kill
npm restart|stop
```

# Instalación automática (aprovisionamiento)
También podemos instalar la aplicación automáticamente aprovisionando el servidor con todo lo necesario mediante [Ansible](http://www.ansible.com/home).

1.- En este caso lo primero que tenemos que hacer asegurarnos que tenemos conexión mediante SSH al servidor, para simplificar la conexión copiaremos nuestro archivo de claves al servidor; a considerar que `USUARIO` es el usuario con el que accedemos al servidor y que `transparente.ugr.es` es la dirección de nuestro servidor en este caso.
1. En este caso lo primero que tenemos que hacer asegurarnos que tenemos conexión mediante SSH al servidor, para simplificar la conexión copiaremos nuestro archivo de claves al servidor; a considerar que `USUARIO` es el usuario con el que accedemos al servidor y que `transparente.ugr.es` es la dirección de nuestro servidor en este caso.

```
ssh-copy-id USUARIO@transparente.ugr.es
Expand Down

0 comments on commit 5723362

Please sign in to comment.