Saltar a contenido

Variables de entorno#

La referencia de las variables de entorno de una instalación de Empowerment Center: las obligatorias, las del backend, las del frontal y las que usa la instalación de ejemplo de Docker Compose. Con Docker Compose van en deploy/.env; sin contenedores, en el fichero de entorno del servicio.

Cualquier otra propiedad de las páginas siguientes de la referencia se puede dar también como variable, con las reglas de Propiedades y variables.

Las imprescindibles#

Sin estas, el backend no arranca:

Variable Qué es
ECENTER_DB_URL La BD propia, como URL JDBC: jdbc:postgresql://<servidor>:5432/<bd>. La pone deploy/compose.yaml.
ECENTER_DB_USER El usuario de la BD propia. La pone deploy/compose.yaml (ecenter).
ECENTER_DB_PASSWORD La contraseña de la BD propia. Con deploy/compose.yaml, la usan a la vez el contenedor de la BD (al crearla) y el backend.
ECENTER_SECRETS_KEY La clave AES de 256 bits, en Base64, que cifra los secretos guardados en la BD propia. Se genera con openssl rand -base64 32. Véase La clave de los secretos.

Sin ECENTER_DB_URL, ECENTER_DB_USER o ECENTER_DB_PASSWORD, el registro del backend dice cuáles faltan. Sin ECENTER_SECRETS_KEY, dice «Falta la clave de cifrado de secretos»; si no está en Base64 o no son 32 bytes, también lo dice.

Y estas no impiden arrancar, pero póngalas siempre:

Variable Qué es
ECENTER_PUBLIC_URL La dirección pública, tal como la escriben los usuarios y sin barra final: https://ecenter.example.org. Véase La dirección pública.
ECENTER_ADMIN_LOGIN, ECENTER_ADMIN_PASSWORD El primer administrador. Solo se usan si la BD propia no tiene ningún usuario: sin ellas, en una instalación nueva nadie puede entrar. Véase El primer administrador.
TZ La zona horaria de la instalación (Europe/Madrid). Véase Las del backend.

La dirección pública#

ECENTER_PUBLIC_URL es la dirección con que los usuarios llegan a ECenter. Se usa para:

  • los enlaces de los correos (suscripciones, alertas de datos, avisos); sin ella, los correos van sin enlaces y no se ofrece el formato «enlace» de las suscripciones;
  • la audiencia del servidor MCP y el emisor de los tokens que firma la instalación;
  • por defecto, la dirección por la que el navegador sin interfaz llega al frontal (deploy/compose.yaml la cambia por la interna).

Las direcciones de vuelta del proveedor de identidad no salen de ella, sino de la petición original que reconstruye el backend con los X-Forwarded-* (véase El proxy inverso y TLS).

Las del backend#

Variable Por defecto Qué es Cuándo cambiarla
TZ La del sistema (UTC en un contenedor) La zona horaria de la instalación. Manda en las fechas de los PDF, las programaciones de las tareas, las suscripciones y las alertas, las fechas de los correos y los días de la actividad de la consola. Siempre: póngala (Europe/Madrid).
ECENTER_SESSION_TIMEOUT 30m La caducidad de una sesión sin actividad. Si la política de la organización pide otra.
ECENTER_SESSION_MAX_DURATION 12h La duración máxima de una sesión desde que se entra, aunque se siga usando. 0, sin máximo. Ídem.
ECENTER_MAX_UPLOAD 100MB El fichero más grande que se puede subir (datos externos, capas geográficas, paquetes del metadata). Si se suben ficheros mayores. Suba también ECENTER_CLIENT_MAX_BODY_SIZE del frontal.
ECENTER_MAIL_FROM (vacía: el del servidor de correo) El remitente del correo que no dice el suyo. Póngala si configura el correo.
SPRING_MAIL_HOST y las demás SPRING_MAIL_* (sin correo) El servidor de correo. Véase Correo y avisos.
ECENTER_INSTANCE_NAME El nombre del equipo (ecenter-1 en deploy/compose.yaml) El nombre de la instancia en las alertas operativas, las ejecuciones de las tareas y los envíos. Al arrancar, cada instancia da por interrumpido lo suyo que quedó en marcha. Con varias instancias, uno distinto y fijo para cada una.
ECENTER_LOGIN_HELP (vacía) El texto de ayuda de la pantalla de entrada, hasta 500 caracteres. Para poner el contacto del soporte.
ECENTER_MANAGEMENT_PORT (vacía: apagado) El puerto de gestión para Prometheus y las sondas. Si recoge métricas con Prometheus. Véase Servicios.
ECENTER_MCP_ENABLED false El servidor MCP para asistentes de IA. Si la organización decide usarlo. Véase Integraciones.
ECENTER_RENDER_ENABLED false El navegador sin interfaz. Si lo instala. Véase Servicios opcionales.
ECENTER_RENDER_BROWSER_URL (vacía; http://chromium:9222 en deploy/compose.yaml) Dónde escucha el protocolo DevTools de Chromium. Si lo instala de otra forma.
ECENTER_RENDER_FRONTEND_URL ECENTER_PUBLIC_URL (http://frontend:8080 en deploy/compose.yaml) Por dónde llega Chromium al frontal. Ídem.
ECENTER_EMBEDDING_INDEX_LOCATION classpath:/static/index.html (http://frontend:8080/index.html en deploy/compose.yaml) Dónde lee el backend el index.html de la aplicación web para la incrustación: una URL o un fichero (file:/srv/ecenter/frontend/index.html). Sin contenedores o con otro servidor web.
ECENTER_MAPS_ROUTING_PROVIDER none El motor de rutas: none, valhalla u openrouteservice. Si instala uno.
ECENTER_MAPS_ROUTING_URL (vacía; http://valhalla:8002 en deploy/compose.yaml) La dirección del motor de rutas. Ídem.
ECENTER_MAPS_ROUTING_APIKEY (vacía) La clave de OpenRouteService. Si usa su servicio en la nube.
ECENTER_DATASOURCE_POOL_MAXSIZE 5 Las sesiones con la BD de cada conexión de cliente. Véase Recursos.
ECENTER_JOBS_MAXQUEUEDPERUSER 100 Los trabajos de un usuario que pueden esperar en la cola de una clase. Véase Recursos.
SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE 10 Las conexiones del backend a la BD propia. Véase Recursos.
SERVER_PORT 8080 El puerto del backend. Sin contenedores, si el 8080 está ocupado.
SERVER_FORWARD_HEADERS_STRATEGY (sin valor; framework en deploy/compose.yaml) Que el backend lea los X-Forwarded-* del proxy. Sin contenedores, póngala a framework siempre que haya un proxy delante.
JAVA_TOOL_OPTIONS -XX:MaxRAMPercentage=75 -XX:+ExitOnOutOfMemoryError en la imagen Opciones de la JVM. Sin límite de memoria del contenedor, para fijar el montón (-Xmx3g). Si la cambia, conserve -XX:+ExitOnOutOfMemoryError.

Las del frontal#

Variable Por defecto Qué es
ECENTER_BACKEND_URL http://backend:8080 El backend, sin barra final.
ECENTER_RESOLVER 127.0.0.11 El DNS con que se resuelve el nombre del backend: el de Docker o el del clúster.
ECENTER_CLIENT_MAX_BODY_SIZE 100m El cuerpo más grande que se admite. Al menos ECENTER_MAX_UPLOAD.
ECENTER_BEHIND_PROXY off on si hay otro proxy delante que termina TLS.
ECENTER_CSP_MAP_ORIGINS (vacía) Los orígenes del mapa base para la política de contenido.
ECENTER_CSP_IDP_ORIGINS (vacía) Los orígenes del proveedor de identidad para la salida de SAML.

Los detalles, en El proxy inverso y TLS.

Las de Docker Compose#

deploy/compose.yaml lee estas variables de deploy/.env para sí mismo:

Variable Por defecto Qué es
ECENTER_HTTP_PORT 8080 El puerto del equipo en que se publica el frontal.
ECENTER_BACKEND_IMAGE ecenter/backend:8.0.0 La imagen del backend, si viene de un registro.
ECENTER_FRONTEND_IMAGE ecenter/frontend:8.0.0 La imagen del frontal.
ECENTER_ENV_FILE .env El fichero de entorno que recibe el backend.
COMPOSE_PROFILES (ninguno) Los servicios opcionales que arrancan: render, routing o render,routing.
ECENTER_BACKEND_MEMORY 4g El límite de memoria del backend. La JVM toma el 75 %.
ECENTER_DB_MEMORY 1g El de la BD propia.
ECENTER_FRONTEND_MEMORY 256m El del frontal.
ECENTER_RENDER_MEMORY 2g El del navegador sin interfaz, con su memoria compartida.
ECENTER_ROUTING_MEMORY 6g El del motor de rutas.
ECENTER_ROUTING_TILE_URLS España y Canarias (Geofabrik) Los extractos de OpenStreetMap que descarga Valhalla la primera vez.
ECENTER_ROUTING_THREADS 2 Los hilos con que Valhalla construye su grafo.

Un .env de ejemplo#

# Obligatorias
ECENTER_DB_PASSWORD=cambie-esta-clave
ECENTER_SECRETS_KEY=<la salida de openssl rand -base64 32>
ECENTER_PUBLIC_URL=https://ecenter.example.org
ECENTER_ADMIN_LOGIN=admin
ECENTER_ADMIN_PASSWORD=cambie-esta-clave-larga
TZ=Europe/Madrid

# El frontal, detrás del proxy de la organización
ECENTER_HTTP_PORT=8080
ECENTER_BEHIND_PROXY=on

# Correo
SPRING_MAIL_HOST=smtp.example.org
SPRING_MAIL_PORT=587
SPRING_MAIL_USERNAME=ecenter
SPRING_MAIL_PASSWORD=cambie-esta-clave
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE=true
ECENTER_MAIL_FROM=ecenter@example.org

# Navegador sin interfaz
COMPOSE_PROFILES=render
ECENTER_RENDER_ENABLED=true

# Otras
ECENTER_LOGIN_HELP=¿Problemas para entrar? Llame a la extensión 1234

Véase también#