# Instrucciones para Servidor Remoto - BeeLife Social Post

## Problema Identificado
Cuando ejecutas la aplicación en un servidor remoto (como `2.139.243.255`), los navegadores intentan conectarse a `localhost:3080`, `localhost:8000`, etc., pero estos servicios no están disponibles en el cliente, sino en el servidor.

## Solución Implementada
Se ha creado un sistema de configuración dinámica que detecta automáticamente si la aplicación se ejecuta en desarrollo local o en producción remota.

### Archivos Modificados:
1. **`public/js/config.js`** - Configuración dinámica de endpoints
2. **`public/js/api.js`** - Actualizado para usar configuración dinámica
3. **`public/js/video-api.js`** - Actualizado para usar configuración dinámica
4. **Archivos HTML** - Incluyen el nuevo archivo de configuración
5. **`vertexai-proxy.js`** - Configurado para escuchar en todas las interfaces (0.0.0.0)
6. **`veo2-proxy.js`** - Configurado para escuchar en todas las interfaces (0.0.0.0)
7. **`start-server-production.cmd`** - Nuevo script para producción

## Pasos para Configurar en Servidor Remoto

### 1. Usar el Script de Producción
En lugar de usar `start-app.cmd`, usa el nuevo script:
```cmd
start-server-production.cmd
```

### 2. Verificar Puertos Abiertos
Asegúrate de que estos puertos estén abiertos en el firewall del servidor:
- **Puerto 3000**: Frontend (servidor web)
- **Puerto 3080**: API de Vertex AI (generación de imágenes)
- **Puerto 8000**: API de OpenAI (generación de imágenes)
- **Puerto 3090**: API de Veo2 (generación de videos)

### 3. Configuración de Firewall (Windows Server)
```cmd
# Abrir puertos en Windows Firewall
netsh advfirewall firewall add rule name="BeeLife Frontend" dir=in action=allow protocol=TCP localport=3000
netsh advfirewall firewall add rule name="BeeLife Vertex AI" dir=in action=allow protocol=TCP localport=3080
netsh advfirewall firewall add rule name="BeeLife OpenAI" dir=in action=allow protocol=TCP localport=8000
netsh advfirewall firewall add rule name="BeeLife Video" dir=in action=allow protocol=TCP localport=3090
```

### 4. URLs de Acceso
Una vez configurado, la aplicación será accesible desde:
- **Frontend**: `http://2.139.243.255:3000/beelife-dashboard.html`
- **Generador de Imágenes**: `http://2.139.243.255:3000/beelife-image-generator.html`

### 5. Verificar Funcionamiento
1. Abre la aplicación en el navegador
2. Ve al generador de imágenes
3. Intenta generar una imagen
4. Verifica en la consola del navegador que no aparezcan errores de conexión

## Cómo Funciona la Configuración Automática

El archivo `config.js` detecta automáticamente el entorno:

```javascript
// En desarrollo local (localhost)
http://localhost:3080/api/vertexai-image

// En producción remota (tu servidor)
http://2.139.243.255:3080/api/vertexai-image
```

## Solución de Problemas

### Error: "net::ERR_CONNECTION_REFUSED"
- **Causa**: El servicio backend no está ejecutándose o no es accesible
- **Solución**: 
  1. Verificar que todos los servicios estén ejecutándose
  2. Comprobar que los puertos estén abiertos
  3. Revisar los logs de los servicios backend

### Error: "CORS policy"
- **Causa**: Problemas de políticas de origen cruzado
- **Solución**: Los proxies ya están configurados con CORS habilitado

### Error: "Failed to fetch"
- **Causa**: La URL del endpoint no es correcta
- **Solución**: 
  1. Verificar que `config.js` esté cargado antes que `api.js`
  2. Revisar la consola para ver qué URL se está intentando usar

## Comandos Útiles para Diagnóstico

```cmd
# Verificar qué puertos están en uso
netstat -an | findstr :3000
netstat -an | findstr :3080
netstat -an | findstr :8000
netstat -an | findstr :3090

# Verificar si los servicios responden
curl http://localhost:3080/api/vertexai-image
curl http://2.139.243.255:3080/api/vertexai-image
```

## Notas Importantes

1. **Certificados SSL**: Para producción real, considera usar HTTPS
2. **Variables de Entorno**: Las claves de API deben estar configuradas correctamente
3. **Monitoreo**: Considera implementar logs y monitoreo para producción
4. **Seguridad**: Los puertos expuestos deben estar protegidos adecuadamente

## Contacto de Soporte
Si persisten los problemas, revisa los logs de cada servicio y verifica la configuración de red del servidor. 