Déploiement d’une application Django

Bonjour,

Récemment j’ai créé une application django, j’aime beaucoup la facilité avec laquelle je peux crée ce dont j’ai besoin avec.

Mais comme à chaque fois quand je crée une app django, une étape m’effraies, le déploiement. J’arrive toujours à m’entremeler les pinceaux avec les statics, les médias, la sécurité .

Est-ce que vous avez des conseils pour déployer facilement, mettre en place un déploiement automatique, voir une ressource externe pour m’aider à comprendre comment fonctionne le déploiement.

Merci d’avance.

Pour ma part je déploie tout systématiquement avec Ansible.

Mais que ce soit Ansible, Salt, Puppet, Chef, un Makefile, un shell script, ou n’importe quoi d’autre, peu importe en fait, ce qui compte pour moi c’est le côté reproductible : ton serveur brûle ? Pas de soucis, tu relances le playbook, tu recharges une sauvegarde, et c’est reparti.

J’ai par exemple HackInScience qui est déployé comme ça :

Ça s’occupe des statiques, de l’i18n, du certificat HTTPS, de la configuration de nginx…

Libre à toi de cp -r, tout relire, élaguer ce qui ne t’es pas utile, renommer ce qui le doit, n’hésite pas à me poser des questions, te faire relire (je ne suis pas le seul ici à lire de l’Ansible, d’ailleurs je ne suis pas du tout le meilleur ici, je me contente de peu avec Ansible).

Attention ne cherche pas de gunicorn ou de uwsgi dans ma config hkis, j’utilise daphne car j’ai des websockets (et donc vite de l’asyncio), donc ça passe par asgi.py et pas wsgi.py. Mais ça marche pareil sinon, ça sait très bien délivrer des vues synchrones aussi.

Je te déconseille de déployer automatiquement via de la CI/CI, du moins pas maintenant : KISS.

Pour héberger ça il te faut un serveur et un nom de domaine, dis-nous si tu as aussi besoin de guidage sur le sujet.

4 « J'aime »

+1 ansible.
Il y a aussi cookiecutter-django sur github qui fait ça mais part de postulats pas forcément proche des siens.

Bonsoir @Melcore,

Les premiers chapitres de l’ouvrage 'Docker - 2ème édition" de chez Dunod donnent des informations généralistes sur le déploiement: Ansible demeure une solution intéressante, surtout qu’il n’est pas nécessaire d’installer une application cliente pour le déploiement; une liaison ssh et un Python sur le poste client suffisent.

Autre solution, l’utilisation de containers avec Docker et la création d’images facilitent grandement l’automatisation du déploiement.