Je fais beaucoup de projets idiots, et une chose que je voulais depuis longtemps, c’est un moyen d’automatiser le processus de déploiement à l’aide de Git. Donc, dans cet article de blog, nous allons nous attaquer à cela.
Tout d’abord, définissons quelle est la cible. Ce que je veux, c’est un système avec les éléments suivants:
- Déploiement automatisé lorsqu’un nouveau commit atterrit dans mon dépôt git.
- Système mains libres. Je ne veux pas avoir à y toucher une fois qu’il est installé.
- Facile à mettre en place de nouveaux projets sans trop de tracas.
J’étudie cela depuis un moment et beaucoup de solutions que j’ai rencontrées se répartissent généralement en quelques catégories:
- Configuration des crochets post-réception de Git (comme celui-ci)
- Utilisation des actions GitHub pour pousser les déploiements (comme celui-ci)
- Utilisant
scp
oursync
- Combinaison de tâches cron et de scripts bash.
Ceux-ci fonctionneraient dans une certaine mesure, mais ils sont tous en deçà de mon objectif d’une manière ou d’une autre. Soit ils ont encore besoin d’un certain niveau d’attention manuelle de ma part, soit ils ne réagissent pas aux événements git réels, soit ils sont tout simplement trop cérémonieux à mettre en place sur de nouveaux projets. Je construis beaucoup de projets différents qui ont chacun leurs propres étapes de construction, donc je ne peux pas m’attendre à ce que le même script simple fonctionne pour tout le monde.
Pendant un moment, j’ai pensé que j’allais devoir construire moi-même le projet de mes rêves à partir d’une série de scripts complexes tous bricolés, mais j’ai récemment trouvé un projet appelé Coolify qui ressemble à un ticket.
Je n’ai pas de preuve que ce n’est pas en soi une série de scripts complexes tous bricolés, mais c’est open-source et c’est bien emballé, donc c’est mieux que tout ce que j’ai.
Vous pouvez trouver plus de détails sur coolify.io où vous verrez qu’il se présente comme « auto-hébergé, simplifié » et « une alternative à Heroku et Netlify ».
Super!
Configuration et installation
Je vais le configurer sur Linode. Voici une capture d’écran de mes paramètres assez basiques pour mon serveur.
(Pas nécessaire, mais si vous souhaitez suivre avec un nouveau compte Linode, utilisez ce lien pour un crédit de 100 $)
Une fois que notre serveur sera opérationnel, je pourrai ssh
dans le serveur en utilisant l’adresse IP (la vôtre serait différente) :
Ensuite, je peux retourner sur le site Web de Coolify et copier leur script d’installation dans le terminal :
wget -q https://get.coollabs.io/coolify/install.sh -O install.sh; sudo bash ./install.sh
Cette partie prend un peu de temps, mais une fois terminée, nous invite à aller à l’adresse IP du serveur et au port 3000, http://66.175.223.11:3000
.
Lorsque nous ouvrons ce lien, nous obtenons cette douce page de connexion.
Je ne peux pas me connecter car aucun compte n’a été créé, je vais donc continuer et m’inscrire en tant que nouvel utilisateur avec mon adresse e-mail et mon mot de passe. Une fois que je le fais, je suis dedans !
Donc la première chose que je veux faire est de changer le nom de domaine. Dans mes enregistrements DNS, je peux ajouter un nouvel enregistrement A pointant coolify.austingil.com
à 66.175.223.11
. Ensuite, je peux cliquer sur l’icône de rouage en bas à gauche de l’écran Coolify pour accéder à la page des paramètres. Une fois que je change d’URL pour https://coolify.austingil.com
et appuyez sur Enregistrer, Coolify se chargera d’obtenir un certificat SSL pour moi.
Et une fois cela fait, je devrais pouvoir aller sur coolify.austingil.com et voir le même écran de connexion, mais avec un nom de domaine beaucoup plus facile à retenir et avec une connexion HTTPS.
Je ne veux vraiment pas sous-estimer à quel point c’est génial. C’est génial. Vraiment!
Ok, reconnectez-vous.
Connecter GitHub
La prochaine chose à faire est de se connecter à mon référentiel GitHub pour automatiser les déploiements. Pour ce faire, je dois ajouter une nouvelle « source Git » dans le menu « Créer une nouvelle ressource ».
Dans ce cas, je dirai à Coolify que cela vient de GitHub et que toutes les valeurs par défaut me conviennent.
Je pense que je peux laisser ça tout de même.
Une fois que j’ai enregistré, il me redirige vers GitHub et me guide dans la création d’une nouvelle application GitHub. Cette application enverra le signal chaque fois que mon référentiel GitHub recevra un nouveau commit. Ce signal déclenchera éventuellement un nouveau déploiement.
Avec l’application GitHub créée, je ne suis à nouveau redirigé vers mon instance Coolify que pendant un instant, mais je suis ensuite invité à installer l’application que je viens de créer et sélectionnez les référentiels auxquels elle a accès.
Déployer l’application
Ok, avec tout connecté et configuré, si je retourne à mon tableau de bord Coolify, ma source Git est créée et je devrais pouvoir créer une nouvelle ressource pour une application.
J’ai maintenant la possibilité de choisir GitHub.com comme source, qui chargera mes référentiels, et je peux trouver celui que je recherche en recherchant « bataille », puis en sélectionnant la branche principale.
Ensuite, je vois un tas d’options pour les temps d’exécution. Aujourd’hui, ce n’est qu’un site Web statique, mais c’est tellement agréable d’avoir des options facilement disponibles.
Avec l’option statique sélectionnée, il va me demander la configuration de ce nouveau projet. Il y aura toujours un nom au hasard, mais j’appellerai le mien « battle bannerz » parce que pourquoi pas ?
Je vais lui donner un domaine personnalisé, https://bb.austingil.com
. Mais pour que cela fonctionne, je dois créer un autre enregistrement A dans mon DNS pointant bb vers 66.175.223.11. Encore une fois, Coolify s’occupera du certificat SSL tant que le DNS est configuré en premier.

Mon référentiel ne contient que des fichiers source, je dois donc également configurer Coolify pour qu’il s’exécute npm install
pour télécharger toutes les dépendances de développement, puis npm run build
pour constituer les actifs de production. Mon projet place tous les actifs de production de la commande build dans le /dist
dossier, donc je dois aussi dire à Coolify de le traiter comme la racine du projet.
Donc, avec cette configuration, j’appuie sur Enregistrer, puis il me demande si je veux déployer, et oui je le fais, et après un court laps de temps, nous obtenons le moment de vérité.
Je vois le bouton « ouvrir » plus violet. Cliquez dessus et…
Omg, c’est tellement cool !!! Je ne peux pas croire que ça a marché. C’est tellement génial !!!
D’accord, la dernière chose à tester est de savoir si de nouveaux commits déclencheront des redéploiements. Un moyen rapide de le faire est via l’interface utilisateur GitHub. je viens d’apporter une petite modification à App.vue
.
Et de retour dans Coolify, il semble qu’il ait suivi ce « webhook_commit » et ait commencé à reconstruire les projets.
Effectivement, quarante secondes plus tard, j’ai vu le message de réussite et j’ai trouvé la version mise à jour du site Web déployée.
Fermeture
Très bien, c’est assez d’une introduction pour aujourd’hui. Nous voyons que cela fonctionne comme annoncé, mais il y a encore plus de fonctionnalités que je n’ai pas abordées :
- Déployer des aperçus pour les branches de développement
- Déploiement sur des instances Docker ou Kubernetes distantes
- Utilisation pour les bases de données
- Piles Docker et Docker Compose totalement personnalisées
Il y a aussi quelque chose à dire sur le fait qu’il s’agit d’une solution open source et auto-hébergée. Cela signifie que vous contrôlez entièrement ce qui se passe dans votre système, que vous ne dépendez de personne d’autre et que toutes vos données restent sous votre contrôle.
Donc, si vous êtes le genre de personne qui souhaite suivre la voie de l’auto-hébergement, mais qui souhaite également bénéficier des avantages des déploiements automatisés de Git, consultez certainement Coolify. Je ne sais pas si ce sera la plupart des lecteurs, mais pour moi, c’est une telle bénédiction.
Merci beaucoup d’avoir lu. Si vous avez aimé cet article, merci de le partager. C’est l’un des meilleurs moyens de me soutenir. Tu peux Suis moi sur Twitter si vous voulez savoir quand de nouveaux articles sont publiés.