Requisitos#
Lo que necesita una instalación de Empowerment Center 8 antes de empezar: software, memoria y CPU, base de datos propia, red y puertos. Las cifras de memoria son una orientación para empezar; se ajustan después con lo que enseña la consola de operación.
Software#
| Pieza | Requisito |
|---|---|
| Contenedores | Docker 24 o posterior con Docker Compose v2, o un orquestador que ejecute las mismas imágenes (Kubernetes, por ejemplo). También se puede instalar sin contenedores: véase Instalar sin contenedores. |
| Backend sin contenedores | Una JRE 25. |
| Frontal sin contenedores | Cualquier servidor web que pueda servir ficheros estáticos y hacer de proxy inverso con las reglas de El proxy inverso y TLS. |
| BD propia | PostgreSQL 18 con PostGIS 3.6 y la extensión pg_trgm (véase abajo). |
| BD de los clientes | Oracle, SQL Server o PostgreSQL. ECenter se prueba con Oracle Database 23 Free, SQL Server 2022 y PostgreSQL 18. Las consultas que genera usan FETCH FIRST y OFFSET … FETCH, que piden como mínimo Oracle 12c y SQL Server 2012. |
| Navegador de los usuarios | Una versión actual de Chrome, Edge, Firefox (también la ESR) o Safari, en el escritorio o en el móvil: los que admite Angular, con el que está hecha la aplicación web. |
| Navegador sin interfaz (opcional) | La imagen chromedp/headless-shell con la versión que trae deploy/compose.yaml. |
| Motor de rutas (opcional) | Valhalla 3.9 (la imagen ghcr.io/valhalla/valhalla-scripted de deploy/compose.yaml) u OpenRouteService. |
La base de datos propia#
ECenter crea y actualiza su esquema solo, al arrancar. Para ello la BD propia tiene que cumplir tres condiciones:
- El usuario de ECenter es el dueño de la base de datos y no es superusuario. Desde PostgreSQL 15 solo el dueño puede crear tablas en el esquema
public. Que no sea superusuario limita lo que podría hacer alguien que obtuviera su contraseña. En un servicio gestionado, cree un usuario dueño de la base de datos; no use el administrador del servicio. - La extensión
postgisexiste en la base de datos. No es una extensión de confianza: la tiene que crear un superusuario (o quien administra el servicio) antes del primer arranque, conCREATE EXTENSION postgis;en la base de datos de ECenter. La usan las capas geográficas y los mapas. - La extensión
pg_trgmexiste, o el usuario de ECenter puede crearla. Es de confianza desde PostgreSQL 13: la crea el dueño de la base de datos. Si el usuario no tiene el permisoCREATEsobre la base de datos y la extensión no está creada, el backend no arranca y el registro dice qué permiso falta. La usan las búsquedas de texto de la auditoría, la paleta de comandos y la lista de usuarios.
Con la instalación de ejemplo de Docker Compose no tiene que hacer nada de esto: el contenedor de la BD lo prepara la primera vez que arranca (véase Instalar con Docker Compose).
-- En un PostgreSQL propio o gestionado, como superusuario, antes del primer arranque
CREATE ROLE ecenter LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE PASSWORD 'cambie-esta-clave';
CREATE DATABASE ecenter OWNER ecenter;
\c ecenter
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
Conexiones. El backend abre como mucho 10 conexiones a la BD propia (el pool por defecto), que comparten las peticiones, los trabajos y el mantenimiento. Con varias instancias, la suma no puede pasar del max_connections de PostgreSQL (100 en la imagen de PostGIS). Véase Recursos, trabajos y consultas.
Memoria y CPU#
Para empezar:
| Pieza | CPU | Memoria |
|---|---|---|
| Backend | 2 | 4 GB |
| BD propia | — | 1 GB |
| Frontal | — | 256 MB |
| Navegador sin interfaz (opcional) | — | 1-2 GB (2 GB en deploy/compose.yaml, con su memoria compartida) |
| Motor de rutas Valhalla (opcional) | 2 | 6 GB para construir el grafo de España la primera vez; unos 250 MB en marcha |
Lo que más memoria pide son los cubos: lo que calcula cada uno se queda en la memoria del backend hasta que caduca. Un cubo no puede pasar de 256 MB estimados (ecenter.cube.max-bytes) y de 200 000 combinaciones de valores (ecenter.cube.max-rows).
Importante
La JVM del backend toma para su montón el 75 % del límite de memoria de su contenedor. El contenedor tiene que tener límite: sin él, la JVM vería toda la memoria del equipo y tomaría el 75 % de ella, compartida con la BD y con Chromium. deploy/compose.yaml pone un límite a cada servicio. Si instala sin contenedores, o con un orquestador que no ponga límites, fije el montón a mano (véase Memoria).
Con el uso real, mire en Administración › Operación la memoria tras la última recolección (la alerta salta al 90 %), los trabajos en cola y las sesiones en espera de cada pool.
Disco#
| Qué | Cuánto |
|---|---|
| BD propia | Crece sobre todo con la auditoría: cada consulta a una BD de cliente deja una entrada con su SQL, que se conserva 90 días. Como referencia, un millón de entradas ocupan unos 600 MB de tabla y unos 270 MB de índices de búsqueda. |
| Registros de los contenedores | Con deploy/compose.yaml, como mucho 5 ficheros de 50 MB por servicio. |
| Ficheros temporales del backend | Las subidas de datos externos y de capas, mientras duran (hasta 24 horas), en el directorio temporal de la JVM. Un fichero no puede pasar de 100 MB por defecto. La consola avisa si quedan menos de 1 GB libres. |
| Motor de rutas | Para España y Canarias, unos 6 GB (el extracto, el grafo y sus bases auxiliares). |
Red#
- Un nombre propio con su certificado TLS (
ecenter.example.org), en el frontal o en el proxy que haya delante. ECenter va en la raíz de ese nombre, no bajo una ruta. - El backend tiene que llegar a la BD propia, a la BD de cada cliente que se dé de alta, al servidor SMTP y, si se usan, al proveedor de identidad, al navegador sin interfaz y al motor de rutas.
- El navegador sin interfaz tiene que llegar al frontal y, si hay mapa base, al servidor del mapa base. Sin salida a internet hace falta un mapa base autoalojado.
- Los navegadores de los usuarios solo necesitan llegar al frontal y, si hay mapa base externo, a su proveedor.
Puertos#
| Puerto | Pieza | Quién lo usa | ¿Se publica? |
|---|---|---|---|
8080 (o el de ECENTER_HTTP_PORT) |
Frontal | Usuarios, o el proxy que haya delante | Sí: es la única entrada |
8443 (u otro) |
Frontal con TLS propio | Usuarios | Solo si el frontal termina TLS |
8080 |
Backend | Frontal | No |
5432 |
BD propia | Backend | No |
El de cada motor (1521 en Oracle, 1433 en SQL Server y 5432 en PostgreSQL, si no se cambian) |
BD de los clientes | Backend | No |
587, 465 o 25 |
Servidor SMTP | Backend | No |
9222 |
Navegador sin interfaz (DevTools) | Backend | Nunca: quien llega a él puede abrir cualquier página con ese navegador |
8002 |
Valhalla | Backend | No |
El de ECENTER_MANAGEMENT_PORT (por ejemplo, 9090) |
Backend, puerto de gestión | Prometheus y las sondas del orquestador | No: solo en la red interna |
Licencia#
Cada instalación necesita una licencia de Action Ware, emitida para el identificador de la instalación. Sin ella se puede entrar e instalarla, pero nada más. Véase La licencia.