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.yamlla 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