Instalación y requerimientos técnicos

Centro de Documentación
< Todos los temas
Imprimir

Instalación y requerimientos técnicos

Hardware

  • CPU: 4 Cores
  • RAM: 8 Gb
  • HDD: 50 Gb
  • HDD-Datos: según requerimientos

Sistemas operativos

  • Ubuntu Server (64) 18.4 o superior
  • Debian 10 (64) o superior
  • RHEL 8 o superior.

Pre-requisitos

MariaDB

Nginx

Net Core 3.1

JDK 11

GDI Plus

Elasticsearch

Rabbit MQ

Tesseract OCR

Instalar JDK si es necesario

============================================================= https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-20-04

https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-debian-10

Instalar GDI Plus

=============================================================

Ubuntu: sudo apt-get install -y libgdiplus

Debian: sudo apt-get install libgdiplus

Instalar Net Core 3.1 Ubuntu

=============================================================

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get update

sudo apt-get install -y apt-transport-https 

sudo apt-get update

sudo apt-get install -y dotnet-sdk-3.1

Una vez finalizada la instalación, generar  certificados locales para https con el comando

dotnet dev-certs https

Instalar Net Core 3.1 Debian

=============================================================

sudo apt update

sudo apt install apt-transport-https

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo apt update

sudo apt install dotnet-sdk-3.1

sudo apt update

sudo apt install dotnet-runtime-3.1

Instalar MySQL 

=============================================================

 Eso corre por cuenta del administrador de la BD. 

Creación de usuario de MySQL de PIKA

=============================================================

1. Ejecutar script para aumentar la seguridad de MySQL

sudo mysql_secure_installation

2. Crear la cuenta de usuario de pika

sudo mysql

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_BY ‘TuPassword’;

FLUSH PRIVILEGES;

CREATE USER ‘pika’@’localhost’ IDENTIFIED BY ‘TuPassword’;

GRANT ALL PRIVILEGES ON *.* TO ‘pika’@’localhost’ WITH GRANT OPTION;

3. Probar la cuenta creada

mysql -u pika -p

Creación de usuario de MySQL de ElasticSearch

=============================================================

Añadir las características de seguridad de ES

1. Editar archivo de configuración

   sudo nano /etc/elasticsearch/elasticsearch.yml

descometar y poner:  network.host: localhost

   adicionar las lineas al final del archivo

xpack.security.enabled: true

discovery.type: single-node

2. Reiniciar el servicio

   sudo /etc/init.d/elasticsearch restart

3. Ejecutar la herramienta de contraseñas automatica

   cd /usr/share/elasticsearch/bin

   sudo ./elasticsearch-setup-passwords auto

Aparece en pantalla la lista de contraseñas asignadas, por ejemplo

apm_system = ybFkqiYuBZGP0XwEiEkn

kibana_system = uMCx7wyhOFXteA8jHa5S

kibana = uMCx7wyhOFXteA8jHa5S

logstash_system = pGjlsYaRenvzYKMjCvuU

beats_system = Ztc817sVOa8NA6emG3v9

remote_monitoring_user = z9jetQ2uLf7ONK8wZFeu

elastic = dUKjmJlfvIgZNvp04x7K

Creación de usuario de RabbitMQ

=============================================================

sudo rabbitmqctl add_user pika TuPassword

sudo rabbitmqctl set_user_tags pika administrator

sudo rabbitmqctl set_permissions -p / pika “.*” “.*” “.*”

Instalación de servicios y cliente web

=============================================================

Descargar el archivo desde:

Descarga Ahora

Crear el directorio pika en el home del usuario y extraer el contenido del zip. Al final debe quedar una configuración como la siguiente:

Crear los directorios faltantes

Deben editarse los archivos de configuración para establecer las cuentas de usuario para acceder a los servicios

Edición de la configuración de api

———————————————————————————————————

Editar el archivo appsettings.json localizado en la carpeta api

Linea 42: establecer el usuario y contraseña de MySQL

    “pika-gd”: “Server=127.0.0.1;Port=3306;Database=pika-gd;Uid=pika;Pwd=TuPassword;”

Linea 46: Ip o nombre de dominio para el servicio de identidad, ejemplos. Debe ser el DNS o dirección a través de la cual ingresarán los usuarios a la aplicación web

    “jwtauth”: “https://pikagd.arguz.net

o por ip

    “jwtauth”: “http://192.168.10.150/identidad/”

Lineas 56-59: rutas del sistema, el cache para la descarga de apliaciones, ruta temporal para el proceso de OCR, y ruta de instalación de tesseract

    “ruta_cache_fisico”: “/home/arguz/pika/cache”,

    “separador_ruta”: “/”,

    “ruta_temporal”: “/home/arguz/pika/volumenes/tmp”,

    “ruta_tesseract”: “/usr/bin/tesseract”

Líneas 64-111: establecer el usuario y contraseña para Elasticsearch de manera similar a:

    “Tipo”: “elasticsearch”,

    “DatosConexion”: {

      “Id”: “-“,

      “Protocolo”: “http://”,

      “Url”: “127.0.0.1”,

      “Puerto”: 9200,

      “Usuario”: “elastic”,

      “Contrasena”: “dUKjmJlfvIgZNvp04x7K”,

Lineas 119 y 120: establecer el usuario contraseña para RabbitMQ similar a:

      “Usuario”: “pika”,

      “Contrasena”: “TuPassword”,

Edición de la configuración de identityserver

———————————————————————————————————

Editar el archivo appsettings.json localizado en la carpeta identity

Línea 5: configuración de MySQL

Línea 1 y  9: Ip o nombre de dominio para el servicio de identidad, ejemplos. Debe ser el DNS o dirección a través de la cual ingresarán los usuarios a la aplicación web

    “jwtauth”: “https://pikagd.arguz.net

o por ip

    “jwtauth”: “http://192.168.10.150/identidad/”

Inicio de los servicios del sistema

=============================================================

Para los servicios del sistema se ejecuten de manera automática es necesario crear dos archivos de configuración de servicio utilizando las siguientes plantillas:

Para el servicio de API

——————————————————————————————————–

[Unit]

Description=Servicio de API PIKA

[Service]

User=arguz

WorkingDirectory=/home/arguz/pika/api

Environment=urls=http://localhost:5000;https://localhost:5001

SyslogIdentifier=pika-identity-server

ExecStart=/usr/bin/dotnet  /home/arguz/pika/api/PIKA.GD.API.dll

SuccessExitStatus=143

TimeoutStopSec=10

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

  1. Reemplace las siguientes líneas:

User= [Usuario bajo el cual será ejecutado el servicio]

WorkingDirectory= [ruta al directorio de API]

ExecStart=/usr/bin/dotnet  [ruta al directorio de API]/PIKA.GD.API.dll

  1. Salve el archivo con el nombre pika.api.service en el directorio /etc/systemd/system/
  2. Ejecute los siguientes comandos

    1. sudo systemctl daemon-reload
    2. sudo systemctl enable pika.api.service
    3. sudo systemctl start pika.api.service

  3. Puede consultar el estado del servicio con el comando

    1. sudo systemctl status –no-pager –full pika.api.service

Que deberá mostrar una pantalla similar a la siguiente, indicando que el servicio se ejecuta correctamente

Para el servicio de Identidad

——————————————————————————————————–

[Unit]

Description=Servicio de identidad PIKA

[Service]

User=arguz

WorkingDirectory=/home/arguz/pika/identity

Environment=urls=http://localhost:4000;https://localhost:4001

SyslogIdentifier=pika-identity-server

ExecStart=/usr/bin/dotnet  /home/arguz/pika/identity/PIKA.Identity.Server.dll

SuccessExitStatus=143

TimeoutStopSec=10

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

  1. Reemplace las siguientes líneas:

User= [Usuario bajo el cual será ejecutado el servicio]

WorkingDirectory= [ruta al directorio de Identidad]

ExecStart=/usr/bin/dotnet  [ruta al directorio de Identidad]/PIKA.Identity.Server.dll

  1. Salve el archivo con el nombre pika.identity.service en el directorio /etc/systemd/system/
  2. Ejecute los siguientes comandos

    1. sudo systemctl daemon-reload
    2. sudo systemctl enable pika.identity.service
    3. sudo systemctl start pika.identity.service

  3. Puede consultar el estado del servicio con el comando

    1. sudo systemctl status –no-pager –full pika.identity.service

Que deberá mostrar una pantalla similar a la siguiente, indicando que el servicio se ejecuta correctamente

Configuración de la aplicación Web

=============================================================

En el directorio donde extrajo el contenido del ZIP y dentro de la carpeta html edite el archivo config.json y establezca el nombre de DNS o la IP en la cual será publicado el servicio

{

    “production”: true,

    “authUrl”: “http://192.168.10.28/identidad/”,

    “apiUrl”: “http://192.168.10.28/servicios/api/v1.0/”,

    “pikaApiUrl”: “http://192.168.10.28/servicios/”,

    “apiVersion”: “1.0”,

    “editorToken”: “tipo”,

    “callbackRoute”: “/pages/tabular?tipo=volumen&id=&sub=”,

    “cacheActivo”: true,

    “uploadUrl”: “http://192.168.10.28/servicios/api/v1.0/upload”,

    “visordUrl”: “http://192.168.10.28/servicios/api/v1.0/visor”,

    “mediaUrl”: “http://192.168.10.28/servicios/api/v1.0/media”,

    “version”: “1.0.2”

}

Guarde los cambios y copie el contenido del directorio al de publicación de Nginx, por ejemplo con el comando mostrado

sudo cp * /usr/share/nginx/html/ -R

Estando dentro de la ruta html por ejemplo /home/arguz/pika/html

Configuración del servidor Web y API

===========================================================

Copie contenido siguiente en el  archivo de configuración de Nginx a la ruta /etc/nginx/sites-available con el nombre default.

server {

     listen 80 default_server;

     listen [::]:80 default_server;

        client_max_body_size 500M;

     # SSL configuration

     #

     # listen 443 ssl default_server;

     # listen [::]:443 ssl default_server;

     #

     # Note: You should disable gzip for SSL traffic.

     # See: https://bugs.debian.org/773332

     #

     # Read up on ssl_ciphers to ensure a secure configuration.

     # See: https://bugs.debian.org/765782

     #

     # Self signed certs generated by the ssl-cert package

     # Don’t use them in a production server!

     #

     # include snippets/snakeoil.conf;

     root /var/www/html;

     # Add index.php to the list if you are using PHP

     index index.html index.htm index.nginx-debian.html;

     server_name _;

     location / {

 root   /usr/share/nginx/html;

        index  index.html index.htm;

        try_files $uri $uri/ /index.html?$args;

          # First attempt to serve request as file, then

          # as directory, then fall back to displaying a 404.

#         try_files $uri $uri/ =404;

     }

location /servicios {

 rewrite /servicios(.*) $1 break;

 proxy_pass http://localhost:5000;

 proxy_http_version 1.1;

 proxy_set_header Upgrade $http_upgrade;

 proxy_set_header Connection keep-alive;

 proxy_set_header Host $host;

 proxy_cache_bypass $http_upgrade;

 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 proxy_set_header X-Forwarded-Proto $scheme;

 }  

location /identidad {

 rewrite /identidad(.*) $1 break;

 proxy_pass http://localhost:4000;

 proxy_http_version 1.1;

 proxy_set_header Upgrade $http_upgrade;

 proxy_set_header Connection keep-alive;

 proxy_set_header Host $host;

 proxy_cache_bypass $http_upgrade;

 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 proxy_set_header X-Forwarded-Proto $scheme;

 }

location /kibana {

        proxy_pass http://localhost:5601;

        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 creado el archivo cambie el dueño a root con el comando

sudo chown root:root default

Ejecute el comando

sudo nginx -t

Y si la respuesta es como la siguiente la configuración el correcta

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie el servicio de Nginx para aplicar los cambios

sudo systemctl reload nginx

Adición de entradas en la base de datos

=============================================================

Para que la aplicación pueda utilizar el mecanismo de autenticación es necesario añadir las siguientes entradas en la base de datos utilizando ya sea el comando mysql o alguna herramienta como Workbench

INSERT INTO `pika-gd`.`ClientRedirectUris` (`RedirectUri`, `ClientId`) VALUES (‘http://192.168.10.159’, ‘3’);

INSERT INTO `pika-gd`.`ClientRedirectUris` (`RedirectUri`, `ClientId`) VALUES (‘http://192.168.10.159/index.html’, ‘3’);

INSERT INTO `pika-gd`.`ClientRedirectUris` (`RedirectUri`, `ClientId`) VALUES (‘http://192.168.10.159/silent-refresh.html’, ‘3’);

Inserte en cada línea en nombre DNS o la IP del servidor

Ingreso al sistema

=============================================================

Utilice la dirección IP del servidor o el DNS con el que haya configurado la aplicación en el navegador para acceder a la aplicación.

La cuenta de acceso del administrador del sistema es:

            Usuario: administrador

            Contraseña: TuPassword

A veces la primera vez que se inicia sesión la pantalla sólo muestra la parte superior de la página, si ese es el caso basta con refrescar el navegador

Instalación y requerimientos técnicos
Tabla de contenidos
Deslizar arriba