Dans les centres hospitaliers, les développements informatiques - scripts, configurations, outils internes - n'étaient pas historisés. Quand un développeur ou un technicien quittait l'établissement, il emportait avec lui la connaissance de ce qu'il avait produit. Nous avons déployé GitLab pour mettre fin à cette perte de savoir et garantir que tout développement reste la propriété de l'établissement, versionné et retrouvable.
Qu'est-ce que GitLab ?
GitLab est une forge logicielle open source complète : gestion de code source Git, intégration et déploiement continus (CI/CD), suivi des tickets et registre d'artefacts, le tout auto-hébergeable.
Le problème : des développements qui disparaissent avec leurs auteurs
Avant la mise en place de GitLab, les développements réalisés au sein du centre hospitalier - scripts d'automatisation, outils internes, configurations, playbooks Ansible - vivaient le plus souvent sur le poste personnel du développeur ou dans un répertoire partagé sans organisation. Il n'existait pas de référentiel commun, pas d'historique des modifications, pas de gestion des versions.
La conséquence était systématique : lorsqu'un agent quittait l'établissement, ses développements disparaissaient avec lui. Le code était perdu, introuvable, ou retrouvé dans un état incompréhensible faute de documentation et d'historique. L'établissement recommençait de zéro.
Un développement non versionné appartient à son auteur, pas à l'établissement. Quand l'auteur part, le développement part avec lui.
GitLab : l'historique complet de chaque développement
GitLab centralise l'ensemble des développements dans un référentiel Git hébergé en interne. Chaque modification est enregistrée avec son auteur, sa date et sa description. L'historique complet d'un projet est conservé indéfiniment : on peut retrouver n'importe quelle version antérieure, comprendre pourquoi une modification a été faite et par qui.
Concrètement, tout ce qui est développé au centre hospitalier est désormais versionné dans GitLab :
- les playbooks Ansible et les rôles développés pour les déploiements ;
- les scripts d'administration et d'automatisation ;
- les configurations des applications déployées ;
- les outils internes développés sur mesure pour l'établissement.
La gestion des versions
Le versioning apporté par GitLab change fondamentalement la façon de gérer les développements :
- Chaque modification est tracée : qui a changé quoi, quand et pourquoi.
- Retour arrière possible : si une modification introduit un problème, il est possible de revenir à la version précédente en quelques secondes.
- Branches et tests : une évolution peut être développée et testée dans une branche séparée, sans impacter la version en production.
- Continuité garantie : quand un agent quitte l'établissement, ses développements restent dans GitLab, documentés, accessibles et réutilisables par ses successeurs.
Déploiement conteneurisé, authentification centralisée et mises à jour maîtrisées
Cette application est déployée en conteneur Docker, orchestré et provisionné via Ansible. Cette approche garantit un déploiement reproductible, documenté et homogène d'un environnement à l'autre : la configuration est décrite sous forme de code, ce qui élimine les installations manuelles et fiabilise chaque mise en service.
Nous assurons les mises à jour de manière transparente pour les utilisateurs : les montées de version sont préparées, testées et appliquées de façon contrôlée, sans interruption perceptible du service. L'établissement bénéficie ainsi d'une application toujours à jour et sécurisée, sans avoir à gérer lui-même la complexité technique des mises à jour.
L'accès à cette application repose sur une authentification centralisée par OIDC avec Keycloak. Comme l'ensemble des applications que nous déployons, elle s'appuie sur un fournisseur d'identité unique : les utilisateurs se connectent avec les mêmes identifiants sur tout le parc applicatif, la gestion des accès est mutualisée et les règles de sécurité (mot de passe, second facteur, révocation) sont appliquées de façon homogène. Ce socle d'authentification unifié simplifie l'expérience utilisateur et renforce la maîtrise des accès à l'échelle du système d'information.
Notre déploiement
GitLab est déployé en conteneur Docker, exposé via NGINX avec certificat Let's Encrypt, et authentifié via Keycloak. Les dépôts sont organisés par projet et par équipe, avec des droits d'accès adaptés à chaque périmètre. GitLab est également connecté à Ansible Semaphore : les playbooks Ansible stockés dans GitLab sont synchronisés automatiquement et exécutables depuis l'interface de Semaphore.
Intégration au système d'information
GitLab est le référentiel central de tous les développements et configurations. Il est connecté à Ansible Semaphore pour le déclenchement des déploiements, authentifié via Keycloak, supervisé par Uptime Kuma et exposé via NGINX. C'est la source de vérité pour l'ensemble du code produit par et pour l'établissement.
Bénéfices concrets
- Zéro développement perdu : tout ce qui est produit reste dans GitLab, indépendamment des départs ou arrivées de personnel.
- Historique complet : chaque modification est tracée avec son auteur, sa date et sa raison.
- Retour arrière immédiat en cas de problème introduit par une modification.
- Continuité de service : un successeur retrouve le code documenté et peut reprendre là où son prédécesseur s'est arrêté.
- Propriété intellectuelle de l'établissement : les développements appartiennent à l'établissement, pas à leurs auteurs.
- Solution open source souveraine, hébergée en interne, sans dépendance à un service cloud externe.
GitLab s'inscrit dans notre approche d'un système d'information hospitalier open source, souverain et maîtrisé, où chaque brique est déployée et documentée pour rester exploitable en autonomie par les équipes.
Un projet de déploiement open source ?
Nous déployons et intégrons des solutions open source souveraines pour les établissements de santé.
Demander un diagnostic de 30 min →