Nous avons déployé Nexus Sonatype pour disposer d'un repository interne centralisé, hébergé sur l'infrastructure de l'établissement. Il regroupe en un seul endroit tout ce qui est nécessaire aux déploiements : exécutables, images Docker et packages Chocolatey - sans dépendance aux repositories publics externes.

Qu'est-ce que Nexus Repository (Sonatype) ?

Nexus Repository, édité par Sonatype, est un gestionnaire de dépôts d'artefacts logiciels. Il centralise et sécurise les composants et dépendances (paquets, images, bibliothèques) utilisés par les chaînes de build.

Un repository interne pour tous les artefacts

Sans Nexus, les déploiements dépendent de sources externes : le repository public Chocolatey, Docker Hub, les sites éditeurs pour les exécutables. Cette dépendance pose plusieurs problèmes dans un contexte hospitalier : disponibilité conditionnée à l'accès internet, absence de contrôle sur les versions téléchargées, et risque d'installation de composants non validés par l'établissement.

Nexus centralise tous ces artefacts en interne, dans un repository unique accessible depuis le réseau de l'établissement :

Nexus est le point d'approvisionnement unique de tous les déploiements. Que ce soit un poste Windows via Chocolatey, un serveur Linux via Ansible et Docker, ou une installation manuelle - tout passe par Nexus, tout est maîtrisé.

Maîtrise et sécurisation des sources

Au-delà de la centralisation, Nexus apporte une maîtrise des sources qui est essentielle dans un environnement hospitalier :

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

Nexus est déployé en conteneur Docker, exposé via NGINX avec certificat Let's Encrypt, et authentifié via Keycloak. Trois types de repositories sont configurés : un repository Chocolatey (NuGet) pour les packages Windows, un registry Docker pour les images de conteneurs, et un repository raw pour les exécutables et fichiers binaires. Jenkins alimente Nexus automatiquement lors de la construction des packages Chocolatey.

Intégration au système d'information

Nexus est au centre de la chaîne de déploiement : Jenkins y publie les packages Chocolatey construits automatiquement, Ansible y récupère les images Docker lors des déploiements serveurs, et les postes Windows y pointent pour leurs installations Chocolatey. C'est le maillon qui relie la chaîne CI/CD (GitLab - Jenkins) aux déploiements réels (Ansible, SCCM).

Bénéfices concrets

Nexus Repository (Sonatype) 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 →