Déploiement continu avec Git et Gandi Simple Hosting
Le déploiement continu avec Git transforme une modification validée en version publiée automatiquement. Un pipeline enchaîne tests, compilation et déploiement dans un environnement reproductible.
Gandi Simple Hosting fournit une plateforme d’hébergement en nuage (PaaS) pour les sites et les applications. Le code provient d’un dépôt Git, les dépendances sont construites dans un environnement isolé, et chaque service dispose de ses variables, de ses journaux et de son nom de domaine.
Ce tutoriel présente une méthode complète pour Django ou une application légère. L’objectif est de rendre chaque livraison reproductible, de détecter les erreurs rapidement et de conserver un chemin sûr vers la version précédente.
Préparer et fiabiliser le dépôt Git
Vérifiez que le projet fonctionne en local, puis créez un dépôt propre. Dans une nouvelle copie, initialisez Git avec les commandes suivantes, en remplaçant le message de validation selon les conventions de votre équipe :
git init
git add .
git commit -m "Préparer le premier déploiement"
git branch -M main
Associez ensuite la copie locale au dépôt distant sous le nom origin, puis publiez la branche avec git push -u origin main. Ajoutez au fichier .gitignore les fichiers temporaires, les dépendances installées, les journaux et les données sensibles. Un fichier .env réel ne doit jamais être versionné ; ses valeurs doivent être fournies dans l’environnement Simple Hosting.
Conservez des commits courts et explicites, car chaque fusion peut déclencher une livraison. Pour une migration Django, le guide de Gandi explique comment migrer un site Django, avec les vérifications utiles avant de déplacer les fichiers, les dépendances et les paramètres vers Gandi.
Relier le projet à Gandi Simple Hosting
Dans l’espace de gestion, créez un service et reliez-le au dépôt Git disponible dans la console. Sélectionnez la branche main, le dossier racine du projet et la région d’hébergement. Gandi peut ensuite lancer la compilation automatiquement lorsque le dépôt reçoit une nouvelle révision.
Pour un projet Django, indiquez pip install -r requirements.txt comme commande d’installation. La compilation peut exécuter python manage.py collectstatic, tandis que le démarrage utilise généralement gunicorn config.wsgi:application --bind 0.0.0.0:$PORT. Si l’offre propose une étape de livraison dédiée, placez-y python manage.py migrate pour appliquer les migrations après le déploiement.
Associez ensuite le domaine personnalisé au service et vérifiez les enregistrements DNS nécessaires. Le certificat SSL peut être activé depuis Gandi, ce qui sécurise l’accès au site sans imposer une installation manuelle côté serveur. Les extensions de domaine disponibles permettent de choisir un nom adapté à un service, une association ou un projet professionnel.
Protéger la configuration et les e-mails
Centralisez les paramètres sensibles dans les variables d’environnement de Simple Hosting. La clé secrète Django, l’URL de la base de données, les identifiants d’un service externe et les informations de signature ne doivent jamais figurer dans le dépôt. Utilisez des valeurs distinctes pour le développement, les tests et la production.
Dans Django, lisez ces variables depuis les paramètres au lieu de les écrire directement dans le code. Restreignez ALLOWED_HOSTS aux noms de domaine réellement utilisés, contrôlez les origines autorisées et vérifiez la configuration du stockage des fichiers statiques. Cette discipline évite qu’une révision anodine expositionne des informations ou ne modifie le comportement de la production.
Pour la messagerie professionnelle, le guide de Gandi explique comment configurer un enregistrement MX afin d’utiliser Outlook ou Gmail avec un nom de domaine personnalisé. Gandi permet également d’activer le transfert d’e-mails et de gérer plusieurs adresses depuis le même espace.
Automatiser les compilations et les mises en production
Activez le déploiement automatique pour la branche principale et choisissez les règles de déclenchement. Une demande de fusion peut produire une environnement de prévisualisation, tandis qu’une fusion validée déclenche la version publique. Si l’intégration continue est gérée ailleurs, configurez un appel HTTP sécurisé vers le service Gandi.
Pour une équipe, la chaîne d’intégration continue (CI) peut vérifier le code avant la livraison. GitHub Actions, GitLab CI ou un outil équivalent exécute alors les tests, l’analyse de qualité et les contrôles de sécurité. Le résultat validé est ensuite transmis à Simple Hosting, qui construit et publie l’artefact dans un environnement isolé.
Supervisez chaque compilation dans les journaux Gandi et configurez une vérification de disponibilité après le déploiement. En cas d’erreur, conservez la version précédente et prévoyez un retour rapide vers celle-ci. Les migrations de base de données demandent une attention particulière : testez-les séparément et évitez qu’une commande répétée modifie inutilement les données.
Choisir une stratégie de livraison fiable
Trois stratégies répondent à des besoins différents selon la频率 des publications et le niveau de contrôle recherché :
| Stratégie | Déclencheur | Avantage | Limite |
|---|---|---|---|
| Publication Git directe | Fusion vers la branche principale | Livraison immédiate et simple | Publication possible sans test externe |
| Livraison après intégration continue | Validation du pipeline par un outil de CI | Contrôles fiables et traçabilité | Configuration supplémentaire |
| Déploiement manuel validé | Action d’un responsable de la livraison | Maîtrise du moment de publication | Intervention régulière et délai de livraison |
Pour une application stabilisation, la publication directe convient à un prototype. Dès que plusieurs personnes contribuent au code, la chaîne d’intégration continue offre un meilleur équilibre entre rapidité, sécurité et visibilité. Le déploiement manuel reste utile pour une migration sensible ou une release_requires validation réglementaire.
Quatre mesures renforcent ces différentes approches :
- Gardez les données sensibles hors du dépôt et renouvelez régulièrement les identifiants.
- Regroupez les changements liés afin de simplifier les tests et le retour arrière.
- Exécutez les migrations dans une étape contrôlée, distincte de la compilation.
- Testez périodiquement le retour vers la version précédente.
Publier le service et lancer le déploiement
Lors du premier déploiement, attendez la propagation DNS, puis contrôlez les journaux, la page d’accueil et les routes principales. Vérifiez également la connexion à la base de données, l’accès aux fichiers statiques et l’envoi d’un e-mail de test. Une fois ces contrôles validés, le cycle peut continuer automatiquement à chaque fusion.
Créez votre compte Gandi, réservez le nom qui vous ressemble parmi les nombreuses extensions proposées, puis lancez votre premier service Simple Hosting. Connectez Git, transmettez vos secrets par variables d’environnement et publiez une version testée avec votre domaine, vos e-mails et votre certificat SSL.