Fix public base path for Sinbad2 /deckofcars reverse proxy.

This aligns frontend build defaults and CI deploy variables with the real proxy mount so the app is served under /deckofcars/generadorexamenesllm instead of falling back to the Sinbad homepage.
This commit is contained in:
Mireya Cueto Garrido
2026-06-02 13:17:02 +02:00
parent 944482b96c
commit 63f2d07bb3
5 changed files with 13 additions and 10 deletions
+4 -1
View File
@@ -46,7 +46,9 @@ deploy_to_sinbad2:
export BACKEND_PORT=$BACKEND_PORT export BACKEND_PORT=$BACKEND_PORT
export FRONTEND_PORT=$FRONTEND_PORT export FRONTEND_PORT=$FRONTEND_PORT
export ALLOWED_ORIGINS="http://sinbad2.ujaen.es,http://sinbad2.ujaen.es:$FRONTEND_PORT" export ALLOWED_ORIGINS="https://sinbad2.ujaen.es,http://sinbad2.ujaen.es,http://sinbad2.ujaen.es:$FRONTEND_PORT"
export VITE_APP_BASE_PATH="/deckofcars/generadorexamenesllm/"
export VITE_API_URL=""
docker compose down --remove-orphans docker compose down --remove-orphans
docker compose build --no-cache frontend backend docker compose build --no-cache frontend backend
@@ -56,6 +58,7 @@ deploy_to_sinbad2:
- echo "Despliegue completado." - echo "Despliegue completado."
- echo "Backend -> http://sinbad2.ujaen.es:$BACKEND_PORT" - echo "Backend -> http://sinbad2.ujaen.es:$BACKEND_PORT"
- echo "Frontend -> http://sinbad2.ujaen.es:$FRONTEND_PORT" - echo "Frontend -> http://sinbad2.ujaen.es:$FRONTEND_PORT"
- echo "Public URL -> https://sinbad2.ujaen.es/deckofcars/generadorexamenesllm/"
only: only:
- branches - branches
+1 -1
View File
@@ -24,7 +24,7 @@ services:
build: build:
context: ./frontend context: ./frontend
args: args:
VITE_APP_BASE_PATH: ${VITE_APP_BASE_PATH:-/generadorexamenesllm/} VITE_APP_BASE_PATH: ${VITE_APP_BASE_PATH:-/deckofcars/generadorexamenesllm/}
VITE_API_URL: ${VITE_API_URL:-} VITE_API_URL: ${VITE_API_URL:-}
VITE_GOOGLE_CLIENT_ID: ${VITE_GOOGLE_CLIENT_ID:-} VITE_GOOGLE_CLIENT_ID: ${VITE_GOOGLE_CLIENT_ID:-}
ports: ports:
+2 -2
View File
@@ -1,6 +1,6 @@
# Base pública de la app cuando va tras proxy (debe terminar en /) # Base pública de la app cuando va tras proxy (debe terminar en /)
# Ejemplo producción UJA: /generadorexamenesllm/ # Ejemplo producción UJA: /deckofcars/generadorexamenesllm/
VITE_APP_BASE_PATH=/generadorexamenesllm/ VITE_APP_BASE_PATH=/deckofcars/generadorexamenesllm/
# URL base del backend (accesible desde el navegador). # URL base del backend (accesible desde el navegador).
# Si se deja vacía, usa la misma base de la app (recomendado tras proxy HTTPS). # Si se deja vacía, usa la misma base de la app (recomendado tras proxy HTTPS).
+1 -1
View File
@@ -2,7 +2,7 @@
FROM node:20-alpine AS build FROM node:20-alpine AS build
WORKDIR /app WORKDIR /app
ARG VITE_APP_BASE_PATH=/generadorexamenesllm/ ARG VITE_APP_BASE_PATH=/deckofcars/generadorexamenesllm/
ARG VITE_API_URL= ARG VITE_API_URL=
ARG VITE_GOOGLE_CLIENT_ID= ARG VITE_GOOGLE_CLIENT_ID=
ENV VITE_APP_BASE_PATH=$VITE_APP_BASE_PATH ENV VITE_APP_BASE_PATH=$VITE_APP_BASE_PATH
+5 -5
View File
@@ -38,7 +38,7 @@ npm run dev # http://sinbad2.ujaen.es:8075
| Variable | Descripción | | Variable | Descripción |
| ----------------------- | -------------------------------------------------------- | | ----------------------- | -------------------------------------------------------- |
| `VITE_APP_BASE_PATH` | Base pública de la SPA (debe terminar en `/`). En producción UJA: `/generadorexamenesllm/`. | | `VITE_APP_BASE_PATH` | Base pública de la SPA (debe terminar en `/`). En producción UJA: `/deckofcars/generadorexamenesllm/`. |
| `VITE_API_URL` | URL base de la API. Si se deja vacía, usa la misma base pública de la app. | | `VITE_API_URL` | URL base de la API. Si se deja vacía, usa la misma base pública de la app. |
| `VITE_GOOGLE_CLIENT_ID` | (Opcional) Client ID de Google. Si está vacío, se oculta el botón de Google. | | `VITE_GOOGLE_CLIENT_ID` | (Opcional) Client ID de Google. Si está vacío, se oculta el botón de Google. |
@@ -69,18 +69,18 @@ variables de entorno al ejecutar `docker compose`.
Para ejecutarlo detrás de Apache en `https://sinbad2.ujaen.es/deckofcars` con: Para ejecutarlo detrás de Apache en `https://sinbad2.ujaen.es/deckofcars` con:
```apache ```apache
ProxyPass /generadorexamenesllm http://host.docker.internal:8075/ ProxyPass /deckofcars/generadorexamenesllm http://host.docker.internal:8075/
ProxyPassReverse /generadorexamenesllm http://host.docker.internal:8075/ ProxyPassReverse /deckofcars/generadorexamenesllm http://host.docker.internal:8075/
``` ```
usa estos valores de build: usa estos valores de build:
```env ```env
VITE_APP_BASE_PATH=/generadorexamenesllm/ VITE_APP_BASE_PATH=/deckofcars/generadorexamenesllm/
VITE_API_URL= VITE_API_URL=
``` ```
Con esto, el frontend sirve assets/rutas bajo `/generadorexamenesllm` y consume la API por HTTPS en la misma base (sin mixed content). Con esto, el frontend sirve assets/rutas bajo `/deckofcars/generadorexamenesllm` y consume la API por HTTPS en la misma base (sin mixed content).
## Manejo de errores ## Manejo de errores