# Despliegue en testing.crm.aduanasoft.com — AUTH REAL vía Hub (SSO relay). # Frontend: build de PRODUCCIÓN (Dockerfile.prod → node build). Backend: uvicorn sin --reload. # Puertos SOLO en loopback (nginx del host hace TLS + proxy). Postgres/MinIO no se publican. # # docker compose -f docker-compose.yml -f deploy/docker-compose.testing.yml up -d --build services: backend: # DNS por-contenedor: el resolver del host no es alcanzable desde los contenedores; # el backend debe resolver workspace.aduanasoft.com (Hub) en runtime. dns: - "8.8.8.8" - "1.1.1.1" ports: !override - "127.0.0.1:8000:8000" # Sesión local del CRM (patrón SIWEB). El backend toma su config de esta lista # (no lee el .env dentro del contenedor), así que los flags van aquí. Valores # desde el .env por sustitución. SESSION_STORE_ENABLED=false revierte al comportamiento previo. environment: - SESSION_STORE_ENABLED=${SESSION_STORE_ENABLED:-true} - SESSION_IDLE_MINUTES=${SESSION_IDLE_MINUTES:-30} - SESSION_MAX_HOURS=${SESSION_MAX_HOURS:-10} command: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--log-level", "info"] frontend: dns: - "8.8.8.8" - "1.1.1.1" build: context: ./frontend dockerfile: Dockerfile.prod args: VITE_API_URL: ${VITE_API_URL} VITE_HUB_URL: ${VITE_HUB_URL} VITE_KEYCLOAK_URL: ${VITE_KEYCLOAK_URL} VITE_KEYCLOAK_REALM: ${KEYCLOAK_REALM:-master} VITE_KEYCLOAK_CLIENT_ID: ${KEYCLOAK_CLIENT_ID:-aduanasoft} environment: - NODE_ENV=production # El callback OIDC (/auth/callback) intercambia el código por tokens con el # secret del client confidencial 'aduanasoft'. El compose base no lo pasa al frontend. - KEYCLOAK_CLIENT_SECRET=${KEYCLOAK_CLIENT_SECRET:-} volumes: !override [] command: !override ["node", "build/index.js"] ports: !override - "127.0.0.1:5173:5173" postgres: ports: !override [] minio: ports: !override [] # En el server no existe el Hub local: app-hub deja de ser red externa y se crea local. # El CRM alcanza el Hub por su URL pública (workspace.aduanasoft.com), no por esta red. networks: app-hub: external: false driver: bridge