Aller au contenu
Développement medium

Nexus Repository : le gestionnaire d'artefacts DevOps

11 min de lecture

Logo Nexus

Nexus Repository est un gestionnaire d'artefacts : un serveur central qui stocke vos paquets privés, met en cache les dépendances publiques et sert le tout à vos postes et à votre CI/CD, quel que soit le format (Maven, npm, PyPI, Docker et bien d'autres). Cette section explique ce qu'il apporte, comment sont structurés ses dépôts, ce que valent ses éditions, et vous emmène de l'installation au registre Docker privé. Chaque guide pratique est validé sur une instance réelle (Community Edition). Public visé : développeurs et administrateurs qui veulent maîtriser leur chaîne de dépendances.

Sans dépôt central, chaque build télécharge ses dépendances directement depuis Internet et publie ses livrables où il peut. Trois problèmes surgissent vite : la lenteur (on retélécharge les mêmes paquets), la fragilité (un paquet retiré ou un dépôt public en panne casse la CI) et le manque de contrôle (personne ne sait ce qui entre dans les builds). Un gestionnaire d'artefacts comme Nexus règle les trois :

  • Cache local des dépendances publiques : les builds sont plus rapides et survivent à une panne du dépôt amont.
  • Stockage privé de vos propres paquets et images, versionnés et partagés entre équipes.
  • Point de contrôle de la chaîne d'approvisionnement : tout ce que consomment et produisent vos projets transite par un seul endroit, auditable.

C'est cette centralisation qui fait de Nexus une brique de sécurisation de la supply chain autant qu'un outil de productivité.

La force de Nexus est de gérer de nombreux formats derrière une interface unique. Un même serveur héberge vos artefacts Java, vos paquets front-end, vos images de conteneurs et vos paquets système.

ÉcosystèmeFormats Nexus
Java / JVMMaven, Gradle (via Maven)
JavaScriptnpm
PythonPyPI, Conda
ConteneursDocker (OCI), Helm
.NETNuGet
Systèmesapt (Debian/Ubuntu), yum (RHEL)
Autresraw (fichiers quelconques), Composer (PHP), Cargo (Rust), Conan (C/C++), R, Go

Le format raw mérite une mention : il stocke n'importe quel fichier (archives, binaires, rapports) sans logique de format. C'est le dépôt fourre-tout pour ce qui n'entre dans aucune autre catégorie.

Tout repose sur trois types de dépôts que l'on combine. Les comprendre, c'est comprendre Nexus.

TypeRôleExemple
proxyMet en cache un dépôt public distantun miroir de Maven Central ou de PyPI
hostedStocke vos artefacts privésvos images internes, vos releases maison
groupAgrège plusieurs dépôts derrière une seule URLprivé + proxy servis ensemble

Le montage recommandé est le group : vos clients pointent sur une URL unique, et Nexus cherche d'abord dans le dépôt privé, puis dans le proxy public. On configure une fois côté client, et l'organisation interne des dépôts reste invisible. À l'installation, Nexus crée déjà ces trois types pour chaque grand format, comme le montre la liste des dépôts :

Liste des dépôts dans Nexus : les types group, hosted et proxy pour Maven, npm, PyPI, NuGet et Docker

On y lit, pour chaque écosystème, un proxy (cache public), un hosted (privé) et un group qui les réunit. C'est ce modèle que déclinent les guides proxy et cache et registre Docker.

Nexus sépare deux choses. Les métadonnées (quel composant, quelle version, quel dépôt) vivent dans sa base de données. Les fichiers eux-mêmes (le .jar, le .whl, les couches d'image) sont écrits dans un blob store, un espace de stockage sur disque ou objet.

Cette séparation a des conséquences pratiques : une sauvegarde complète doit couvrir la base et le blob store, et l'espace disque se pilote au niveau du blob store. Un même blob store peut servir plusieurs dépôts, ou vous pouvez en dédier un par usage pour isoler le stockage.

Le terme « Nexus OSS » reste le plus recherché, mais il ne correspond plus à l'offre. Depuis 2025, l'édition gratuite s'appelle Community Edition : ce n'est plus un pur logiciel libre, son usage est encadré par une licence (EULA) acceptée à l'installation et par des quotas.

Community EditionPro
PrixGratuitPayant
LicenceEULA à accepterCommerciale
Quota composants40 000 au totalillimité
Quota requêtes100 000 par jourillimité
EntreprisenonSSO/SAML, haute disponibilité, réplication, support

Pour héberger uniquement des images de conteneurs sans ces contraintes, un registre OCI réellement libre comme Harbor peut suffire. Pour un gestionnaire multi-formats resté 100% open source (GPL), voyez Pulp. La version courante de Nexus est 3.93 (2026) ; les guides de cette section sont validés sur la 3.77.

Un gestionnaire d'artefacts prend toute sa valeur branché sur la CI/CD : les pipelines tirent leurs dépendances de Nexus et poussent leurs livrables dedans. Le principe est le même quel que soit l'outil.

  • Résolution des dépendances : on configure l'outil de build (Maven, npm, pip) pour pointer sur le group Nexus au lieu du dépôt public. Le cache accélère et fiabilise le build.
  • Publication des livrables : après un build réussi, le pipeline pousse l'artefact (JAR, image, wheel) dans un dépôt hosted, avec un compte de service dédié.
  • Authentification : en CI, on n'utilise jamais le compte admin. On crée un utilisateur de service avec les seuls droits nécessaires (lecture sur les proxys, écriture sur le hosted cible).

Côté Jenkins, un plugin officiel gère la publication ; côté GitLab CI, on renseigne l'URL et les identifiants Nexus dans le .gitlab-ci.yml. Le registre Docker montre concrètement un docker login puis un docker push vers Nexus.

Un dépôt central est une cible et un point de défaillance : il mérite le même soin qu'une base de données de production.

  • Authentification centralisée : Nexus s'intègre à LDAP ou à un annuaire d'entreprise pour ne pas gérer les comptes à la main, et applique un contrôle d'accès par rôle (qui lit, qui publie, sur quel dépôt).
  • Accès anonyme maîtrisé : pratique en lab, il doit être désactivé en production pour qu'aucun dépôt ne soit lisible sans identifiant.
  • Politiques de nettoyage (cleanup policies) : elles suppriment automatiquement les artefacts périmés (vieux snapshots, versions non téléchargées depuis X jours) pour maîtriser le stockage et rester sous les quotas.
  • Sauvegarde : elle doit couvrir la base de données et le blob store de façon cohérente ; sauvegarder l'un sans l'autre donne une restauration inutilisable.
  • Mises à jour : suivez les versions pour les correctifs de sécurité, en testant la montée de version sur une instance de recette.

Nexus n'est pas seul. Le bon choix dépend des formats, du budget et de la contrainte open source.

SolutionPositionnementQuand le choisir
NexusMulti-formats, historiqueBeaucoup de formats, écosystème Java/DevOps établi
Artifactory (JFrog)Multi-formats, entrepriseGros besoins entreprise, budget dédié
HarborRegistre OCI dédié conteneursUniquement des images, 100% open source
PulpMulti-formats, 100% GPLSouveraineté, pas d'EULA ni de quota

Nexus reste un excellent défaut quand vous jonglez avec plusieurs formats et que la Community Edition suffit à votre volume. Dès que le 100% open source ou l'absence de quota devient un critère dur, Pulp ou Harbor prennent l'avantage selon que vous voulez du multi-format ou seulement des conteneurs.

  • Exposez un dépôt group aux clients, pas les dépôts individuels : une seule URL à configurer, l'organisation interne reste souple.
  • Un compte de service par usage en CI, avec le minimum de droits, jamais le compte admin.
  • Des cleanup policies dès le départ pour ne pas découvrir les quotas le jour où ils vous bloquent.
  • Sauvegardez base et blob store ensemble, et testez la restauration, pas seulement la sauvegarde.
  • Épinglez la version de l'image en production et planifiez les montées de version pour les correctifs.
  • Nexus Repository centralise le cache des dépendances publiques et le stockage de vos artefacts privés, sur de nombreux formats.
  • Trois types de dépôts : proxy (cache public), hosted (privé), group (agrégation derrière une URL) ; exposez le group.
  • Les fichiers vivent dans un blob store, les métadonnées dans la base : sauvegardez les deux.
  • La version gratuite est la Community Edition : EULA, 40 000 composants et 100 000 requêtes/jour ; au-delà, l'ajout de composants est suspendu.
  • Version courante : Nexus 3.93 (2026). Alternatives : Artifactory, ou Harbor / Pulp pour du 100% open source.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn