Skip to content

Despliegue de la aplicación de sorteo en GitHub Pages o plataformas alternativas #4

@svg153

Description

@svg153

Descripción

Necesitamos implementar un sistema de despliegue para nuestra aplicación de sorteo que permita su fácil acceso a través de una URL pública. La aplicación está desarrollada con Streamlit y actualmente puede ejecutarse en contenedores Docker.

Estado actual

La aplicación cuenta con:

  • Aplicación principal en Streamlit (app.py)
  • Configuración para Docker (Dockerfile y docker-compose.yaml)
  • Dependencias Python en requirements.txt

Limitación con GitHub Pages

GitHub Pages está diseñado principalmente para sitios web estáticos (HTML, CSS, JavaScript) y no soporta directamente aplicaciones Python/Streamlit que requieren un servidor backend funcionando. Por lo tanto, no es posible desplegar la aplicación directamente en GitHub Pages sin adaptaciones significativas.

Opciones de despliegue recomendadas

Opción 1: Streamlit Cloud (Recomendada)

Streamlit Cloud es una plataforma gratuita para desplegar aplicaciones Streamlit directamente desde repositorios de GitHub.

Pasos:

  1. Registrarse en Streamlit Cloud
  2. Conectar con la cuenta de GitHub
  3. Seleccionar el repositorio y la rama
  4. Configurar las dependencias (ya están en requirements.txt)
  5. Desplegar

Ventajas:

  • Gratuito para uso personal/comunitario
  • Integración directa con GitHub
  • No requiere cambios en el código
  • Soporte nativo para aplicaciones Streamlit

Opción 2: GitHub Actions + Heroku/Railway/Render

Usar GitHub Actions para el CI/CD y desplegar automáticamente en plataformas como Heroku, Railway o Render.

Pasos:

  1. Crear cuenta en la plataforma seleccionada
  2. Configurar GitHub Actions workflow (.github/workflows/deploy.yml)
  3. Configurar secrets para la autenticación
  4. El workflow desplegará la aplicación cuando se hagan cambios en la rama principal

Ventajas:

  • Despliegue automático con cada push
  • Varias opciones de hosting (algunas con tier gratuito)

Opción 3: Convertir a formato estático (Solución más compleja)

Si es absolutamente necesario usar GitHub Pages, podríamos:

  1. Crear una versión estática de la interfaz usando HTML/CSS/JS
  2. Implementar una función serverless para la lógica de sorteo
  3. Conectar la interfaz con la función serverless mediante API

Desventajas:

  • Requiere reescribir gran parte de la aplicación
  • Mayor complejidad de mantenimiento
  • Funcionalidad posiblemente limitada

Tareas propuestas

  • Evaluar y seleccionar la mejor opción de despliegue
  • Implementar la configuración necesaria para el despliegue
  • Documentar el proceso de despliegue en el README
  • Configurar un dominio personalizado (opcional)
  • Implementar CI/CD para actualizaciones automáticas

Recursos adicionales

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions