Guía de despliegue

Desplegar una aplicación Django en un VPS

Desplegar en un VPS Cloud →

Tutorial

Desplegar una aplicación Django en un VPS

Desarrollo3 min de lectura6 pasos

Django sigue siendo el framework Python de referencia para las aplicaciones web robustas y seguras. Desplegarlo usted mismo en un VPS le da un control total sobre la base de datos, los archivos estáticos y el pipeline de escalado, sin depender de un PaaS opaco.

Contenido· ¿Por qué autoalojar Django en un VPS?1/5
  1. 01¿Por qué autoalojar Django en un VPS?
  2. 02Beneficios concretos de un Django autoalojado
  3. 03Requisitos de hardware y software
  4. 04Desplegar Django paso a paso
  5. 05Desplegar Django con un clic desde el Marketplace ServOrbit

¿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

  1. 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 .env que contenga SECRET_KEY, DATABASE_URL, ALLOWED_HOSTS=votredomaine.com y DEBUG=False.

  2. Contenerizar con Gunicorn

    Escriba un Dockerfile basado en python:3.11-slim, instale las dependencias desde requirements.txt y después lance la aplicación con gunicorn projet.wsgi:application --bind 0.0.0.0:8000 --workers 3. Defina un servicio web, un servicio db (PostgreSQL) y un servicio redis en docker-compose.yml.

  3. Aplicar migraciones y archivos estáticos

    Ejecute docker compose run --rm web python manage.py migrate y después python manage.py collectstatic --noinput. Monte un volumen para /app/staticfiles y /app/media para que Nginx pueda servirlos directamente.

  4. Configurar Nginx como reverse proxy

    Cree un bloque de servidor que reenvíe el tráfico hacia http://web:8000 mediante proxy_pass, y que sirva /static/ y /media/ desde los volúmenes. Añada las cabeceras X-Forwarded-Proto y Host para que Django detecte correctamente el HTTPS.

  5. Activar el HTTPS con Let's Encrypt

    Utilice Certbot o un contenedor nginx-proxy con acme-companion para obtener y renovar automáticamente el certificado de votredomaine.com. Fuerce la redirección de HTTP a HTTPS y active HSTS en Django mediante SECURE_HSTS_SECONDS.

  6. Iniciar y supervisar

    Lance docker compose up -d, revise los registros con docker compose logs -f web y cree el superusuario con python manage.py createsuperuser. Programe un cron para las copias de seguridad pg_dump y 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.

Despliegue su Django Stack en unos minutos

La plantilla Django Stack de ServOrbit instala Python 3.12, Gunicorn, Nginx y PostgreSQL 16 en su VPS. Clone su proyecto y empiece de inmediato.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva