Déploiement depuis Git
La plateforme clone le dépôt, détecte le Dockerfile, construit l’image et met la version en ligne. Un commit précis peut être épinglé : c’est le retour arrière volontaire, explicite et reproductible.
Infrastructure · Produit interne
DGL Deploy est la plateforme que nous avons construite pour exploiter nos propres applications : elle lit un dépôt Git, fabrique l’image, la valide, puis bascule le trafic dessus — sans interruption, sur notre serveur, sans dépendre d’un fournisseur PaaS.
Un PaaS facture chaque application et impose ses règles. Un VPS nu, à l’inverse, revient à écrire ses propres scripts de mise en ligne : on y gagne le contrôle et on y perd tout le reste — la bascule sans coupure, le retour arrière, la traçabilité, la visibilité sur ce qui tourne réellement.
Nous voulions le confort du premier sur la machine du second. DGL Deploy est cette réponse : une console unique qui connaît nos dépôts, nos domaines, nos bases de données et nos conteneurs, et qui refuse de deviner à notre place quand quelque chose est ambigu.
Six briques qui couvrent le cycle de vie complet d’une application, de sa première inspection à sa supervision quotidienne.
La plateforme clone le dépôt, détecte le Dockerfile, construit l’image et met la version en ligne. Un commit précis peut être épinglé : c’est le retour arrière volontaire, explicite et reproductible.
La nouvelle version démarre à côté de l’ancienne et doit prouver qu’elle répond avant de recevoir la moindre requête. Si elle échoue, le trafic n’a jamais bougé — et personne ne s’en aperçoit.
Une base PostgreSQL est provisionnée à la demande pour un projet, et son URL de connexion est injectée dans le conteneur au démarrage. Le mot de passe est scellé, il ne transite jamais en clair.
Identifiants Git et variables d’environnement applicatives sont chiffrés en AES-256-GCM. Ils sont déchiffrés au dernier moment, injectés par l’environnement du processus — jamais sur une ligne de commande.
Charge, mémoire, disque, conteneurs, disponibilité des sites et runners d’intégration continue : l’état du serveur est relevé, historisé et tracé, sans agent externe à installer.
Chaque application reçoit son domaine et son entrée de routage, générée puis rechargée automatiquement. La plateforme ne touche jamais au serveur web du système — elle rend la procédure, l’opérateur l’applique.
Chaque étape est visible en direct dans la console, journal de build compris.
Le dépôt est cloné, la pointe de branche et les derniers commits sont relevés, les Dockerfiles recensés. Un dépôt qui en contient plusieurs est signalé comme monorepo plutôt que résolu au hasard.
L’image est construite avec la configuration du dépôt — chemin du Dockerfile, cible, arguments de build. La sortie du build est diffusée en direct, ligne à ligne.
Si le projet déclare une commande de migration, elle s’exécute avant que la nouvelle version ne reçoive du trafic. Un schéma jamais en avance sur le code qui le lit.
Le conteneur démarre sur un port dédié et doit répondre à une sonde de santé. Tant qu’il n’a rien prouvé, l’ancienne version continue de servir l’intégralité du trafic.
Le routage pointe vers la nouvelle version, l’ancienne est retirée proprement. En cas d’échec à n’importe quelle étape, le retour arrière est automatique et le service n’a jamais été interrompu.
Une plateforme de déploiement se juge sur ce qu’elle fait quand les choses se passent mal. Voici les partis pris que nous assumons.
Quand un dépôt contient deux Dockerfiles, la plateforme refuse de choisir : elle liste les candidats et demande. Un déploiement qui construit le mauvais service est pire qu’un déploiement qui s’arrête.
Système de fichiers en lecture seule, toutes les capacités noyau retirées, jamais de root, aucun port privilégié. Une application compromise ne trouve rien à écrire et rien à élever.
Chaque action privilégiée est inscrite dans un journal d’audit en ajout seul. On peut relire qui a déployé quoi, quand, et vers quelle version — y compris six mois plus tard.
Redéployer une version précédente se fait en épinglant son commit. C’est explicite, reproductible et visible dans l’historique — à l’opposé d’un état qui dérive sans que personne ne l’ait décidé.
Les répertoires déclarés persistants sont montés dans des volumes nommés et conservés d’une version à l’autre, y compris quand le conteneur est en lecture seule.
Un dépôt sans Dockerfile n’est plus une impasse : la plateforme lit le projet, propose une conteneurisation complète, l’affiche en clair, et peut la commiter sur une branche dédiée après validation.
Un monorepo TypeScript strict, une API, un worker, une file de travaux durable. Aucun orchestrateur à administrer.
Déploiements, inspections et relevés passent par une file persistée : un worker qui redémarre reprend là où il s’était arrêté, sans perdre de travail en vol.
La console suit l’avancement et les journaux par flux d’événements serveur — pas d’interrogation répétée, pas de page à rafraîchir.
Chaque module de la console porte son encadré d’explication en français. La documentation est dans l’outil, au moment où la question se pose.
DGL Deploy fait tourner nos propres applications en production. C’est le même niveau d’exigence que nous appliquons aux plateformes que nous concevons pour nos clients.