Commit 29adaa96 authored by D’jalmar Gutierrez Titirico's avatar D’jalmar Gutierrez Titirico 🚲

Merge branch 'puesta-produccion' into 'desarrollo'

se realizaron cambios para la puesta en produccion del sistema



See merge request !66
parents e4bd895c 69e36133
// Generated on 2016-03-11 using generator-angular-fullstack 3.3.0
'use strict';
module.exports = function (grunt) {
module.exports = function(grunt) {
var localConfig;
try {
localConfig = require('./server/config/local.env');
} catch(e) {
} catch (e) {
localConfig = {};
}
......@@ -176,7 +176,9 @@ module.exports = function (grunt) {
options: {
map: true,
processors: [
require('autoprefixer')({browsers: ['last 2 version']})
require('autoprefixer')({
browsers: ['last 2 version']
})
]
},
dist: {
......@@ -208,14 +210,14 @@ module.exports = function (grunt) {
env: {
PORT: process.env.PORT || 9001
},
callback: function (nodemon) {
nodemon.on('log', function (event) {
callback: function(nodemon) {
nodemon.on('log', function(event) {
console.log(event.colour);
});
// opens browser on initial server start
nodemon.on('config:update', function () {
setTimeout(function () {
nodemon.on('config:update', function() {
setTimeout(function() {
require('open')('http://localhost:8080/debug?port=5859');
}, 500);
});
......@@ -282,6 +284,15 @@ module.exports = function (grunt) {
js: [
[/(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) {
server: {
options: {
compass: false,
precision:8
precision: 8
},
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) {
});
// Used for delaying livereload until after server has restarted
grunt.registerTask('wait', function () {
grunt.registerTask('wait', function() {
grunt.log.ok('Waiting for server reload...');
var done = this.async();
setTimeout(function () {
setTimeout(function() {
grunt.log.writeln('Done waiting!');
done();
}, 1500);
......@@ -668,7 +679,7 @@ module.exports = function (grunt) {
this.async();
});
grunt.registerTask('serve', function (target) {
grunt.registerTask('serve', function(target) {
// if (target === 'dist') {
// return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']);
// }
......@@ -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.task.run(['serve']);
});
......@@ -783,7 +794,7 @@ module.exports = function (grunt) {
//
// else {
// return grunt.task.run([
// 'env:all',
// '|:all',
// 'env:test',
// 'mocha_istanbul',
// 'istanbul_check_coverage'
......
___
## INSTALACIÓN
# INSTALACIÓN
___
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
```
## Prerrequisitos
**Instalando GIT**
......@@ -29,7 +13,7 @@ confiabilidad del mantenimiento de versiones de aplicaciones cuando
Para la instalación realizar:
``` {.sourceCode .sh}
```
$ sudo apt-get install git
```
......@@ -44,7 +28,7 @@ a través de su administrador **NPM**.
Durante el proceso de instalación necesitaremos este binario.
``` {.sourceCode .sh}
```
$ 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:
``` {.sourceCode .sh}
```
$ 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
``` {.sourceCode .sh}
```
$ sudo apt-get install -y nodejs
```
......@@ -72,13 +56,13 @@ permitira descargar librerias y enlazarlas.
Antes debemos de hacer la instalación de paquetes necesarios para un
copilado correcto.
``` {.sourceCode .sh}
```
$ sudo apt-get install build-essential
```
Debemos de seguir de la siguiente manera:
``` {.sourceCode .sh}
```
$ git clone http://github.com/isaacs/npm.git
$ cd npm
$ sudo make install
......@@ -86,7 +70,7 @@ $ sudo make install
Para verificar si esta instalado correctamente:
``` {.sourceCode .sh}
```
$ npm info
```
......@@ -95,59 +79,19 @@ $ npm info
Un manejador de tareas, permite minimización, compilación, pruebas
unitarias, y mucho más.
``` {.sourceCode .sh}
```
$ sudo npm install -g grunt-cli
```
Backend-End
===========
**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
```
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;
$ sudo gem install sass
```
**Clonar repositorio**
``` {.sourceCode .sh}
```
$ sudo su - usuario_proyecto
$ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonal.git
......@@ -156,19 +100,16 @@ $ cd ModuloPersonal
Para instalar las dependencias del servidor
``` {.sourceCode .sh}
```
$ npm install
```
Para iniciar el servidor de desarrollo en el puerto 9000
``` {.sourceCode .sh}
```
$ grunt serve
```
Front-End
=========
**Instalando BOWER**
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
minify código o hacer cualquier otra cosa - sólo instala las versiones
correctas de los paquetes que necesita y sus dependencias.
``` {.sourceCode .sh}
```
$ npm install -g bower
```
......@@ -184,90 +125,120 @@ $ npm install -g bower
Un lenguaje de programación dinámico y de código abierto.
``` {.sourceCode .sh}
```
$ sudo apt-get install ruby-full
```
**Clonar repositorio**
``` {.sourceCode .sh}
```
$ sudo su - usuarioPersonal
$ cd ~
$ git clone git@gitlab.geo.gob.bo:SistemaGestionAdministrativa/ModuloPersonalCliente.git
$ cd ModuloPersonal
$ git clone https://gitlab.geo.gob.bo/SistemaGestionAdministrativa/ModuloPersonalCliente.git
$ cd ModuloPersonalCliente
```
Para instalar las dependencias del servidor
``` {.sourceCode .sh}
```
$ npm install
```
Para ara instalar las dependecias del cliente
``` {.sourceCode .sh}
```
$ bower install
```
Para iniciar el servidor de desarrollo en el puerto 9000
``` {.sourceCode .sh}
```
$ 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
web/proxy inverso ligero de alto rendimiento, optimizado para
aplicaciones Node.js.
### Servidor
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
```
Ahora abre el archivo de configuración del bloque servidor por defecto
para la edición:
``` {.sourceCode .sh}
```
$ sudo nano /etc/nginx/sites-available/default
```
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
dominio configurado), y la aplicación dirección IP-Privada del servidor
para el APP\_PRIVATE\_IP\_ADDRESS . Además, cambiar el puerto ( 9000 )
si la aplicación está configurado para escuchar en un puerto diferente:
dominio configurado) en el campo *server_name*.
Tambien debe configurar el path, este debe apuntar a la carpeta */dist/client/* del compilado
en el campo *root*
``` {.sourceCode .sh}
```
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
sus aplicaciones, guardar y salir. En el servidor, reiniciar Nginx:
``` {.sourceCode .sh}
```
$ 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
======
Este es el modulo de personal pertenece al sistema de gestión
administrativa.
Este es el cliente__(página web)__ del sistema de Gestion de Personal.
Esta aplicación esta desarrollada usando Angular 1.4
Se conecta con el backend del sistema de Gestion de Personal.
Equipo
------
**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**
* Gustavo Callejas <gcallejas@adsib.gob.bo>
* Gustavo Callejas <mailto:gcallejas@adsib.gob.bo>
Prerequisitos
......@@ -25,7 +26,6 @@ Prerequisitos
- [Git]
- [Node.js and npm] Node \^4.2.3, npm \^2.14.7
- [Grunt] (`npm install --global grunt-cli`)
- [Postgresql]
Ejecución
---------
......@@ -53,4 +53,3 @@ integración) del proyecto
[Git]: https://git-scm.com/
[Node.js and npm]: nodejs.org
[Grunt]: http://gruntjs.com/
[Postgresql]: http://www.postgresql.org.es/
......@@ -3,7 +3,7 @@
angular.module('moduloPersonalApp.constants', [])
.constant('appConfig', {userRoles:['guest','user','ADMINISTRATOR'],serverAddress:'http://localhost:9000',clientAddress:'http:localhost:9000'})
.constant('appConfig', {userRoles:['guest','user','ADMINISTRATOR'],serverAddress:'http://test.adsib.gob.bo/api_contratacion',clientAddress:'http:localhost:9000'})
;
})(angular);
\ No newline at end of file
......@@ -16,21 +16,22 @@ angular.module('moduloPersonalApp', [
'ui.tree'
])
.run(
['$rootScope', '$state', '$stateParams',
function ($rootScope, $state, $stateParams) {
['$rootScope', '$state', '$stateParams','appConfig','$location',
function ($rootScope, $state, $stateParams, appConfig, $location) {
// It's very handy to add references to $state and $stateParams to the $rootScope
// so that you can access them from any scope within your applications.For example,
// <li ng-class="{ active: $state.includes('contacts.list') }"> will set the <li>
// to active whenever 'contacts.list' or one of its decendents is active.
// $location.path('/asd/');
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}
]
)
.config(function ($urlRouterProvider, $locationProvider) {
$urlRouterProvider
.otherwise('/');
.config(function ($urlRouterProvider, $locationProvider,appConfig) {
//
// $urlRouterProvider
// .otherwise('/');
$locationProvider.html5Mode(true);
});
......@@ -9,7 +9,9 @@
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<!-- build:base /subdirectory/ -->
<base href="/">
<!-- endbuild -->
<title>Modulo Personal</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
......@@ -78,7 +80,7 @@
<script src="bower_components/angular-i18n/angular-locale_es-bo.js"></script>
<script src="bower_components/angular-ui-tree/dist/angular-ui-tree.js"></script>
<script src="bower_components/angular-loading-bar/build/loading-bar.js"></script>
<script src="bower_components/eve/eve.js"></script>
<script src="bower_components/eve-raphael/eve.js"></script>
<script src="bower_components/raphael/raphael.min.js"></script>
<script src="bower_components/jquery.easing/js/jquery.easing.js"></script>
<!-- endbower -->
......
......@@ -3,6 +3,6 @@
module.exports = module.exports = {
// List of user roles
userRoles: ['guest', 'user', 'ADMINISTRATOR'],
serverAddress: process.env.SERVER_ADDRESS || 'http://localhost:9000',
serverAddress: 'http://test.adsib.gob.bo/api_contratacion',
clientAddress: 'http:localhost:9000'
};
......@@ -6,9 +6,9 @@
// You will need to set these on the server you deploy to.
module.exports = {
DOMAIN: 'http://localhost:9000',
DOMAIN: 'http://test.adsib.gob.bo/contratacion',
SESSION_SECRET: 'modulopersonal-secret',
// BASE_URL:'/contratacion/'
// Control debug level for modules using visionmedia/debug
DEBUG: ''
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment