Cómo desplegar una app de Python (Flask/FastAPI) en hosting compartido

D
DanisCh
(Actualizado: ) • 6 min de lectura
Cómo desplegar una app de Python (Flask/FastAPI) en hosting compartido
Hosting y VPS HTML Python

Desplegar una aplicación web hecha con Flask o FastAPI puede parecer intimidante la primera vez, especialmente si estás acostumbrado a un entorno de desarrollo local. En este artículo te explico, paso a paso y sin rodeos, cómo llevar tu app de Python a producción en un hosting compartido.

¿Es posible usar Flask o FastAPI en hosting compartido?

La respuesta corta es sí, pero con matices. El hosting compartido tradicional está diseñado principalmente para PHP, por lo que no todas las opciones del mercado soportan Python de forma nativa. Sin embargo, muchos proveedores modernos ya ofrecen soporte a través de WSGI (para Flask) o ASGI (para FastAPI), lo que hace posible ejecutar tus aplicaciones sin necesidad de un servidor dedicado.

Si estás evaluando dónde alojar tu proyecto, Hostinger es una opción popular entre desarrolladores que buscan un hosting compartido asequible con soporte para Python mediante configuración WSGI. Es un buen punto de partida si recién estás comenzando.

Requisitos previos

Antes de comenzar, asegúrate de tener listo lo siguiente:

  • Una aplicación Flask o FastAPI funcionando en tu entorno local.
  • Un archivo requirements.txt con todas tus dependencias.
  • Acceso al panel de control de tu hosting (cPanel o similar).
  • Conocimientos básicos de la terminal y SSH.

Paso 1: Verifica que tu hosting soporte Python

No todos los hostings compartidos ofrecen soporte para Python. Antes de contratar o configurar cualquier cosa, entra al panel de control (generalmente cPanel) y busca una sección llamada "Setup Python App" o "Python Selector". Si la encuentras, estás en el lugar correcto.

Si tu hosting actual no lo soporta, considera migrar a uno que sí lo haga. Algunos proveedores que ofrecen esta funcionalidad incluyen a Hostinger, que dispone de planes con soporte WSGI y acceso SSH para este tipo de proyectos.

Paso 2: Sube tu código al servidor

Puedes subir tu proyecto de dos maneras:

  1. Mediante el administrador de archivos de cPanel: crea una carpeta para tu proyecto (por ejemplo, /home/tuusuario/miapp) y sube todos tus archivos allí.
  2. Mediante SSH y Git: conéctate al servidor con SSH y clona tu repositorio directamente: 

    git clone https://github.com/tuusuario/miapp.git

La opción de Git es más limpia y te permitirá actualizar tu app fácilmente en el futuro con un simple git pull.

Paso 3: Crea un entorno virtual e instala dependencias

Desde la terminal SSH, navega a la carpeta de tu proyecto y crea un entorno virtual:

cd ~/miapp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Si tu hosting usa el Python Selector de cPanel, también puedes gestionar el entorno virtual directamente desde la interfaz gráfica, lo cual es más cómodo si no te sientes del todo cómodo con la terminal.

Paso 4: Configura el archivo WSGI

El hosting compartido se comunica con tu app a través de un archivo WSGI. Este archivo actúa como puente entre el servidor web (Apache o Nginx) y tu aplicación Python.

Para Flask, crea un archivo llamado passenger_wsgi.py en la raíz de tu proyecto:

from tuapp import app as application

Sustituye tuapp con el nombre del módulo donde tienes tu instancia de Flask. Si tu archivo principal se llama main.py y la instancia se llama app, sería:

from main import app as application

Para FastAPI, necesitas un paso adicional porque FastAPI usa ASGI en lugar de WSGI. Instala un adaptador como a2wsgi:

pip install a2wsgi

Luego crea el archivo passenger_wsgi.py así:

from a2wsgi import ASGIMiddleware
from main import app

application = ASGIMiddleware(app)

Paso 5: Configura la aplicación desde el panel de cPanel

En cPanel, ve a Setup Python App y configura los siguientes campos:

  • Python version: elige la versión compatible con tu proyecto (3.9, 3.10, 3.11, etc.).
  • Application root: la ruta a la carpeta de tu proyecto (ej. /home/tuusuario/miapp).
  • Application URL: el dominio o subdominio donde quieres que esté disponible tu app.
  • Application startup file: passenger_wsgi.py
  • Application entry point: application

Guarda los cambios y haz clic en Restart. Si todo está bien configurado, tu aplicación debería responder en la URL que definiste.

Paso 6: Configura las variables de entorno

Nunca guardes contraseñas, claves de API o configuraciones sensibles directamente en tu código. Usa variables de entorno. Desde el panel de Python en cPanel puedes agregarlas directamente, o puedes crear un archivo .env y usar la librería python-dotenv:

pip install python-dotenv

Y en tu aplicación:

from dotenv import load_dotenv
import os

load_dotenv()
SECRET_KEY = os.getenv("SECRET_KEY")

Paso 7: Verifica los logs ante cualquier error

Si tu app no carga correctamente, revisa los logs. En cPanel los puedes encontrar en: Errors o en la ruta ~/logs/ desde SSH. Los errores más comunes son:

  • Módulo no encontrado (falta instalar una dependencia).
  • Error de importación en el archivo WSGI.
  • Permisos incorrectos en algún archivo o carpeta.
  • Versión de Python incompatible.

¿Y si necesito más control del servidor?

El hosting compartido es una excelente opción para proyectos pequeños o medianos, pero tiene limitaciones: no puedes instalar paquetes a nivel del sistema, configurar servicios como Redis o Celery de forma libre, ni escalar horizontalmente.

Si tu proyecto empieza a crecer y necesitas más flexibilidad, el siguiente paso natural es un servidor en la nube (VPS o cloud server). En ese escenario, DigitalOcean es una alternativa muy valorada por la comunidad de desarrolladores: su panel es intuitivo, su documentación es excelente, y los precios son muy competitivos. Con un Droplet de DigitalOcean tendrías control total sobre tu entorno sin complicaciones innecesarias.

Consejos finales

  • Usa Gunicorn como servidor WSGI de producción si tu hosting lo permite o si migras a un VPS. Flask tiene un servidor de desarrollo integrado, pero no está pensado para producción.
  • Activa HTTPS. La mayoría de hostings ofrecen Let's Encrypt gratuito. No hay excusa para servir tu app por HTTP en 2025.
  • Automatiza los despliegues. Con un webhook de GitHub y un pequeño script puedes hacer que cada git push actualice automáticamente tu servidor.
  • Monitorea tu app. Herramientas como Sentry te avisan cuando ocurre un error en producción antes de que tus usuarios se quejen.

Conclusión

Desplegar una app de Flask o FastAPI en hosting compartido es perfectamente viable si el proveedor ofrece soporte para Python y WSGI. El proceso requiere un poco más de configuración que subir un sitio estático, pero con los pasos correctos es completamente manejable, incluso para desarrolladores que están comenzando.

Empieza con un hosting compartido que soporte Python como Hostinger para proyectos iniciales, y cuando tu aplicación lo requiera, da el salto a un servidor en la nube como los que ofrece DigitalOcean. Lo importante es que tu app llegue a tus usuarios, y ahora ya sabes cómo hacerlo.

¿Te ha gustado esta entrada?

Compártela con tus compañeros para que también sigan aprendiendo.

Comunidad y Comentarios

0 COMENTARIOS

No hay comentarios todavía. Sé el primero en compartir tu opinión.

Escribe tu opinión
Respondiendo a