# 📋 INSTRUCCIONES DE DESPLIEGUE EN HUGGINGFACE SPACES ## 🎯 Archivos Necesarios Para desplegar en HuggingFace Spaces necesitas estos 5 archivos: 1. **app.py** - Aplicación principal (backend Python con Gradio) 2. **index.html** - Frontend de la aplicación 3. **requirements.txt** - Dependencias de Python 4. **README.md** - Documentación del proyecto 5. **.gitignore** - Archivos a ignorar en git (opcional) ## 🚀 PASO A PASO: Despliegue en HuggingFace ### Paso 1: Crear cuenta en HuggingFace 1. Ve a [https://huggingface.co/join](https://huggingface.co/join) 2. Regístrate con tu email 3. Verifica tu cuenta ### Paso 2: Crear un nuevo Space 1. Ve a [https://huggingface.co/spaces](https://huggingface.co/spaces) 2. Click en **"Create new Space"** (botón azul arriba a la derecha) 3. Completa el formulario: - **Owner**: Tu usuario - **Space name**: `osorno-runners` (o el nombre que prefieras) - **License**: MIT - **Select the Space SDK**: Selecciona **Gradio** - **Space hardware**: CPU basic (gratis) - 2 vCPU • 16 GB - **Visibility**: Public (o Private si prefieres) 4. Click en **"Create Space"** ### Paso 3: Subir archivos #### Opción A: Mediante la interfaz web (Recomendado para principiantes) 1. Una vez creado el Space, verás la pantalla principal 2. Click en la pestaña **"Files"** 3. Click en **"Add file"** → **"Upload files"** 4. Arrastra o selecciona los 5 archivos: - app.py - index.html - requirements.txt - README.md - .gitignore (opcional) 5. Agrega un mensaje de commit: "Initial commit" 6. Click en **"Commit to main"** #### Opción B: Mediante Git (Para usuarios avanzados) ```bash # 1. Clonar el repositorio del Space git clone https://huggingface.co/spaces/TU_USUARIO/osorno-runners cd osorno-runners # 2. Copiar los archivos del proyecto cp /ruta/a/los/archivos/* . # 3. Agregar y hacer commit git add . git commit -m "Initial commit: Osorno Runners v1.0" # 4. Push a HuggingFace git push ``` ### Paso 4: Esperar el despliegue 1. HuggingFace detectará automáticamente que es una app Gradio 2. Instalará las dependencias de `requirements.txt` 3. Ejecutará `app.py` 4. En 1-3 minutos verás tu aplicación corriendo **¡Listo! Tu aplicación está en vivo** 🎉 La URL será: `https://huggingface.co/spaces/TU_USUARIO/osorno-runners` ## 🔧 Verificación y Pruebas ### 1. Verificar que la app esté corriendo - Deberías ver la pantalla de login - Las credenciales por defecto funcionan: - USER / 123 - ADMIN / 123 ### 2. Probar funcionalidades básicas - Login como ADMIN - Crear un plan de entrenamiento de prueba - Ver que el plan se guarde correctamente - Cerrar sesión y volver a entrar - Verificar que el plan sigue ahí (persistencia SQLite) ### 3. Verificar logs En la pestaña "Logs" del Space puedes ver: ``` 🚀 Iniciando Osorno Runners - Sistema de Entrenamiento ✅ Base de datos inicializada correctamente ✅ Usuarios por defecto creados ✅ HTML cargado correctamente 🌐 Iniciando servidor en puerto 7860 ``` ## 📊 Base de Datos SQLite ### Ubicación La base de datos `osorno_runners.db` se crea automáticamente en el directorio raíz del Space. ### Persistencia - ✅ Los datos SE MANTIENEN entre reinicios del Space - ✅ La base de datos es persistente - ⚠️ Si ELIMINAS el Space, pierdes todos los datos ### Backup Para hacer backup: 1. Ve a la pestaña "Files" de tu Space 2. Busca el archivo `osorno_runners.db` 3. Click en "Download" 4. Guarda el archivo localmente Para restaurar: 1. Ve a "Files" 2. "Upload files" 3. Sube tu archivo `osorno_runners.db` ## 🐛 Solución de Problemas ### Error: "Space failed to build" **Causa**: Problema en requirements.txt o app.py **Solución**: 1. Verifica que `requirements.txt` tenga solo: `gradio==4.44.0` 2. Revisa los logs para ver el error específico 3. Asegúrate que no haya errores de sintaxis en app.py ### Error: "Application not responding" **Causa**: El servidor no inició correctamente **Solución**: 1. Ve a "Settings" → "Factory reboot" → "Reboot Space" 2. Espera 2-3 minutos 3. Si persiste, revisa los logs ### Error: "index.html not found" **Causa**: No se subió el archivo HTML **Solución**: 1. Verifica que `index.html` esté en la raíz del Space 2. El nombre debe ser exacto: `index.html` (minúsculas) ### Error de login: "Credenciales inválidas" **Causa**: Base de datos no inicializada **Solución**: 1. Reboot del Space 2. Verifica en logs que aparezca: "✅ Usuarios por defecto creados" ## 🔐 Seguridad ### Cambiar contraseñas por defecto Edita `app.py`, busca la función `init_db()` y cambia: ```python cursor.execute("INSERT INTO users VALUES ('USER', 'NUEVA_PASS', 'user', 'Usuario')") cursor.execute("INSERT INTO users VALUES ('ADMIN', 'NUEVA_PASS_ADMIN', 'admin', 'Admin')") ``` Luego: 1. Commit los cambios 2. Reboot del Space 3. ELIMINA el archivo `osorno_runners.db` (si ya existía) 4. Reboot nuevamente para que se cree con las nuevas credenciales ## 📈 Monitoreo ### Estadísticas del Space En la página principal del Space puedes ver: - Número de visitantes - Uso de CPU/RAM - Uptime ### Limits del plan gratuito - **Storage**: 50 GB - **RAM**: 16 GB - **CPU**: 2 vCPU - **Persistent storage**: ✅ Sí ## 🚀 Mejoras Post-Despliegue 1. **Personalizar README.md**: Agrega capturas de pantalla 2. **Agregar más usuarios**: Modifica la función `init_db()` 3. **Tema personalizado**: Edita `index.html` y los estilos CSS 4. **Analytics**: Agrega Google Analytics si quieres estadísticas ## 📞 Soporte Si tienes problemas: 1. Revisa los logs del Space 2. Busca en [HuggingFace Community](https://huggingface.co/spaces) 3. Abre un issue en el repositorio ## ✅ Checklist Final Antes de considerar el despliegue completo, verifica: - [ ] El Space está en status "Running" (verde) - [ ] Puedes hacer login con USER/123 - [ ] Puedes crear un plan como ADMIN - [ ] El plan se guarda y persiste después de recargar - [ ] Puedes ver los planes creados - [ ] La exportación a PDF funciona - [ ] Los cálculos de IMC y zonas FC son correctos --- **¡Felicidades! Tu aplicación Osorno Runners está en producción en HuggingFace Spaces** 🎉🏃‍♂️ URL de ejemplo: `https://huggingface.co/spaces/TU_USUARIO/osorno-runners` Comparte el link con tus usuarios y ¡a entrenar!