Pourquoi self-héberger Django sur un VPS ?
Les plateformes managées pour Django facturent à l'usage et masquent la couche serveur, ce qui complique l'optimisation des migrations, des tâches Celery et des fichiers médias volumineux. Sur un VPS, vous maîtrisez la stack complète : Gunicorn comme serveur WSGI, Nginx en frontal, PostgreSQL pour les données et Redis pour le cache et les files de tâches. Vous décidez de la version de Python, du nombre de workers, de la stratégie de collecte des fichiers statiques et du tuning de la base. Pour une application Django en production qui dépasse le prototype, cette transparence est décisive : vous pouvez profiler une requête lente, ajuster les paramètres de PostgreSQL et déployer une nouvelle version sans surcoût caché.
Bénéfices concrets d'un Django auto-hébergé
- Contrôle total de PostgreSQL : index, VACUUM, connexions persistantes et sauvegardes pg_dump planifiées.
- Tâches asynchrones avec Celery et Redis sans facturation par exécution de worker.
- Coût fixe et prévisible, peu importe le trafic ou le volume de fichiers médias servis.
- Données et logs sous votre juridiction, utile pour la conformité et l'audit.
- Liberté de version Python et de dépendances système (GDAL, WeasyPrint, Pillow) sans contraintes de buildpack.
- Déploiements reproductibles via Docker et possibilité de cloner l'environnement à l'identique.
Prérequis matériels et logiciels
Pour une application Django avec PostgreSQL et Redis, prévoyez au minimum 2 vCPU et 2 Go de RAM ; visez 4 Go si vous ajoutez Celery et un cache Redis chargé. L'OS recommandé est Ubuntu 22.04 ou 24.04 LTS. Installez Docker et Docker Compose pour isoler les services, ou Python 3.11+ et systemd pour une installation native. Un nom de domaine pointé en A vers l'IP du VPS est nécessaire pour le certificat TLS. Comptez 20 Go de disque pour l'application, la base et les fichiers médias d'un projet de taille moyenne.
Déployer Django étape par étape
Préparer le VPS et le projet
Connectez-vous en SSH, créez un utilisateur non-root dédié et installez Docker. Clonez votre dépôt et créez un fichier
.envcontenantSECRET_KEY,DATABASE_URL,ALLOWED_HOSTS=votredomaine.cometDEBUG=False.Conteneuriser avec Gunicorn
Écrivez un Dockerfile basé sur
python:3.11-slim, installez les dépendances depuisrequirements.txt, puis lancez l'application avecgunicorn projet.wsgi:application --bind 0.0.0.0:8000 --workers 3. Définissez un serviceweb, un servicedb(PostgreSQL) et un serviceredisdansdocker-compose.yml.Appliquer migrations et fichiers statiques
Lancez
docker compose run --rm web python manage.py migratepuispython manage.py collectstatic --noinput. Montez un volume pour/app/staticfileset/app/mediaafin que Nginx puisse les servir directement.Configurer Nginx en reverse proxy
Créez un bloc serveur qui transmet le trafic vers
http://web:8000viaproxy_pass, et qui sert/static/et/media/depuis les volumes. Ajoutez les en-têtesX-Forwarded-ProtoetHostpour que Django détecte correctement le HTTPS.Activer le HTTPS avec Let's Encrypt
Utilisez Certbot ou un conteneur
nginx-proxyavecacme-companionpour obtenir et renouveler automatiquement le certificat devotredomaine.com. Forcez la redirection HTTP vers HTTPS et activez HSTS dans Django viaSECURE_HSTS_SECONDS.Démarrer et superviser
Lancez
docker compose up -d, vérifiez les logs avecdocker compose logs -f webet créez le superutilisateur avecpython manage.py createsuperuser. Planifiez un cron pour les sauvegardespg_dumpet le redémarrage propre des workers Celery.
Activez le pooler de connexions PgBouncer entre Django et PostgreSQL : avec plusieurs workers Gunicorn et des tâches Celery, vous épuisez vite le max_connections de Postgres. PgBouncer en mode transaction multiplie le nombre de requêtes servies sans toucher au tuning de la base, et stabilise la latence sous charge.
Déployer Django en un clic depuis le Marketplace ServOrbit
Le Marketplace ServOrbit propose un template Django Stack préconfiguré : Python 3.12, Gunicorn, Nginx et PostgreSQL 16 sont installés automatiquement sur votre VPS dès la commande. Pas de session SSH pour l'installation de base — vous arrivez directement à l'étape de cloner votre dépôt. La fiche marketplace contient les spécifications exactes, les cas d'usage et un guide de première connexion.