Kubrik OSSUPPORTSOPORTE All productsTodos los productos
Technical manualManual técnico › Installation › Around the system › Reverse proxy and HTTPSInstalación › Alrededor del sistema › Proxy inverso y HTTPS

Reverse proxy and HTTPS

Proxy inverso y HTTPS

The images speak plain HTTP. To publish Kubrik OS under your own address with HTTPS you put your own reverse proxy in front. This chapter says what it has to route, and how to adjust the administration app without rebuilding it.

Las imágenes hablan HTTP sin cifrar. Para publicar Kubrik OS bajo tu propia dirección con HTTPS ponés delante tu propio proxy inverso. Este capítulo dice qué tiene que rutear, y cómo ajustar la aplicación de administración sin reconstruirla.

👤 Who: System administrator📍 Where: Your reverse proxy · assets/config.json
👤 Quién: Administrador de sistemas📍 Dónde: Tu proxy inverso · assets/config.json

What the delivery includes and what it does not

Qué trae la entrega y qué no

The delivery has no certificates and no HTTPS configuration. The nginx inside the administration image listens on port 80 only, serves the screens and forwards two paths to the application: /api/ and /actuator/. Everything about HTTPS is done in a proxy of your own, in front of both.

La entrega no trae certificados ni configuración de HTTPS. El nginx de la imagen de administración escucha solo en el puerto 80, sirve las pantallas y reenvía dos rutas a la aplicación: /api/ y /actuator/. Todo lo de HTTPS se hace en un proxy tuyo, delante de los dos.

What your proxy has to route

Qué tiene que rutear tu proxy

PathSend it toNotes
/api/The application, port 8222It can also go through the administration container, which forwards it.
/ws/The application, port 8222Real-time notifications. It is a WebSocket: allow the connection upgrade. The nginx of the image does not forward this path.
/graphqlThe application, port 8222The nginx of the image does not forward this path either.
/actuator/Nowhere publicHealth and metrics. Keep it reachable from your monitoring network only.
Everything elseThe administration container, port 80The screens.
RutaMandala aNotas
/api/La aplicación, puerto 8222También puede pasar por el contenedor de administración, que la reenvía.
/ws/La aplicación, puerto 8222Notificaciones en tiempo real. Es un WebSocket: permití el cambio de protocolo de la conexión. El nginx de la imagen no reenvía esta ruta.
/graphqlLa aplicación, puerto 8222El nginx de la imagen tampoco reenvía esta ruta.
/actuator/A ningún lugar públicoSalud y métricas. Dejala accesible solo desde tu red de monitoreo.
Todo lo demásEl contenedor de administración, puerto 80Las pantallas.

Settings that follow the public address

Ajustes que acompañan a la dirección pública

Once the public address is decided, set it in APP_CORS_ALLOWED_ORIGINS, APP_BASE_URL and APP_MAIL_VERIFICATION_LINK_BASE, and recreate the application. They are described in the Configuration reference.

Una vez decidida la dirección pública, ponela en APP_CORS_ALLOWED_ORIGINS, APP_BASE_URL y APP_MAIL_VERIFICATION_LINK_BASE, y recreá la aplicación. Están descriptas en la Referencia de configuración.

Adjust the administration app without rebuilding

Ajustar la aplicación de administración sin reconstruir

The administration app reads an optional file, assets/config.json, every time it loads. The image does not bring one. To use it, write the file on the server and mount it over /usr/share/nginx/html/assets/config.json in the frontend service.

La aplicación de administración lee un archivo opcional, assets/config.json, cada vez que carga. La imagen no trae ninguno. Para usarlo, escribí el archivo en el servidor y montalo sobre /usr/share/nginx/html/assets/config.json en el servicio frontend.

KeyWhat it does
defaultTenantIdThe organisation identifier proposed on the sign-in screen when the browser remembers none. Put the identifier of your organisation.
enabledModulesThe list of module codes the menu may show. It can only show fewer than the edition allows.
apiUrl · authUrlWhere the API is. Leave them out unless the API is published under a different address.
production · backofficeUrl · demoCredentialsLeave them out in a customer installation.
ClaveQué hace
defaultTenantIdEl identificador de organización que propone la pantalla de ingreso cuando el navegador no recuerda ninguno. Poné el de tu organización.
enabledModulesLa lista de códigos de módulo que el menú puede mostrar. Solo puede mostrar menos de los que permite la edición.
apiUrl · authUrlDónde está la API. No las pongas, salvo que la API esté publicada bajo otra dirección.
production · backofficeUrl · demoCredentialsNo las pongas en una instalación de cliente.
⚠️
The file is strict. A key that is not in the table, or a value of the wrong type, stops the administration app and it shows the error instead of the sign-in screen. The edition cannot be set from this file.El archivo es estricto. Una clave que no está en la tabla, o un valor del tipo equivocado, detiene la aplicación de administración y muestra el error en lugar de la pantalla de ingreso. La edición no se puede poner desde este archivo.

Common issues

Problemas habituales

"assets/config.json carries keys this build does not read"
The file has a key that is not allowed, for example edition. Remove it; the message lists the allowed ones.
"assets/config.json is not JSON"
Your proxy answers the sign-in page when the file does not exist. A missing assets/config.json has to be answered with error 404.
Notifications do not arrive until the page is reloaded
/ws/ is not reaching the application, or the proxy does not allow the WebSocket upgrade.
Uploading a large file fails
The proxy limits the size of the request. Raise the limit on /api/.
Images are not shown after moving to HTTPS
The browser refuses plain HTTP content on an HTTPS page. Publish the file store under HTTPS and update MINIO_S3_ENDPOINT.
«assets/config.json carries keys this build does not read»
El archivo tiene una clave que no está permitida, por ejemplo edition. Sacala; el mensaje lista las permitidas.
«assets/config.json is not JSON»
Tu proxy contesta la página de ingreso cuando el archivo no existe. Un assets/config.json inexistente se tiene que contestar con el error 404.
Las notificaciones no llegan hasta recargar la página
/ws/ no está llegando a la aplicación, o el proxy no permite el cambio de protocolo del WebSocket.
Falla la subida de un archivo grande
El proxy limita el tamaño del pedido. Subí el límite en /api/.
Las imágenes no se ven después de pasar a HTTPS
El navegador rechaza contenido HTTP sin cifrar en una página HTTPS. Publicá el almacén con HTTPS y actualizá MINIO_S3_ENDPOINT.

RelatedRelacionado