# Requerimientos de Velneo

Velneo consta de varios componentes, aunque principalmente existen tres tipos: [Velneo vServer](../velneo-vserver/que-es-velneo-vserver), [Velneo vModApache](../velneo-vmodapache/que-es-velneo-vmodapache) y el resto de componentes cliente. Veamos cada uno de los casos:

## General

Velneo tiene componentes de 64 bits (para Windows, Linux y macOS) y de 32 bits (solamente para Windows).

Los componentes de 64 bits solamente podrán ser usados en SS.OO. de 64 bits.

Los componentes Velneo de 32 bits podrán ser ejecutados en SS.OO. tanto de 32 como de 64 bits.

El sistema operativo siempre actualizado con los últimos parches de seguridad.

Procesadores con soporte de [ SSE 4.2](https://es.wikipedia.org/wiki/SSE4) y AVX2.

{% hint style="warning" %}
Si instalamos cualquier componente de Velneo en una máquina virtualizada, **debemos hacer una asignación fija de memoria**, no dinámica.
{% endhint %}

### SSL

Velneo soporta SSL tanto a nivel de protocolo ([protocolo VATPS](../velneo-vserver/funcionalidades/protocolo-vatps)) como en el control de formularios [visor html](../velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-visualizacion/visor-html). Para ello necesita **OpenSSL1.1**.

En Windows Velneo instala las librerías necesarias libcrypto-1\_1-x64.dll y libssl-1\_1-x64.dll con cada componente de 64 bits y libcrypto-1\_1.dll y libssl-1\_1.dll con cada componente de 32 bits.

En Linux requiere que esté instalado OpenSSL 1.1.x. Si tienes instalada una versión diferente de OpenSSL entonces deberás instalar la versión que Velneo requiere. En Ubuntu, podremos instalara con el siguiente comando:

`sudo apt-get install libssl1.1-dev`

En Android se instalan junto con Velneo vClient.

En macOS e iOS hace uso de las librerías propias del sistema operativo.

### Protocolo de Internet

Velneo vServer usa por defecto el protocolo de Internet [IPV4](https://es.wikipedia.org/wiki/IPv4). En el caso de que queramos usar [IPV6](https://es.wikipedia.org/wiki/IPv6), tendremos que [configurarlo](../../velneo-vserver/instalacion-y-configuracion/parametros-configurables-de-velneo-vserver#activar-ipv6-ipv-6). &#x20;

{% hint style="warning" %}
Hay que tener mucho cuidado con la configuración de servidores para que no se pisen los puertos, lo que puede hacer que un servidor no pueda ponerse a la escucha.
{% endhint %}

## **Para Velneo vServer**

Sistema operativo de 64 bits Windows para servidor, versión mínima: 2016 Server.

Habilitar una regla en el firewall del sistema operativo para permitir el tráfico entrante y saliente por el puerto que tengamos asignado para Velneo vServer (por defecto el puerto 690)

Distribuciones basadas en Debian y derivados (Ubuntu, Kubuntu, etc.) con las siguientes características:

* Kernel 5.0 o superior.
* GLIBC 2.27 o superior.
* Sistema operativo en versión servidor.
* Ver [notas al pie](#cuando-falten-librerias-o-en-otras-distribuciones-de-linux) sobre otras librerías o distribuciones.&#x20;

{% hint style="info" %}
En la distribución de Ubuntu Server (sin GUI), es necesario
&#x20;instalar la librería **libxkbcommon-x11-0**.
{% endhint %}

Si se van a hacer conexiones con los componentes de Velneo desde el exterior de nuestra red donde se instala Velneo vServer a éste, necesitamos abrir en nuestro firewall o router, el puerto que tengamos asignado para Velneo vServer (por defecto el puerto 690)

Suficiente espacio en disco rígido para crear las bases de datos de acuerdo a sus requisitos. Generalmente se recomienda un mínimo de 1 GB.

2 Gb de RAM.

En Linux, versión 1.1.x de las librerías de OpenSSL instalada.

### Configuración del sistema operativo relativa a _sockets_

Se recomienda configurar una serie de valores en el sistema operativo del servidor para optimizar la gestión de los _sockets_.

#### Windows

Debemos configurar en el registro de Windows (fichero **regedit.exe**) el tiempo que viven los enganches finalizados. Para ello debemos configurar en la siguiente clave del registro de Windows:

`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters`

Las siguientes entradas con los valores siguientes:

`TcpTimedWaitDelay=dword:0000001e`\
`StrictTimeWaitSeqCheck=dword:00000001`

Y, por línea de comandos (CMD), configurar cuántos puertos están disponibles:

```
netsh int ipv4 set dynamicport tcp start=5000 num=55000
```

#### Linux

Debemos configurar los ficheros abiertos ya que en Linux, considera ficheros abiertos tanto los archivos que estén abiertos como los sockets activos. El valor recomendado es de 100000.

El cómo configurarlo dependerá de la distribución usada. A continuación facilitamos las instrucciones para hacerlo en Ubuntu, que es una de las distribuciones que recomendamos:

En primer lugar, debemos comprobar cuál es el límite actual:

```
user@ubuntu:~$ ulimit -n
```

El valor que recomendamos es 100000 así que, si el valor obtenido es inferior, para configurarlo haremos lo siguiente:

```
# editar el archivo siguiente
user@ubuntu:~$ sudo vim /etc/security/limits.conf

# añadir las líneas siguientes
* soft     nproc          100000
* hard     nproc          100000
* soft     nofile         100000
* hard     nofile         100000
root soft     nproc          100000
root hard     nproc          100000
root soft     nofile         100000
root hard     nofile         100000

# editar el archivo siguiente
user@ubuntu:~$ sudo vim /etc/pam.d/common-session

# añadir esta línea
session required pam_limits.so

# reinicia sesión y ejecuta el comando siguiente

user@ubuntu:~$ ulimit -n 100000
```

## **Para Velneo vModApache**

Apache versión 2.4 de 64 ó de 32 bits, dependiendo del sistema operativo.

## **Para el resto de componentes de Velneo**

### **Windows**

Sistemas Windows, versión mínima: Windows 8.1.&#x20;

Esta versión de Velneo requiere que los equipos con sistema operativo Windows tengan activo _Windows Update_ y que estén actualizados con las últimas revisiones.

En sistemas operativos Windows puede dar error tras la instalación de los componentes si _Windows Update_ no está activo y actualizado con todas las últimas revisiones. En concreto se requiere la [Actualización para Universal C RunTime en Windows](https://support.microsoft.com/es-es/help/2999226/update-for-universal-c-runtime-in-windows).

### **Linux**

Distribuciones basadas en Debian y derivados (Ubuntu, Kubuntu, etc.) con las siguientes características:

* Kernel 5.0 o superior.
* GLIBC 2.27 o superior.

### **macOS**

* Versión mínima 10.13 64 bits.

### **Hardware**

Suficiente espacio en disco rígido para instalar los componentes de Velneo, más espacio de caché, etc., mínimo 300MB.

4 Gb de RAM (2 Gb para 32 bits).

Para la ejecución de QML2 se requiere soporte de OpenGL 2.0 y drivers actualizados. En Windows, además, es posible hacer uso de DirectX o por software. El sistema detecta qué sistema está disponible, excepto en algunos casos con equipos antiguos en que se ha de configurar manualmente.

Para configurar manualmente el modo de ejecución de QML2 en Windows, usaremos la variable de sistema QT\_OPENGL, que puede usar los siguientes valores:

* desktop: OpenGL 2.X
* angle: usará directX11 preferiblemente.
* software: renderización por software

Para configurar manualmente el modo de ejecución de QML2 en Windows, usaremos la variable de sistema **QT\_OPENGL**, que puede usar los siguientes valores:

* **desktop**: OpenGL 2.X
* **angle**: usará directX11 preferiblemente.
* **software**: renderización por software

En el caso de que queramos que se haga la renderización por software, además tendremos que usar también la variable del sistema **QT\_QUICK\_BACKEND** con el valor software.

Si en el [visor html](../velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-visualizacion/visor-html) de Velneo vClient queremos inhabilitar opengl y usar sólo software, ejecutarlo con el parámetro`--disable-gpu` . Ejemplo: `vClient.exe --disable-gpu`.

### **Android**

Mínimo 5.0 (32 y 64 bits), recomendado 6.0.

Procesador: ARMv7, ARM64-v8a, mínimo 1 GHz.

Memoria RAM: mínimo 512 MB, Recomendado +1GB.

Espacio en memoria de usuario/interna: mínimo 200MB (Libre +65MB + Tamaño de proyectos), Recomendado +1GB.

Pantalla para aplicaciones móviles: mínimo 320×480 (móvil), para aplicaciones de escritorio sin reprogramar: 800×600, Recomendado +1024×768.

Samsung DeX soportado.

### **iOS**

Versión de iOS: mínimo iOS 12 64 bits.

Espacio en memoria de usuario/interna: mínimo 200MB (Libre +65MB + Tamaño de proyectos), Recomendado +1GB.

Pantalla para aplicaciones móviles: mínimo 320×480 (móvil), para aplicaciones de escritorio sin reprogramar: 800×600, Recomendado +1024×768.

## **Cuando falten librerías o en otras distribuciones de Linux**

Si queremos ejecutar por ejemplo Velneo vServer en alguna otra distribución y nos devuelve un error del tipo, por ejemplo,

`user@ubuntu:~/Velneo-vServer$ ./vServer.sh -s /port=6900`

`./vServer.sh: 57: exec: ./vServer: not found`

podemos intentar lo siguiente para que funcione correctamente:

Debemos comprobar que contamos con todas las librerías necesarias; para ello, podemos hacer lo siguiente:

Nos situamos en el directorio donde hemos extraído Velneo vServer y ejecutamos los siguientes comandos:

`user@ubuntu:~/Velneo-vServer$ export LD_LIBRARY_PATH=.`

`user@ubuntu:~/Velneo-vServer$ ldd vServer | grep “not found” | sort | uniq`

Ejemplo de salida:

> libpulse.so.0 => not found

> libstdc++.so.6 => not found

Debemos ahora, en función de nuestra distribución de linux, buscar en internet como instalar esas librerías que nos faltan.

Si trabajamos con una distribución sin interfaz, el servidor no requerirá librerías de interfaz pero, en el caso de querer ejecutar otros componentes de Velneo (vClient, por ejemplo) necesitaremos al menos que estén presentes los siguientes paquetes de librerías, además de los que pueda requerir el sistema:

libfontconfig1 libfreetype6 libx11 libxext6 libxfixes3 libxi6 libxrender1 libxcb1 libx11-xcb1 libxcb-glx0 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0

### Dependencias de Ubuntu 18

Ubuntu 18 Desktop edition:

* Velneo vServer funciona correctamente sin instalar nada adicional

Ubuntu 18 Server edition:

*   Se deben instalar los siguientes paquetes:

    `apt install libgl1-mesa-glx libpulse0 libpulse-mainloop-glib0`

## **Velneo Cloud**

La opción más sencilla, si no quieres "pelearte" con los sistemas operativos, para disponer de tu Velneo vServer es usar Velneo Cloud. Nosotros nos encargamos de darte un servicio sobre un sistema operativo configurado y optimizado para cumplir los requisitos que necesita Velneo vServer y así te olvidas de librerías y actualizaciones.
