¿Por qué autoalojar Django en un VPS?
Las plataformas gestionadas para Django facturan por uso y ocultan la capa de servidor, lo que complica la optimización de las migraciones, de las tareas Celery y de los archivos multimedia de gran tamaño. En un VPS, usted controla la pila completa: Gunicorn como servidor WSGI, Nginx al frente, PostgreSQL para los datos y Redis para la caché y las colas de tareas. Usted decide la versión de Python, el número de workers, la estrategia de recolección de los archivos estáticos y el ajuste de la base de datos. Para una aplicación Django en producción que va más allá del prototipo, esta transparencia es decisiva: puede perfilar una consulta lenta, ajustar los parámetros de PostgreSQL y desplegar una nueva versión sin sobrecoste oculto.
Beneficios concretos de un Django autoalojado
- Control total de PostgreSQL: índices, VACUUM, conexiones persistentes y copias de seguridad pg_dump programadas.
- Tareas asíncronas con Celery y Redis sin facturación por ejecución de worker.
- Coste fijo y previsible, sin importar el tráfico ni el volumen de archivos multimedia servidos.
- Datos y registros bajo su jurisdicción, útil para el cumplimiento normativo y la auditoría.
- Libertad de versión de Python y de dependencias del sistema (GDAL, WeasyPrint, Pillow) sin restricciones de buildpack.
- Despliegues reproducibles mediante Docker y posibilidad de clonar el entorno de forma idéntica.
Requisitos de hardware y software
Para una aplicación Django con PostgreSQL y Redis, prevea como mínimo 2 vCPU y 2 GB de RAM; apunte a 4 GB si añade Celery y una caché Redis cargada. El sistema operativo recomendado es Ubuntu 22.04 o 24.04 LTS. Instale Docker y Docker Compose para aislar los servicios, o Python 3.11+ y systemd para una instalación nativa. Se necesita un nombre de dominio apuntado con un registro A hacia la IP del VPS para el certificado TLS. Calcule 20 GB de disco para la aplicación, la base de datos y los archivos multimedia de un proyecto de tamaño medio.
Desplegar Django paso a paso
Preparar el VPS y el proyecto
Conéctese por SSH, cree un usuario no root dedicado e instale Docker. Clone su repositorio y cree un archivo
.envque contengaSECRET_KEY,DATABASE_URL,ALLOWED_HOSTS=votredomaine.comyDEBUG=False.Contenerizar con Gunicorn
Escriba un Dockerfile basado en
python:3.11-slim, instale las dependencias desderequirements.txty después lance la aplicación congunicorn projet.wsgi:application --bind 0.0.0.0:8000 --workers 3. Defina un servicioweb, un serviciodb(PostgreSQL) y un servicioredisendocker-compose.yml.Aplicar migraciones y archivos estáticos
Ejecute
docker compose run --rm web python manage.py migratey despuéspython manage.py collectstatic --noinput. Monte un volumen para/app/staticfilesy/app/mediapara que Nginx pueda servirlos directamente.Configurar Nginx como reverse proxy
Cree un bloque de servidor que reenvíe el tráfico hacia
http://web:8000medianteproxy_pass, y que sirva/static/y/media/desde los volúmenes. Añada las cabecerasX-Forwarded-ProtoyHostpara que Django detecte correctamente el HTTPS.Activar el HTTPS con Let's Encrypt
Utilice Certbot o un contenedor
nginx-proxyconacme-companionpara obtener y renovar automáticamente el certificado devotredomaine.com. Fuerce la redirección de HTTP a HTTPS y active HSTS en Django medianteSECURE_HSTS_SECONDS.Iniciar y supervisar
Lance
docker compose up -d, revise los registros condocker compose logs -f weby cree el superusuario conpython manage.py createsuperuser. Programe un cron para las copias de seguridadpg_dumpy el reinicio limpio de los workers Celery.
Active el pooler de conexiones PgBouncer entre Django y PostgreSQL: con varios workers Gunicorn y tareas Celery, agota rápidamente el max_connections de Postgres. PgBouncer en modo transacción multiplica el número de consultas servidas sin tocar el ajuste de la base de datos, y estabiliza la latencia bajo carga.
Desplegar Django con un clic desde el Marketplace ServOrbit
El Marketplace ServOrbit ofrece una plantilla Django Stack preconfigurada: Python 3.12, Gunicorn, Nginx y PostgreSQL 16 se instalan automáticamente en su VPS desde el pedido. Sin sesión SSH para la instalación de base — llega directamente al paso de clonar su repositorio. La ficha del marketplace contiene las especificaciones exactas, los casos de uso y una guía de primera conexión.