Saltar al contenido
ElevoCloud - Hosting en Chile ElevoCloud
← Volver al blog
Tutoriales Desarrollo 16 de julio de 2026 9 min de lectura

Hosting Python y Django en Chile: Cómo Desplegar Tu Aplicación Web

Django necesita un proceso WSGI persistente, no hosting PHP estándar. Esta guía explica qué hosting necesitas, cómo configurar el entorno y desplegar tu aplicación en servidores chilenos.

Hosting Python y Django en Chile: Cómo Desplegar Tu Aplicación Web

Hosting Python y Django en Chile: Cómo Desplegar Tu Aplicación Web

Desplegar una aplicación Django en producción no es como publicar un sitio WordPress. No basta con subir archivos por FTP — necesitas un servidor que soporte Python, un entorno virtual correctamente configurado, un servidor WSGI, y una cadena de configuración que muchos tutoriales dan por supuesta.

Si estás buscando cómo hacer esto en Chile, con un proveedor local y sin depender de AWS o servicios en inglés con soporte de 48 horas, esta guía es para ti.


¿Por qué Python/Django necesita un hosting diferente?

La mayoría de los hostings en Chile están optimizados para PHP. WordPress, WooCommerce, Laravel — todo PHP. Django es diferente en un punto clave: necesita un proceso Python persistente corriendo en el servidor, no solo interpretar archivos estáticos.

En PHP, cuando alguien visita tu sitio, el servidor web (Apache o LiteSpeed) invoca PHP, ejecuta el archivo, devuelve el HTML y termina. Stateless y simple.

En Python con Django, la aplicación necesita un servidor de aplicaciones (Gunicorn o uWSGI) que mantiene la aplicación en memoria y responde solicitudes. El servidor web (Nginx o Apache) actúa como proxy que reenvía las solicitudes al servidor WSGI.

Esta diferencia tiene implicaciones en el tipo de hosting que necesitas:

  • Hosting compartido estándar: generalmente no permite procesos persistentes Python — no funciona para Django en producción
  • Hosting compartido con Passenger: permite desplegar Django a través de Phusion Passenger como interfaz WSGI — funciona para proyectos medianos
  • VPS o Cloud: control total del servidor, instalas Gunicorn, Nginx, PostgreSQL y cualquier dependencia — el camino correcto para producción seria

Requisitos técnicos del servidor para Python/Django

Antes de elegir hosting, verifica que cumple estos requisitos:

Python:

  • Python 3.10 o superior (Django 5.x requiere Python 3.10+)
  • pip disponible para instalar dependencias
  • Capacidad de crear entornos virtuales (venv o virtualenv)

Servidor WSGI:

  • Soporte para Gunicorn o uWSGI (en VPS los instalas tú)
  • O soporte para Phusion Passenger (en hosting compartido con cPanel)

Base de datos:

  • PostgreSQL 14+ (recomendado para Django)
  • O MySQL/MariaDB (Django lo soporta pero no es la combinación nativa)
  • SQLite solo para desarrollo local — nunca en producción

Sistema operativo:

  • Linux (Ubuntu 22.04/24.04 LTS o Rocky Linux 8/9 son las opciones más comunes)
  • Python 3.x disponible en PATH

Servidor web:

  • Nginx (mejor opción para Django en VPS) o Apache con mod_wsgi
  • LiteSpeed con LsAPI para Python (disponible en algunos hosting con Passenger)

Opciones de hosting para Python en Chile: compartido, VPS y cloud

Hosting compartido con Passenger (opción principiantes)

Phusion Passenger es un servidor de aplicaciones que se integra con Apache y LiteSpeed, permitiendo desplegar aplicaciones Python en hosting compartido. La configuración es más simple que un VPS pero con menos flexibilidad.

Cuándo elegir esta opción:

  • Proyecto pequeño o en etapa de prototipo
  • Sin requisitos avanzados de rendimiento
  • Quieres empezar rápido sin gestionar servidor

Limitaciones:

  • Control limitado sobre la versión de Python
  • Sin acceso a sudo para instalar dependencias del sistema
  • Rendimiento inferior al VPS bajo carga
  • No adecuado para aplicaciones con workers Celery, Redis o tareas asíncronas pesadas

VPS (opción recomendada para producción)

Un VPS te da root access completo. Instalas Python, Gunicorn, Nginx, PostgreSQL y cualquier servicio que necesites. Es más trabajo inicial pero da control total y rendimiento previsible.

Por qué es la opción correcta para Django en producción:

  • Instalas la versión exacta de Python que necesitas
  • Configuras Gunicorn con tantos workers como necesites
  • PostgreSQL con configuración optimizada para tu carga
  • Variables de entorno y archivos .env sin restricciones
  • Celery + Redis para tareas asíncronas sin limitaciones

Cloud hosting para Django

Para aplicaciones con tráfico variable, alta disponibilidad requerida o múltiples servicios (Django app, workers Celery, Redis, base de datos en instancia separada), el cloud es la opción más robusta.

Arquitectura Django en producción: Nginx → Gunicorn → Django → PostgreSQL


Cómo desplegar Django en cPanel paso a paso

Para hosting compartido con cPanel y soporte Passenger:

Paso 1 — Verifica la versión de Python disponible

Accede a SSH y ejecuta:

python3 --version
python3.11 --version  # prueba versiones específicas

En cPanel moderno, también puedes ver las versiones disponibles en cPanel → Software → Setup Python App.

Paso 2 — Crea la aplicación Python en cPanel

Ve a cPanel → Software → Setup Python App:

  • Versión Python: selecciona 3.10 o superior
  • Directorio de la aplicación: django-app (o el nombre de tu proyecto)
  • Dominio y directorio público: configura según tu estructura
  • Clic en "Create"

Esto crea automáticamente un entorno virtual en ~/virtualenv/django-app/.

Paso 3 — Activa el entorno virtual e instala Django

cPanel genera un comando de activación al crear la app. Conectate por SSH y ejecutá ese comando. Luego:

pip install django gunicorn psycopg2-binary  # psycopg2 para PostgreSQL
pip install -r requirements.txt  # si tienes archivo de dependencias

Paso 4 — Subí tu proyecto Django

Usá el Administrador de archivos de cPanel o SFTP para subir tu proyecto al directorio configurado. La estructura típica:

~/django-app/
  myproject/
    manage.py
    myproject/
      settings.py
      urls.py
      wsgi.py
    apps/
  requirements.txt
  passenger_wsgi.py  ← este archivo es clave para cPanel

Paso 5 — Configurá passenger_wsgi.py

Este archivo es el punto de entrada que Passenger usa para iniciar tu aplicación:

import os, sys

sys.path.insert(0, os.path.dirname(__file__))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Paso 6 — Configuración básica en settings.py

Para producción en cPanel:

DEBUG = False
ALLOWED_HOSTS = ['tudominio.cl', 'www.tudominio.cl']
STATIC_ROOT = '/home/usuario/public_html/static/'
MEDIA_ROOT = '/home/usuario/public_html/media/'

Paso 7 — Ejecutá migraciones y collectstatic

python manage.py migrate
python manage.py collectstatic --noinput
python manage.py createsuperuser

Paso 8 — Reiniciá la aplicación Passenger

En cPanel → Setup Python App → Restart. Tu aplicación Django debería estar accesible en el dominio configurado.


Configurar entorno virtual, WSGI y static files

Entorno virtual (virtualenv)

El entorno virtual aísla las dependencias de tu aplicación Django del sistema Python global. En VPS:

# Crear entorno virtual
python3.11 -m venv /home/usuario/venv/django-app

# Activar
source /home/usuario/venv/django-app/bin/activate

# Instalar dependencias
pip install -r requirements.txt

Nunca instalés paquetes globalmente (sin virtualenv) en un servidor de producción. Si tienes varias aplicaciones Python en el mismo servidor, cada una debe tener su propio entorno virtual.

Gunicorn como servidor WSGI (en VPS)

Gunicorn es el servidor WSGI recomendado para Django en VPS:

# Instalar en el virtualenv
pip install gunicorn

# Arrancar manualmente (para probar)
gunicorn --workers 3 --bind 127.0.0.1:8000 myproject.wsgi:application

Para producción, configurá Gunicorn como servicio systemd:

# /etc/systemd/system/django-app.service
[Unit]
Description=Django app Gunicorn

[Service]
User=usuario
Group=www-data
WorkingDirectory=/home/usuario/django-app
ExecStart=/home/usuario/venv/django-app/bin/gunicorn \
    --workers 3 \
    --bind unix:/home/usuario/django-app/django.sock \
    myproject.wsgi:application
Restart=always

[Install]
WantedBy=multi-user.target
systemctl enable django-app
systemctl start django-app

Static files con Nginx

En producción, Django no debe servir archivos estáticos — Nginx lo hace directamente (más eficiente):

server {
    listen 80;
    server_name tudominio.cl;

    location /static/ {
        alias /home/usuario/django-app/staticfiles/;
    }

    location /media/ {
        alias /home/usuario/django-app/media/;
    }

    location / {
        proxy_pass http://unix:/home/usuario/django-app/django.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Bases de datos: PostgreSQL vs MySQL para Django

Django soporta ambas, pero PostgreSQL es la opción nativa y recomendada:

PostgreSQLMySQL/MariaDB
Soporte DjangoNativo, primera claseSoportado pero con limitaciones
Tipos de datosJSONField nativo, ArrayField, HStoreJSON limitado, sin arrays
TransaccionesACID completoACID con InnoDB
Full-text searchSuperiorBásico
Velocidad con Django ORMLigeramente superiorComparable en operaciones simples
Migraciones DjangoSin problemasRequiere cuidado extra

Configuración de PostgreSQL en Django:

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'nombre_db',
        'USER': 'usuario_db',
        'PASSWORD': 'contraseña_segura',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Instalá el conector:

pip install psycopg2-binary  # para desarrollo
pip install psycopg2         # para producción (requiere libpq-dev)

Seguridad para aplicaciones Django en producción

Django tiene una arquitectura de seguridad sólida, pero requiere configuración correcta en producción:

Variables críticas en settings.py

# Nunca dejes DEBUG=True en producción
DEBUG = False  # ❌ esto está bien, lo contrario sería el problema

# Especificá los dominios permitidos explícitamente
ALLOWED_HOSTS = ['tudominio.cl', 'www.tudominio.cl']

# SECRET_KEY desde variable de entorno, nunca hardcoded ✅
import os
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')

# HTTPS obligatorio
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

Archivo .env para variables sensibles

Nunca commitees credenciales a Git. Usá python-dotenv:

pip install python-dotenv
# settings.py
from dotenv import load_dotenv
load_dotenv()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASSWORD'),
        'HOST': os.environ.get('DB_HOST', 'localhost'),
    }
}

Permisos de archivos

# El directorio del proyecto solo accesible por el usuario de la app
chmod 750 /home/usuario/django-app/
chmod 600 /home/usuario/django-app/.env

# Media y static pueden leer www-data
chmod 755 /home/usuario/django-app/staticfiles/
chmod 755 /home/usuario/django-app/media/

Actualizaciones de dependencias

Django tiene un ciclo de versiones con soporte de seguridad definido. Siempre usá la versión LTS más reciente y mantén un proceso de actualización de dependencias.

# Revisar dependencias con vulnerabilidades conocidas
pip install safety
safety check

Comparativa: hosting Python en Chile 2026

OpciónCosto mensualPython versionPostgreSQLAcceso SSHGunicorn/WSGIIdeal para
cPanel con Passenger$10.000–$25.000 CLP3.10–3.12 (según hosting)MySQL (PostgreSQL en algunos)PassengerPrototipos, proyectos pequeños
VPS básico (2GB RAM)$25.000–$50.000 CLPCualquieraSí (instalas tú)Sí (root)GunicornProyectos medianos en producción
VPS profesional (4-8GB RAM)$50.000–$120.000 CLPCualquieraSí (root)Gunicorn + NginxAplicaciones con tráfico real
Cloud hosting$60.000–$200.000 CLPCualquieraGunicorn + NginxAlta disponibilidad, escalado

Recomendación por etapa:

  • Prototipo / MVP: hosting compartido con cPanel Passenger
  • Producción inicial: VPS básico con Gunicorn + Nginx + PostgreSQL
  • Crecimiento: VPS profesional o cloud con autoescalado

Los planes VPS de Elevocloud incluyen acceso SSH root, soporte para Python 3.10+, instalación de PostgreSQL, y soporte técnico en español para ayudarte con la configuración inicial del entorno.

Opciones de hosting Python en Chile: cPanel Passenger, VPS y Cloud


Despliega tu app Python en hosting chileno con soporte real. Conoce Elevocloud para desarrolladores →

Seguir leyendo

Mas entradas del blog

Ver todas →
Escríbenos por WhatsApp