## Amigos App (React + Vite + Express) Frontend (React/Vite) and backend (Express) are bundled into a single container for production. The backend serves the built frontend and exposes the API under `/api`. ### Configuración del API en el frontend - Variable: `VITE_API_BASE` - Descripción: URL base del API para `fetch`. Si no se define, el frontend usa el mismo origen (recomendado detrás de Nginx). - Ejemplos: - Mismo origen (proxy Nginx al contenedor): no definir `VITE_API_BASE`. - API en dominio diferente: `VITE_API_BASE=https://api.ejemplo.com` (requiere CORS). ### Despliegue con Nginx (recomendado: mismo origen) Proxy del dominio al contenedor (sirve estáticos y `/api`): ``` server { server_name amigos.nucleoriofrio.com; # Opcional: gzip, TLS, etc. location / { proxy_pass http://amigos-app:3001; # nombre del servicio Docker proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` Con esta configuración, no definas `VITE_API_BASE` para que el frontend use rutas relativas (`/api/...`). ### Docker Compose El servicio expone el puerto 3001 dentro de la red de Docker. Asegúrate de que Nginx esté en la misma red (por ejemplo, `principal`) para alcanzar `amigos-app:3001`. ### Diagnóstico rápido - 200 en `https://amigos.nucleoriofrio.com/health` indica que el backend está arriba. - Si el navegador muestra `ERR_CONNECTION_REFUSED`, revisa que el frontend no apunte a `http://localhost:3001` (usa `VITE_API_BASE` o mismo origen).