Instalar sin contenedores#
Empowerment Center también se puede instalar sin Docker: el backend como un servicio Java del sistema y la aplicación web en un servidor web que haga de proxy inverso. Esta página explica qué cambia respecto a la instalación con Docker Compose.
Antes de empezar#
- Una JRE 25 en el servidor del backend.
- El fichero de la aplicación,
ecenter-8.0.0.jar. - Los ficheros de la aplicación web (la carpeta
browserde la compilación del frontal). - Un PostgreSQL 18 con PostGIS 3.6 preparado como dice Requisitos: un usuario dueño de la base de datos sin ser superusuario y las extensiones
postgisypg_trgm. - Un servidor web (nginx, Apache, HAProxy…) con el certificado TLS.
1. El backend#
- Cree un usuario del sistema sin privilegios para ECenter (por ejemplo,
ecenter) y una carpeta para él (/opt/ecenter). - Copie allí el jar.
-
Cree un fichero de entorno legible solo por ese usuario (
/etc/ecenter/ecenter.env, permisos 600) con las variables de Variables de entorno y, además, estas, que en Docker Compose poníacompose.yaml:Variable Ejemplo Para qué ECENTER_DB_URLjdbc:postgresql://bd.example.org:5432/ecenterLa BD propia. Sin ella el backend no arranca. ECENTER_DB_USERecenterSu usuario. Sin él el backend no arranca. ECENTER_DB_PASSWORDSu contraseña. Sin ella el backend no arranca. SERVER_PORT8080El puerto del backend, si no es el 8080. SERVER_FORWARD_HEADERS_STRATEGYframeworkPara que lea de los X-Forwarded-*del proxy el esquema, el nombre y la dirección originales: de ahí salen las direcciones de vuelta del proveedor de identidad y las cookies seguras detrás de TLS.ECENTER_EMBEDDING_INDEX_LOCATIONfile:/srv/ecenter/frontend/index.htmlEl index.htmlde la aplicación web, que el backend sirve a la incrustación.ECENTER_INSTANCE_NAMEecenter-1Un nombre fijo para la instancia. Por defecto es el del equipo. JAVA_TOOL_OPTIONS-Xmx3g -XX:+ExitOnOutOfMemoryErrorEl montón de la JVM (véase el aviso de abajo). -
Arránquelo como un servicio del sistema que ejecute, con ese usuario y ese fichero de entorno:
Un ejemplo con systemd, que conviene adaptar (la ruta de la JRE 25, el usuario y las carpetas):
# /etc/systemd/system/ecenter.service
[Unit]
Description=Empowerment Center
Wants=network-online.target
After=network-online.target
[Service]
User=ecenter
WorkingDirectory=/opt/ecenter
EnvironmentFile=/etc/ecenter/ecenter.env
ExecStart=/usr/bin/java -jar /opt/ecenter/ecenter-8.0.0.jar
SuccessExitStatus=143
TimeoutStopSec=45
Restart=on-failure
[Install]
WantedBy=multi-user.target
TimeoutStopSec=45 deja al backend terminar ordenadamente las peticiones y los trabajos en curso al pararlo, y SuccessExitStatus=143 hace que systemd no tome por un fallo la salida de la JVM tras SIGTERM.
Un application.yml propio se pone en /opt/ecenter/config/application.yml (la carpeta config del directorio de trabajo) y se lee además del de la aplicación (véase Configuración).
Importante
Sin el límite de memoria de un contenedor, la JVM tomaría para su montón una parte de toda la memoria del equipo. Fije el montón con -Xmx (por ejemplo, -Xmx3g en un equipo de 4 GB dedicado al backend) y deje sitio a la BD propia y al navegador sin interfaz si van en el mismo equipo. La alerta de memoria de la consola de operación se mide contra ese máximo.
2. La aplicación web y el proxy#
- Copie los ficheros de la aplicación web a una carpeta del servidor web (
/srv/ecenter/frontend/). - Configure el servidor web como dice Otro servidor web en lugar del frontal: las rutas que van al backend, la vuelta a
index.html, las cabeceras, las esperas y el tamaño máximo del cuerpo. - La configuración de nginx de la imagen del frontal sirve de punto de partida:
frontend/nginx/ecenter.conf.templateyfrontend/nginx/security-headers.conf, cambiando las variables${ECENTER_…}por sus valores. - Si quiere los manuales en
/ayuda/(los abre el menú Ayuda de la aplicación), constrúyalos conmanuales/construir.shy sírvalos como dice ese mismo apartado, confrontend/nginx/help-headers.confpara sus cabeceras.
3. Arrancar y comprobar#
- Arranque el servicio del backend y siga su registro. La primera vez crea el esquema de la BD propia y el primer administrador.
- Compruebe
https://ecenter.example.org/api/about: tiene que responder con la versión. - Siga con La licencia y Primer arranque y puesta en marcha.
El backend registra por la salida estándar. Con systemd, sus líneas van al diario (journalctl -u ecenter), que tiene su propia rotación.
Los servicios opcionales#
El navegador sin interfaz y el motor de rutas se prueban como imágenes de contenedor (chromedp/headless-shell y valhalla-scripted). Si no puede ejecutarlas, déjelos apagados: ECenter funciona sin ellos (véase Servicios opcionales). Para el motor de rutas también vale el servicio en la nube de OpenRouteService.