[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-django-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},44,"deployer-django-vps","Déployer une application Django sur un VPS","Déployez Django sur un VPS : Gunicorn, Nginx, PostgreSQL, Docker et SSL. Guide complet pour développeurs Python qui veulent self-héberger.",8,628,false,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":27},"django","Django reste le framework Python de référence pour les applications web robustes et sécurisées. Le déployer soi-même sur un VPS vous donne un contrôle total sur la base de données, les fichiers statiques et le pipeline de mise à l'échelle, sans dépendre d'un PaaS opaque.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","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é.",{"type":35,"title":36,"items":37},"ul","Bénéfices concrets d'un Django auto-hébergé",[38,39,40,41,42,43],"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.",{"type":31,"title":45,"body":46},"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.",{"type":48,"title":49,"steps":50},"steps","Déployer Django étape par étape",[51,54,57,60,63,66],{"title":52,"body":53},"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 `.env` contenant `SECRET_KEY`, `DATABASE_URL`, `ALLOWED_HOSTS=votredomaine.ma` et `DEBUG=False`.",{"title":55,"body":56},"Conteneuriser avec Gunicorn","Écrivez un Dockerfile basé sur `python:3.11-slim`, installez les dépendances depuis `requirements.txt`, puis lancez l'application avec `gunicorn projet.wsgi:application --bind 0.0.0.0:8000 --workers 3`. Définissez un service `web`, un service `db` (PostgreSQL) et un service `redis` dans `docker-compose.yml`.",{"title":58,"body":59},"Appliquer migrations et fichiers statiques","Lancez `docker compose run --rm web python manage.py migrate` puis `python manage.py collectstatic --noinput`. Montez un volume pour `\u002Fapp\u002Fstaticfiles` et `\u002Fapp\u002Fmedia` afin que Nginx puisse les servir directement.",{"title":61,"body":62},"Configurer Nginx en reverse proxy","Créez un bloc serveur qui transmet le trafic vers `http:\u002F\u002Fweb:8000` via `proxy_pass`, et qui sert `\u002Fstatic\u002F` et `\u002Fmedia\u002F` depuis les volumes. Ajoutez les en-têtes `X-Forwarded-Proto` et `Host` pour que Django détecte correctement le HTTPS.",{"title":64,"body":65},"Activer le HTTPS avec Let's Encrypt","Utilisez Certbot ou un conteneur `nginx-proxy` avec `acme-companion` pour obtenir et renouveler automatiquement le certificat de `votredomaine.ma`. Forcez la redirection HTTP vers HTTPS et activez HSTS dans Django via `SECURE_HSTS_SECONDS`.",{"title":67,"body":68},"Démarrer et superviser","Lancez `docker compose up -d`, vérifiez les logs avec `docker compose logs -f web` et créez le superutilisateur avec `python manage.py createsuperuser`. Planifiez un cron pour les sauvegardes `pg_dump` et le redémarrage propre des workers Celery.",{"type":70,"body":71},"tip","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.","Lancez votre Django en quelques minutes","Le VPS Cloud ServOrbit fournit un template préconfiguré avec Docker, Nginx et certificats SSL automatiques, prêt à accueillir votre application Django, PostgreSQL et Redis.","Déployer mon VPS Django","\u002Fvps-cloud",[77,91,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":82,"views":83,"isPinned":13,"publishedAt":84,"category":85,"categories":86,"featuredImage":23,"bgImage":24,"posterImage":88,"relatedSolution":89},5,"deployer-laravel-vps","Déployer Laravel sur un VPS : guide production","Passez Laravel en production sur VPS : PHP, workers, cache, base de données, reverse proxy et HTTPS proprement configurés.",7,2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[87],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":90},"laravel-stack",{"id":92,"slug":93,"title":94,"excerpt":95,"readTime":11,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},43,"deployer-nodejs-vps","Déployer une application Node.js sur un VPS","Déployez une application Node.js en production sur un VPS : PM2, reverse proxy Nginx, SSL Let's Encrypt et démarrage automatique au boot.",591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":103},"nodejs",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":82,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},45,"deployer-fastapi-vps","Déployer une application FastAPI sur un VPS","Déployez FastAPI sur un VPS avec Uvicorn, Gunicorn, Nginx et SSL. Guide pour développeurs Python qui veulent une API async self-hébergée.",665,"2026-05-06T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-fastapi-vps-poster.svg",{"categorySlug":18,"appSlug":116},"fastapi",1784126232667]