Kubrik OSSUPPORTSOPORTE All productsTodos los productos
Technical manualManual técnico › Installation › Around the system › Optional servicesInstalación › Alrededor del sistema › Servicios opcionales

Optional services

Servicios opcionales

Outbound e-mail, PDF documents, location by network address and the artificial intelligence provider. The system starts without them, but each one switches on a part of it.

Correo saliente, documentos en PDF, ubicación por dirección de red y el proveedor de inteligencia artificial. El sistema arranca sin ellos, pero cada uno prende una parte.

👤 Who: System administrator📍 Where: environment block of backend
👤 Quién: Administrador de sistemas📍 Dónde: Bloque environment de backend

Outbound e-mail

Correo saliente

The system sends the verification message of a new organisation, purchase orders, notifications and other messages. APP_MAIL_TRANSPORT chooses how they leave.

El sistema envía el mensaje de verificación de una organización nueva, órdenes de compra, avisos y otros mensajes. APP_MAIL_TRANSPORT elige por dónde salen.

ValueWhat it doesWhat else it needs
smtpSends through a mail server.SPRING_MAIL_HOST, and usually SPRING_MAIL_PORT, SPRING_MAIL_USERNAME and SPRING_MAIL_PASSWORD; plus APP_MAIL_VERIFICATION_LINK_BASE.
graphSends through Microsoft 365, as an application registered in your directory with permission to send mail.AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET and APP_MAIL_GRAPH_SENDER (the mailbox that sends); plus APP_MAIL_VERIFICATION_LINK_BASE. APP_MAIL_FROM has to be that mailbox or one of its aliases.
logSends nothing. Each message leaves one line in the log with the recipient and the subject.Nothing. Useful only to start the system before the mail service exists.
ValorQué haceQué más necesita
smtpEnvía por un servidor de correo.SPRING_MAIL_HOST, y por lo general SPRING_MAIL_PORT, SPRING_MAIL_USERNAME y SPRING_MAIL_PASSWORD; más APP_MAIL_VERIFICATION_LINK_BASE.
graphEnvía por Microsoft 365, como una aplicación registrada en tu directorio con permiso para enviar correo.AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET y APP_MAIL_GRAPH_SENDER (la casilla que envía); más APP_MAIL_VERIFICATION_LINK_BASE. APP_MAIL_FROM tiene que ser esa casilla o uno de sus alias.
logNo envía nada. Cada mensaje deja una línea en el registro con el destinatario y el asunto.Nada. Sirve solo para arrancar el sistema antes de que exista el servicio de correo.
⚠️
With smtp and no SPRING_MAIL_HOST, the system starts and silently skips every message. The log then shows a line that begins with Mail transport not configured. With graph, a missing value stops the start-up and the log names it.Con smtp y sin SPRING_MAIL_HOST, el sistema arranca y saltea en silencio todos los mensajes. El registro muestra entonces una línea que empieza con Mail transport not configured. Con graph, un valor faltante detiene el arranque y el registro lo nombra.

Set APP_MAIL_FROM and APP_MAIL_FROM_NAME to the sender your organisations should see.

Poné en APP_MAIL_FROM y APP_MAIL_FROM_NAME el remitente que tienen que ver tus organizaciones.

PDF documents

Documentos en PDF

Documents are turned into PDF by a separate service, Gotenberg, which the Compose files do not include. Add a container of the image gotenberg/gotenberg:8 and set PDF_GOTENBERG_URL to its address, for example http://gotenberg:3000. If you prefer not to run it, set PDF_RENDERER to openhtmltopdf, which produces the documents inside the application; documents designed for a browser may then come out with a different layout.

Los documentos se pasan a PDF con un servicio aparte, Gotenberg, que los archivos Compose no incluyen. Agregá un contenedor de la imagen gotenberg/gotenberg:8 y poné en PDF_GOTENBERG_URL su dirección, por ejemplo http://gotenberg:3000. Si preferís no correrlo, poné PDF_RENDERER en openhtmltopdf, que genera los documentos dentro de la aplicación; los documentos pensados para un navegador pueden salir entonces con otra disposición.

ℹ️
Without either, the system starts normally and a document fails only at the moment somebody asks for it.Sin ninguna de las dos cosas, el sistema arranca normal y un documento falla recién en el momento en que alguien lo pide.

Location by network address

Ubicación por dirección de red

With the MaxMind GeoLite2 database, the registration form proposes the country of the visitor and each session shows where it was opened from. The file is not part of the delivery: you download it with a free MaxMind account.

Con la base MaxMind GeoLite2, el formulario de registro propone el país del visitante y cada sesión muestra desde dónde se abrió. El archivo no viene en la entrega: lo bajás con una cuenta gratuita de MaxMind.

  1. Get a licence key from your MaxMind account.
  2. Download the file from the root of the source tree: MAXMIND_LICENSE_KEY=<your-key> kubrik-erp-be/scripts/fetch-geoip-db.sh ./geoip. It leaves GeoLite2-City.mmdb in the folder geoip, next to the Compose file.
  3. Recreate the application. The Compose files already mount that folder and already set KSERP_GEOIP_MMDB_PATH. The file is read once, at start-up.
  4. Check the log. A line Loaded MaxMind GeoIP database from confirms it.
  1. Conseguí una clave de licencia en tu cuenta de MaxMind.
  2. Bajá el archivo desde la raíz del código fuente: MAXMIND_LICENSE_KEY=<tu-clave> kubrik-erp-be/scripts/fetch-geoip-db.sh ./geoip. Deja GeoLite2-City.mmdb en la carpeta geoip, al lado del archivo Compose.
  3. Recreá la aplicación. Los archivos Compose ya montan esa carpeta y ya definen KSERP_GEOIP_MMDB_PATH. El archivo se lee una sola vez, al arrancar.
  4. Revisá el registro. Una línea Loaded MaxMind GeoIP database from lo confirma.

MaxMind updates the database twice a week. Run the script again from time to time and restart the application so it reads the new file. Without the file nothing breaks: sessions carry no location and the registration form proposes no country.

MaxMind actualiza la base dos veces por semana. Corré el script de nuevo cada tanto y reiniciá la aplicación para que lea el archivo nuevo. Sin el archivo no se rompe nada: las sesiones no llevan ubicación y el formulario de registro no propone país.

Artificial intelligence provider

Proveedor de inteligencia artificial

The assistant and the other functions that use a language model work with a key of the provider, Anthropic. The installation has no key of its own: each organisation loads its key in Platform → AI Config. Set KSERP_AI_CREDENTIALS_SOURCE to tenant-key so that only those keys are used. The default value expects a command-line tool of the provider that the image does not include.

El asistente y las demás funciones que usan un modelo de lenguaje trabajan con una clave del proveedor, Anthropic. La instalación no tiene una clave propia: cada organización carga la suya en Plataforma → Configuración de IA. Poné KSERP_AI_CREDENTIALS_SOURCE en tenant-key para que solo se usen esas claves. El valor de fábrica espera una herramienta de línea de comandos del proveedor que la imagen no incluye.

ℹ️
The application has to be able to reach the provider over the internet. An organisation with no key simply cannot use those functions; the rest of the system is not affected.La aplicación tiene que poder llegar al proveedor por internet. Una organización sin clave simplemente no puede usar esas funciones; el resto del sistema no se ve afectado.

Common issues

Problemas habituales

"app.mail.transport=… requires app.mail.verification-link-base (set APP_MAIL_VERIFICATION_LINK_BASE)"
A transport that really sends needs the address of the verification page. Set the variable and start again.
"app.mail.transport=graph requires …"
One of the four Microsoft 365 values is empty. The message names it.
"Mail transport not configured (no spring.mail.host) — skipping email"
The transport is smtp but the mail server is not set. Set SPRING_MAIL_HOST.
"MaxMind DB not readable at …"
The file is not where KSERP_GEOIP_MMDB_PATH says, or the container cannot read it. Check the folder geoip and its permissions.
"ERROR: MAXMIND_LICENSE_KEY is not set"
The download script needs the licence key in that variable.
A document in PDF fails
The application cannot reach Gotenberg. Check PDF_GOTENBERG_URL and that the container is running.
«app.mail.transport=… requires app.mail.verification-link-base (set APP_MAIL_VERIFICATION_LINK_BASE)»
Un transporte que envía de verdad necesita la dirección de la página de verificación. Definí la variable y arrancá de nuevo.
«app.mail.transport=graph requires …»
Uno de los cuatro valores de Microsoft 365 está vacío. El mensaje dice cuál.
«Mail transport not configured (no spring.mail.host) — skipping email»
El transporte es smtp pero el servidor de correo no está definido. Definí SPRING_MAIL_HOST.
«MaxMind DB not readable at …»
El archivo no está donde dice KSERP_GEOIP_MMDB_PATH, o el contenedor no lo puede leer. Revisá la carpeta geoip y sus permisos.
«ERROR: MAXMIND_LICENSE_KEY is not set»
El script de descarga necesita la clave de licencia en esa variable.
Falla un documento en PDF
La aplicación no llega a Gotenberg. Revisá PDF_GOTENBERG_URL y que el contenedor esté corriendo.

RelatedRelacionado