Spaces:
Build error
Build error
| # ✨ API Auto-Detection System | |
| ## Cómo Funciona | |
| El frontend detecta automáticamente dónde está alojado y conecta al backend correcto: | |
| ``` | |
| ┌─────────────────────────────────────────────────────────────┐ | |
| │ FRONTEND ALOJADO EN │ | |
| └─────────────────────────────────────────────────────────────┘ | |
| │ | |
| ┌─────────────┼─────────────┐ | |
| │ │ │ | |
| ▼ ▼ ▼ | |
| LOCALHOST HUGGING FACE VERCEL/GITHUB | |
| (Desarrollo) SPACES (Producción) | |
| │ │ │ | |
| ▼ ▼ ▼ | |
| localhost:8000 Auto-detect Configurable | |
| ``` | |
| ## 📋 Matriz de Configuración | |
| | Plataforma | Frontend URL | Backend URL | Auto-Detect | Config | | |
| |-----------|--------------|-------------|-------------|--------| | |
| | **Local Dev** | `localhost:3000` | `localhost:8000` | ✅ Automático | `.env.local` | | |
| | **HF Spaces** | `username-andesai-frontend.hf.space` | `username-andesai-backend.hf.space` | ✅ Automático | Sin config | | |
| | **Vercel** | `andesai.vercel.app` | `andesai-api.vercel.app` | ✅ Automático | Sin config | | |
| | **GitHub Pages** | `username.github.io/andesai` | URL externa (Fly.io) | ⚙️ Manual | `.env.production` | | |
| ## 🔍 Cómo se Detecta (Orden de Prioridad) | |
| ```javascript | |
| 1. NEXT_PUBLIC_API_BASE env var explícita | |
| ↓ (Si no existe) | |
| 2. ¿Estoy en huggingface.co? | |
| → Auto-generar: https://{spaceName}-backend.hf.space | |
| ↓ (Si no) | |
| 3. ¿Estoy en vercel.app? | |
| → Auto-generar: https://{hostname-reemplazar-andesai-api} | |
| ↓ (Si no) | |
| 4. ¿Estoy en github.io o github.dev? | |
| → Usar env var REACT_APP_API_BASE o fallback a fly.dev | |
| ↓ (Si no) | |
| 5. ¿Estoy en localhost? | |
| → http://localhost:8000 | |
| ``` | |
| ## 🚀 Para tu Hackathon | |
| ### ✅ Opción 1: Hugging Face Spaces (SIN CONFIG) | |
| ``` | |
| 1. Creas 2 spaces: andesai-frontend, andesai-backend | |
| 2. Subes Dockerfiles | |
| 3. Agargas variables de entorno en backend | |
| 4. ¡LISTO! Frontend auto-detecta backend | |
| 5. URLs finales compartidas con jurado | |
| ``` | |
| **NO NECESITAS configurar URLs manualmente.** | |
| ### ⚙️ Opción 2: GitHub + Fly.io (CON CONFIG) | |
| ``` | |
| 1. Deploy backend a Fly.io → https://andesai-backend.fly.dev | |
| 2. Configuras .env.production: | |
| NEXT_PUBLIC_API_BASE=https://andesai-backend.fly.dev | |
| 3. Deploy frontend a GitHub Pages | |
| 4. ¡LISTO! | |
| ``` | |
| **NECESITAS configurar la URL del backend.** | |
| ## 📝 Archivos de Configuración | |
| ``` | |
| frontend/ | |
| ├── .env.local ← DEV: http://localhost:8000 | |
| ├── .env.production ← PROD: vacío (auto-detect) o URL explícita | |
| ├── .env.huggingface ← HF: vacío (auto-detect) | |
| └── lib/api.ts ← Contiene la lógica de auto-detect | |
| ``` | |
| ## 🎯 Mi Recomendación para Hackathon | |
| **Usa Hugging Face Spaces:** | |
| 1. Menos configuración | |
| 2. Todo funciona automáticamente | |
| 3. Muy fácil de compartir | |
| 4. URL profesional | |
| 5. Free tier generoso | |
| **Pasos:** | |
| ```bash | |
| 1. git push al repo (tu GitHub) | |
| 2. Creas 2 Spaces en HF | |
| 3. Conectas repo → HF Space (webhook) | |
| 4. Ambos deployan automáticamente | |
| 5. ¡Listo! Funciona sin tocar nada | |
| ``` | |
| ## 🔗 Resultado Final | |
| ``` | |
| GitHub Repo | |
| └── Conectado a HF via Webhooks | |
| ├── andesai-frontend space → https://user-andesai-frontend.hf.space | |
| └── andesai-backend space → https://user-andesai-backend.hf.space | |
| Frontend auto-detecta: | |
| "Estoy en huggingface.co" → Conecta a backend en HF ✨ | |
| ``` | |
| --- | |
| ## ⚡ TL;DR | |
| **Lo que cambié:** | |
| - ❌ Antes: hardcoded `localhost:8000` | |
| - ✅ Ahora: auto-detecta según plataforma | |
| **Para ti:** | |
| - ✅ Local: No cambies nada, usa `http://localhost:8000` | |
| - ✅ HF Spaces: No configures nada, funciona automático | |
| - ✅ Otra plataforma: Configura NEXT_PUBLIC_API_BASE si es necesario | |
| **No te afecta la hackathon**, solo **mejora** la portabilidad. | |