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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions