Commit 69e36133 authored by D'jalmar Gutierrez's avatar D'jalmar Gutierrez
Browse files

se realizaron cambios para la puesta en produccion del sistema

parent e4bd895c
// Generated on 2016-03-11 using generator-angular-fullstack 3.3.0 // Generated on 2016-03-11 using generator-angular-fullstack 3.3.0
'use strict'; 'use strict';
module.exports = function (grunt) { module.exports = function(grunt) {
var localConfig; var localConfig;
try { try {
localConfig = require('./server/config/local.env'); localConfig = require('./server/config/local.env');
} catch(e) { } catch (e) {
localConfig = {}; localConfig = {};
} }
...@@ -176,7 +176,9 @@ module.exports = function (grunt) { ...@@ -176,7 +176,9 @@ module.exports = function (grunt) {
options: { options: {
map: true, map: true,
processors: [ processors: [
require('autoprefixer')({browsers: ['last 2 version']}) require('autoprefixer')({
browsers: ['last 2 version']
})
] ]
}, },
dist: { dist: {
...@@ -208,14 +210,14 @@ module.exports = function (grunt) { ...@@ -208,14 +210,14 @@ module.exports = function (grunt) {
env: { env: {
PORT: process.env.PORT || 9001 PORT: process.env.PORT || 9001
}, },
callback: function (nodemon) { callback: function(nodemon) {
nodemon.on('log', function (event) { nodemon.on('log', function(event) {
console.log(event.colour); console.log(event.colour);
}); });
// opens browser on initial server start // opens browser on initial server start
nodemon.on('config:update', function () { nodemon.on('config:update', function() {
setTimeout(function () { setTimeout(function() {
require('open')('http://localhost:8080/debug?port=5859'); require('open')('http://localhost:8080/debug?port=5859');
}, 500); }, 500);
}); });
...@@ -282,6 +284,15 @@ module.exports = function (grunt) { ...@@ -282,6 +284,15 @@ module.exports = function (grunt) {
js: [ js: [
[/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'] [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images']
] ]
},
blockReplacements: {
base: function(block) {
if (!localConfig.BASE_URL) {
return ['<base href="/">'].join('');
} else {
return ['<base href="', localConfig.BASE_URL, '">'].join('');
}
}
} }
} }
}, },
...@@ -572,10 +583,10 @@ module.exports = function (grunt) { ...@@ -572,10 +583,10 @@ module.exports = function (grunt) {
server: { server: {
options: { options: {
compass: false, compass: false,
precision:8 precision: 8
}, },
files: { files: {
'.tmp/app/app.css' : '<%= yeoman.client %>/app/app.scss' '.tmp/app/app.css': '<%= yeoman.client %>/app/app.scss'
} }
} }
}, },
...@@ -653,12 +664,12 @@ module.exports = function (grunt) { ...@@ -653,12 +664,12 @@ module.exports = function (grunt) {
}); });
// Used for delaying livereload until after server has restarted // Used for delaying livereload until after server has restarted
grunt.registerTask('wait', function () { grunt.registerTask('wait', function() {
grunt.log.ok('Waiting for server reload...'); grunt.log.ok('Waiting for server reload...');
var done = this.async(); var done = this.async();
setTimeout(function () { setTimeout(function() {
grunt.log.writeln('Done waiting!'); grunt.log.writeln('Done waiting!');
done(); done();
}, 1500); }, 1500);
...@@ -668,7 +679,7 @@ module.exports = function (grunt) { ...@@ -668,7 +679,7 @@ module.exports = function (grunt) {
this.async(); this.async();
}); });
grunt.registerTask('serve', function (target) { grunt.registerTask('serve', function(target) {
// if (target === 'dist') { // if (target === 'dist') {
// return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']); // return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']);
// } // }
...@@ -701,7 +712,7 @@ module.exports = function (grunt) { ...@@ -701,7 +712,7 @@ module.exports = function (grunt) {
]); ]);
}); });
grunt.registerTask('server', function () { grunt.registerTask('server', function() {
grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
grunt.task.run(['serve']); grunt.task.run(['serve']);
}); });
...@@ -783,7 +794,7 @@ module.exports = function (grunt) { ...@@ -783,7 +794,7 @@ module.exports = function (grunt) {
// //
// else { // else {
// return grunt.task.run([ // return grunt.task.run([
// 'env:all', // '|:all',
// 'env:test', // 'env:test',
// 'mocha_istanbul', // 'mocha_istanbul',
// 'istanbul_check_coverage' // 'istanbul_check_coverage'
......
___ ___
## INSTALACIÓN # INSTALACIÓN
___ ___
Prerrequisitos ## Prerrequisitos
--------------
La siguiente instalación y configuración realizado en Sistema Operativo
Debian Jessie
**Creacion de Usuario en Sistema Operativo**
``` {.sourceCode .sh}
$ sudo adduser usuario_proyecto
```
**Agregar Usuario al grupo sudo del Sistema Operativo**
``` {.sourceCode .sh}
$ sudo adduser usuario_proyecto sudo
```
**Instalando GIT** **Instalando GIT**
...@@ -29,7 +13,7 @@ confiabilidad del mantenimiento de versiones de aplicaciones cuando ...@@ -29,7 +13,7 @@ confiabilidad del mantenimiento de versiones de aplicaciones cuando
Para la instalación realizar: Para la instalación realizar:
``` {.sourceCode .sh} ```
$ sudo apt-get install git $ sudo apt-get install git
``` ```
...@@ -44,7 +28,7 @@ a través de su administrador **NPM**. ...@@ -44,7 +28,7 @@ a través de su administrador **NPM**.
Durante el proceso de instalación necesitaremos este binario. Durante el proceso de instalación necesitaremos este binario.
``` {.sourceCode .sh} ```
$ sudo apt-get install curl $ sudo apt-get install curl
``` ```
...@@ -52,7 +36,7 @@ $ sudo apt-get install curl ...@@ -52,7 +36,7 @@ $ sudo apt-get install curl
Para añadir los repositorios de node.js version 4.x debemos de ejecutar: Para añadir los repositorios de node.js version 4.x debemos de ejecutar:
``` {.sourceCode .sh} ```
$ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - $ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
``` ```
...@@ -60,7 +44,7 @@ $ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - ...@@ -60,7 +44,7 @@ $ sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
Ahora realizaremos la instalación de node v4.4.0 Ahora realizaremos la instalación de node v4.4.0
``` {.sourceCode .sh} ```
$ sudo apt-get install -y nodejs $ sudo apt-get install -y nodejs
``` ```
...@@ -72,13 +56,13 @@ permitira descargar librerias y enlazarlas. ...@@ -72,13 +56,13 @@ permitira descargar librerias y enlazarlas.
Antes debemos de hacer la instalación de paquetes necesarios para un Antes debemos de hacer la instalación de paquetes necesarios para un
copilado correcto. copilado correcto.
``` {.sourceCode .sh} ```
$ sudo apt-get install build-essential $ sudo apt-get install build-essential
``` ```
Debemos de seguir de la siguiente manera: Debemos de seguir de la siguiente manera:
``` {.sourceCode .sh} ```
$ git clone http://github.com/isaacs/npm.git $ git clone http://github.com/isaacs/npm.git
$ cd npm $ cd npm
$ sudo make install $ sudo make install
...@@ -86,7 +70,7 @@ $ sudo make install ...@@ -86,7 +70,7 @@ $ sudo make install
Para verificar si esta instalado correctamente: Para verificar si esta instalado correctamente:
``` {.sourceCode .sh} ```
$ npm info $ npm info
``` ```
...@@ -95,59 +79,19 @@ $ npm info ...@@ -95,59 +79,19 @@ $ npm info
Un manejador de tareas, permite minimización, compilación, pruebas Un manejador de tareas, permite minimización, compilación, pruebas
unitarias, y mucho más. unitarias, y mucho más.
``` {.sourceCode .sh} ```
$ sudo npm install -g grunt-cli $ sudo npm install -g grunt-cli
``` ```
Backend-End
===========
**Instalando SASS** **Instalando SASS**
``` {.sourceCode .sh}
$ sudo gem install sass
```
**Instalando PostgreSQL**
PostgreSQL es un potente sistema de base de datos objeto-relacional de
código abierto.
- Instalación
``` {.sourceCode .sh}
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
```
- Configuración
Para poder realizar operaciones relacionadas con
``` {.sourceCode .sql}
PostgreSQL: >
$ sudo su - postgres
``` ```
$ sudo gem install sass
Creando usuario para el sistema:
``` {.sourceCode .sql}
postgres=# CREATE USER usuarioPersonal PASSWORD 'password';
```
Cambiando privilegios de usuario:
``` {.sourceCode .sql}
postgres=# ALTER ROLE usuarioPersonal WITH SUPERUSER;
```
Creando la Base de Datos para el sistema
``` {.sourceCode .sql}
postgres=# CREATE DATABASE moduloPersonalDb WITH OWNER usuarioPersonal;
``` ```
**Clonar repositorio** **Clonar repositorio**
``` {.sourceCode .sh} ```
$ sudo su - usuario_proyecto $ sudo su - usuario_proyecto
$ cd ~ $ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git $ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git
...@@ -156,19 +100,16 @@ $ cd ModuloPersonal ...@@ -156,19 +100,16 @@ $ cd ModuloPersonal
Para instalar las dependencias del servidor Para instalar las dependencias del servidor
``` {.sourceCode .sh} ```
$ npm install $ npm install
``` ```
Para iniciar el servidor de desarrollo en el puerto 9000 Para iniciar el servidor de desarrollo en el puerto 9000
``` {.sourceCode .sh} ```
$ grunt serve $ grunt serve
``` ```
Front-End
=========
**Instalando BOWER** **Instalando BOWER**
Bower te permite administrar los componentes que contienen HTML, CSS, Bower te permite administrar los componentes que contienen HTML, CSS,
...@@ -176,7 +117,7 @@ JavaScript, fuentes e incluso archivos de imagen. Bower no concatenar o ...@@ -176,7 +117,7 @@ JavaScript, fuentes e incluso archivos de imagen. Bower no concatenar o
minify código o hacer cualquier otra cosa - sólo instala las versiones minify código o hacer cualquier otra cosa - sólo instala las versiones
correctas de los paquetes que necesita y sus dependencias. correctas de los paquetes que necesita y sus dependencias.
``` {.sourceCode .sh} ```
$ npm install -g bower $ npm install -g bower
``` ```
...@@ -184,90 +125,120 @@ $ npm install -g bower ...@@ -184,90 +125,120 @@ $ npm install -g bower
Un lenguaje de programación dinámico y de código abierto. Un lenguaje de programación dinámico y de código abierto.
``` {.sourceCode .sh} ```
$ sudo apt-get install ruby-full $ sudo apt-get install ruby-full
``` ```
**Clonar repositorio** **Clonar repositorio**
``` {.sourceCode .sh} ```
$ sudo su - usuarioPersonal $ sudo su - usuarioPersonal
$ cd ~ $ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonalCliente.git $ git clone https://gitlab.geo.gob.bo/SistemaGestionAdministrativa/ModuloPersonalCliente.git
$ cd ModuloPersonal $ cd ModuloPersonalCliente
``` ```
Para instalar las dependencias del servidor Para instalar las dependencias del servidor
``` {.sourceCode .sh} ```
$ npm install $ npm install
``` ```
Para ara instalar las dependecias del cliente Para ara instalar las dependecias del cliente
``` {.sourceCode .sh} ```
$ bower install $ bower install
``` ```
Para iniciar el servidor de desarrollo en el puerto 9000 Para iniciar el servidor de desarrollo en el puerto 9000
``` {.sourceCode .sh} ```
$ grunt serve $ grunt serve
``` ```
Servidor NGinx ## Configuración de variables
==============
**Url del backend**
Se debe configurar la url del backend al cual se esta conectando. El archivo que se debe modificar es */server/config/enviroment/shared.js*, en el cual se debe cambiar el contenido actual por la url del backend que sera consumido:
```
serverAddress: 'http://192.168.1.171:9000',
```
### Configuración adicional
En el caso que el dominio sea de la forma:
```
http://dominio/carpeta
```
Se debe configurar en la aplicación, una variable en la cual se especifica la terminación de la url, en el caso del ejemplo se debe agregar */carpeta/* ya que la aplicación solo consideraria el dominio como *http://dominio/*. Esta configuración se la realiza en el archivo: */server/config/local.env.js*, en el caso de no existir el archivo, se puede usar como base el archivo local.env.sample.js, haciendo un renombramiento del mismo al nombre anteriormente dado, la variable que se debe configurar es:
```
BASE_URL: '/carpeta/',
```
## Puesta en producción
### Generación del compilado
Para compilar el proyecto se debe ejecutar el siguiente comando:
```
$ grunt build
```
Este comando genera la estructura de carpetas */dist/client/* dentro de la cual se encuentra el proyecto compilado
**La compilación debe realizarse despues de modificar los archivos de configuración, para que los cambios en estos tengan efectos**
Servidor nginx (pronunciado en inglés “engine X”) es un servidor ### Servidor
web/proxy inverso ligero de alto rendimiento, optimizado para
aplicaciones Node.js.
A continuación, instalar Nginx El servidor que se utilizara para publicar el sitio es *nginx*
``` {.sourceCode .sh} #### Instalar Nginx
```
$ sudo apt-get install nginx $ sudo apt-get install nginx
``` ```
Ahora abre el archivo de configuración del bloque servidor por defecto Ahora abre el archivo de configuración del bloque servidor por defecto
para la edición: para la edición:
``` {.sourceCode .sh} ```
$ sudo nano /etc/nginx/sites-available/default $ sudo nano /etc/nginx/sites-available/default
``` ```
Insertar la siguiente configuración. Asegúrese de sustituir su propio Insertar la siguiente configuración. Asegúrese de sustituir su propio
nombre de dominio para el server (o la dirección IP si usted no tiene un nombre de dominio para el server (o la dirección IP si usted no tiene un
dominio configurado), y la aplicación dirección IP-Privada del servidor dominio configurado) en el campo *server_name*.
para el APP\_PRIVATE\_IP\_ADDRESS . Además, cambiar el puerto ( 9000 ) Tambien debe configurar el path, este debe apuntar a la carpeta */dist/client/* del compilado
si la aplicación está configurado para escuchar en un puerto diferente: en el campo *root*
``` {.sourceCode .sh} ```
server { server {
listen 80; listen 80;
server_name test.adsib.gob.bo/carpeta;
root /home/frontend/client;
location /carpeta { #reemplazar la terminacion del dominio si tiene la forma http://dominio/carpeta
rewrite ^/carpeta(.*) $1 break;
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
try_files $uri$args $uri$args/ $uri $uri/ /index.html =404;
}
server_name sitio-de-prueba.gob.bo;
location / {
proxy_pass http://APP_PRIVATE_IP_ADDRESS:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
} }
``` ```
Una vez que haya terminado de añadir los bloques de localización para Una vez que haya terminado de añadir los bloques de localización para
sus aplicaciones, guardar y salir. En el servidor, reiniciar Nginx: sus aplicaciones, guardar y salir. En el servidor, reiniciar Nginx:
``` {.sourceCode .sh} ```
$ sudo /et c/init.d/nginx restart $ sudo /et c/init.d/nginx restart
``` ```
Esto configura la web del servidor para responder a las solicitudes en
su raíz. Suponiendo que nuestro servidor está disponible en example.com,
el acceso a <http://sitio-de-prueba.gob.bo/> a través de un navegador
web que enviar la solicitud a la dirección IP privada del servidor de
aplicaciones en el puerto 9000 , que se recibió y respondió a la Node.js
solicitud.
Readme Readme
====== ======
Este es el modulo de personal pertenece al sistema de gestión Este es el cliente__(página web)__ del sistema de Gestion de Personal.
administrativa. Esta aplicación esta desarrollada usando Angular 1.4
Se conecta con el backend del sistema de Gestion de Personal.
Equipo Equipo
------ ------
**Programadores** **Programadores**
* D'jalmar Gutierrez <dgutierrez@adsib.gob.bo> * D'jalmar Gutierrez <mailto:dgutierrez@adsib.gob.bo>
* Teodoro Nina <tnina@adsib.gob.bo> * Teodoro Nina <mailto:tnina@adsib.gob.bo>
**Pasante** **Pasante**
* Gustavo Callejas <gcallejas@adsib.gob.bo> * Gustavo Callejas <mailto:gcallejas@adsib.gob.bo>
Prerequisitos Prerequisitos
...@@ -25,7 +26,6 @@ Prerequisitos ...@@ -25,7 +26,6 @@ Prerequisitos
- [Git] - [Git]
- [Node.js and npm] Node \^4.2.3, npm \^2.14.7 - [Node.js and npm] Node \^4.2.3, npm \^2.14.7
- [Grunt] (`npm install --global grunt-cli`) - [Grunt] (`npm install --global grunt-cli`)
- [Postgresql]
Ejecución Ejecución
--------- ---------
...@@ -53,4 +53,3 @@ integración) del proyecto ...@@ -53,4 +53,3 @@ integración) del proyecto
[Git]: https://git-scm.com/ [Git]: https://git-scm.com/
[Node.js and npm]: nodejs.org [Node.js and npm]: nodejs.org
[Grunt]: http://gruntjs.com/ [Grunt]: http://gruntjs.com/
[Postgresql]: http://www.postgresql.org.es/
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@