Skip to content

Develop - #5

Open
ludomaGeo wants to merge 122 commits into
mainfrom
develop
Open

Develop#5
ludomaGeo wants to merge 122 commits into
mainfrom
develop

Conversation

@ludomaGeo

Copy link
Copy Markdown
Collaborator

Sube client_max_body_size de 100M a 500M en overrides/nginx/z-frontend-app.conf y
overrides/nginx/z-frontend-admin.conf, para permitir cargar archivos de hasta 500 MB en
Catálogo > Carga de archivos.

Debe unirse junto con estas ramas (mismo ticket, otros repos)

Este cambio es solo la capa de nginx. Para que el límite de 500 MB funcione de punta a punta,
necesita desplegarse junto con:

  • geosuite-nuxt-frontend @ feat/e1-ac02-validacion-limite-tamano-archivos
    (LIMITE_CARGA_ARCHIVOS_MIB 100 → 500)
  • geosuite-geonode-wrapper @ feat/e1-ac02-validacion-limite-back
    (_MAX_FILE_SIZE en sigic_data_importer/views.py, 50 MB → 500 MB)

Sin esas dos ramas, subir a 500M aquí no tiene efecto completo (el frontend seguiría cortando en
100 MiB, o el backend de tabulares en 50 MB)

Fernando Valle added 30 commits May 4, 2026 12:58
Introduces platforms/ directory with per-platform manifests and
per-environment config files (dev/qa/prd) for idegeo, sedema, and conafor.
Adds .gitignore exception so platforms/*/env/*.env files are tracked.
Includes PROPUESTA_MIGRACION.md explaining the multi-platform design to CentroGeo.
New usage: ./sigic_install.sh <platform> <environment>
Reads platforms/<platform>/platform.json and env/<environment>.env,
merges overrides with base flavor, and calls create-envfile.py.
Original flavor mode (./sigic_install.sh <flavor> <https_mode>) unchanged.
These files contain auto-generated secrets and are regenerated on every
install run, so they should not be tracked in version control.
- Add ports object to each platform.json (nginx, frontend_admin, frontend_app)
- Make frontend container ports configurable in docker-compose.yml via env vars
- Export COMPOSE_PROJECT_NAME and port vars in sigic_install.sh for container namespacing
- Add MULTIPLATFORM.md with full documentation of changes and architecture
- Add apache-vhosts-multiplatform.conf as reference config for infra team
- Update MULTIPLATFORM.md: correct Phase 2 description to reflect
  overlay mechanism via Docker BuildKit (no submodule forks needed);
  add scope table distinguishing config vs code differences per phase
- Add PROXY_SETUP.md: step-by-step guide for Nginx system proxy setup
  on 10.2.102.228, including rationale for co-located proxy in dev/QA
  and why certbot is not needed on our server
- proxy/docker-compose.yml: nginx-proxy container (port 80/443) +
  certbot container (certbot profile, for prd only)
- proxy/conf.d/00-default.conf: static default server block handling
  ACME challenge globally and dropping unknown hosts
- docker-compose.platform.yml: compose override for platform mode —
  removes host port bindings from nginx/frontends, adds sigic-proxy
  network to nginx, adds extra_hosts to all application services so
  containers resolve the platform domain via host-gateway (hairpin fix)
- sigic_install.sh: in platform mode, creates sigic-proxy network,
  generates proxy/conf.d/<platform>-<env>.conf dynamically (port 443
  block added only when https_mode=externalhttps), writes PLATFORM_HOST
  to .env, uses docker-compose.platform.yml override, reloads proxy
- platforms/idegeo/env/dev.env: update hostname to new subdomain
  pattern idegeo.geosuite-dev.centrogeo.org.mx confirmed with Mario
- PROXY_ARCHITECTURE.md: full technical documentation of proxy design,
  hairpin DNS problem, SSL strategy per environment, and Jaime comparison
- sigic_install.sh: move --profile flag to correct position before
  docker compose subcommand (was incorrectly placed after run)
- sigic_install.sh: replace hardcoded keycloak4sigic and django4sigic
  with keycloak4${COMPOSE_PROJECT_NAME} and django4${COMPOSE_PROJECT_NAME}
  so keycloak import and fixtures work correctly in platform mode
- docker-compose.platform.yml: remove ports:[] override — Docker Compose
  concatenates port lists so empty list has no effect; platform nginx
  keeps its host ports (8001/8002/8003) on the internal Nimbus network
- docker-compose.platform.yml: remove unnecessary default: network entry,
  explicitly reference sigicnetwork to ensure correct merge with base
…onflicts

  In platform mode, service containers (nginx, frontends) don't need host port
  bindings — nginx-proxy reaches them via the sigic-proxy Docker network by
  container name. Exporting empty HTTP_PORT/HTTPS_PORT/FRONTEND_* and patching
  .env after generation ensures no conflict with nginx-proxy's ports 80/443,
  whether running through sigic_install.sh or docker compose directly.

  Also removes the ports block from platform.json since it is no longer needed.
**En docker-compose.yml: "${GEOSERVER_PORT:-8080}:8080" "${DB_PORT:-5432}:5432"

**En sigic_install.sh se agregan dos sed adicionales en el bloque de modo plataforma para vaciar DB_PORT y GEOSERVER_PORT.

En modo clásico los puertos siguen siendo 80, 443, 5432, 8080 (sin cambio de comportamiento). En modo plataforma quedan vacíos  y Docker asigna puertos random sin conflictos.
  - Cambia hostnames de dev y qa a patrón <plataforma>-<env>.geosuitemp.centrogeo.org.mx
  - Un solo wildcard *.geosuitemp.centrogeo.org.mx cubre todos los entornos
  - Elimina bloque ports de conafor y sedema platform.json (no necesario en modo proxy)
…m-environment

Para los cambios en sigic_install.sh — este es el cambio arquitectural que permite correr idegeo-dev e idegeo-qa simultáneamente.
… en runtime @nuxt/image requiere ipx como peer dependency pero Nitro no lo bundlea de forma confiable en builds frescos. El override elimina el npm run clean del build y agrega ipx explícitamente en la etapa final.
…nitro.baseURL se baja en tiempo de compilación; sin este arg el servidor Nitro queda montado en / y no reconoce las rutas /admin/ ni /app/.

Imágenes separadas por servicio para evitar conflicto entre base paths
Los frontends no necesitan hairpin NAT ,  Mario está en IP interna(10.2.7.26) accesible directamente. El extra_hosts apuntaba a host-gateway:443 que no existe, rompiendo las conexiones OAuth a Keycloak.
…de @sidebase/nuxt-auth

  En modo plataforma el servidor Nitro llamaba a la URL externa del admin
  (/admin/api/auth/session) para verificar la sesión en SSR, lo cual pasaba
  por nginx-proxy → nginx4idegeo-qa → mismo contenedor frontend → loop.
  Esto causaba OOM (4GB heap en ~2 min).

  Fix: NUXT_PUBLIC_AUTH_BASE_URL=http://localhost:3000/{admin|app}/api/auth
  para que las llamadas de sesión SSR vayan directo al puerto 3000 del
  mismo contenedor, sin pasar por nginx. NUXT_AUTH_ORIGIN se setea a
  NGINX_BASE_URL (URL externa real) para que el redirect_uri enviado a
  Keycloak sea correcto.
…tección de recursión SSR

  NUXT_AUTH_ORIGIN=http://localhost:3000 hace que @sidebase/nuxt-auth detecte
  recursión cuando el check de sesión llega desde localhost:3000 y responde con
  {} vacío, lo que dispara un loop reactivo → OOM. Usando el nombre del servicio
  Docker (frontend-admin / frontend-app) como host del baseURL, la petición llega
  con Host distinto a localhost, la detección no dispara y la sesión se procesa
  normalmente
hoftherose and others added 30 commits July 20, 2026 09:57
…incrementa timeout Keycloak 30 min, revert --ignore-scripts en build stage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants