[{"data":1,"prerenderedAt":144},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-verdaccio-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-verdaccio-vps-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":85,"ctaBody":86,"ctaButton":87,"ctaUrl":88,"relatedPosts":89},376,"self-host-verdaccio-vps",{"fr":10,"en":12,"ar":13,"es":14},"verdaccio-private-npm-registry-vps","استضافة-verdaccio-على-vps-مسجل-npm-خاص","alojar-verdaccio-en-un-vps-registro-npm-privado","Verdaccio sur VPS : registre npm\u002Fyarn\u002Fpnpm privé self-hosted","Déployez Verdaccio sur votre VPS ServOrbit : registre npm\u002Fyarn privé self-hosted pour proxifier npmjs.org et héberger vos packages JavaScript internes en toute sécurité.",7,0,false,"2026-09-25T00:00:00+00:00","2026-09-25T23:43:02+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-verdaccio-vps-poster.svg",{"categorySlug":33,"appSlug":34},"developpement","verdaccio","Verdaccio est un registre npm privé open source (MIT) écrit en Node.js. Il joue simultanément le rôle de proxy vers npmjs.org et de serveur d'hébergement pour vos packages JavaScript internes. Sur un VPS ServOrbit, un seul conteneur Docker suffit — moins de 128 Mo de RAM, pas de base de données externe, aucun domaine requis pour démarrer. C'est le choix idéal pour les équipes qui publient des bibliothèques internes, maintiennent des pipelines CI stables ou travaillent dans des environnements sans accès internet.",[37,41,51,54,73,76,79,82],{"type":38,"title":39,"body":40},"h2","Pourquoi héberger un registre npm privé sur votre VPS","Trois situations rendent un registre npm privé indispensable. La première est la gestion de bibliothèques JavaScript internes : si vous développez un design system, des utilitaires métier ou des clients d'API propres à votre organisation, publier ces packages sur npmjs.org les expose à tout internet. Un registre privé les garde derrière votre infrastructure, versionnés et accessibles uniquement à vos développeurs et à vos pipelines.\n\nLa deuxième est la résilience des pipelines CI. npmjs.org tombe en panne plusieurs fois par an, et chaque panne peut bloquer vos déploiements pendant des heures. Verdaccio met en cache chaque package public téléchargé : le deuxième `npm install` — en CI comme en local — ne sort plus jamais du réseau. Vos builds s'accélèrent et deviennent indépendants de la disponibilité du registre public.\n\nLa troisième est le travail hors ligne ou en réseau fermé (air gap). Une fois le cache préchauffé, Verdaccio sert tous les packages vus précédemment sans connexion internet — utile pour les environnements de conformité stricts, les pipelines sur site ou les démos sans Wi-Fi.\n\nVerdaccio répond aux trois en un seul conteneur Docker léger (moins de 128 Mo de RAM), sans base de données externe et sans configuration complexe. Il implémente le protocole npm complet, donc npm, Yarn et pnpm s'y connectent avec un seul paramètre de configuration, sans modifier aucune dépendance.",{"type":42,"title":43,"items":44},"ul","Ce que vous gagnez avec Verdaccio self-hosted",[45,46,47,48,49,50],"Packages privés sous votre namespace — publiez vos bibliothèques internes sans les exposer au registre public.","Cache local de npmjs.org — vos builds CI ne tombent plus si le registre public est indisponible.","Zéro dépendance externe — un seul conteneur Docker, un volume, pas de base de données.","Moins de 128 Mo de RAM — tourne sur le VPS le plus modeste sans impact sur les autres services.","Compatible npm, Yarn et pnpm — aucune modification des clients, juste un changement d'URL de registre.","Mode hors ligne — préchauffez le cache une fois et coupez internet : vos builds restent reproductibles.",{"type":38,"title":52,"body":53},"Prérequis","Verdaccio est l'un des services les plus légers que vous puissiez déployer sur un VPS. La liste des prérequis est intentionnellement courte : un VPS avec 1 vCPU, 512 Mo de RAM (Verdaccio consomme moins de 128 Mo en fonctionnement normal) et Docker installé. Aucun domaine n'est obligatoire pour commencer — vous accédez au registre via un tunnel SSH depuis votre poste ou depuis un runner CI.\n\nSi vous souhaitez un accès permanent pour toute votre équipe ou pour vos pipelines CI hébergés ailleurs, rattachez un domaine depuis votre espace client ServOrbit : nginx le proxifiera automatiquement en HTTPS. Verdaccio fonctionne tout aussi bien derrière ce reverse proxy, et le certificat TLS est géré par ServOrbit sans action de votre part.\n\nPour le stockage des packages, prévoyez l'espace disque proportionnel à votre usage : les packages publics mis en cache depuis npmjs.org et vos packages privés s'accumulent dans un volume Docker persistant. Pour un usage équipe de 5 à 10 développeurs, quelques gigaoctets suffisent pour la plupart des projets JavaScript.",{"type":55,"title":56,"steps":57},"steps","Déployer Verdaccio sur votre VPS ServOrbit",[58,61,64,67,70],{"title":59,"body":60},"Commander depuis la Marketplace ServOrbit","Depuis l'espace client ServOrbit, installez Verdaccio en un clic depuis la Marketplace : sélectionnez la catégorie Développement, choisissez Verdaccio et confirmez votre commande. Le conteneur Docker démarre automatiquement sur votre VPS avec un healthcheck intégré (`wget -qO- http:\u002F\u002F127.0.0.1:4873\u002F-\u002Fping`). Vous recevrez une notification dès que le service est opérationnel, avec le port d'exposition assigné.",{"title":62,"body":63},"Accéder au registre via un tunnel SSH","Sans domaine configuré, ouvrez un tunnel SSH depuis votre machine locale : `ssh -L 4873:127.0.0.1:\u003Cport> root@\u003Cip-vps>`. Ensuite, pointez npm vers le tunnel : `npm set registry http:\u002F\u002Flocalhost:4873`. Pour Yarn 2+ (Berry), ajoutez `npmRegistryServer: \"http:\u002F\u002Flocalhost:4873\"` dans votre fichier `.yarnrc.yml`. Pour pnpm : `pnpm config set registry http:\u002F\u002Flocalhost:4873`. Ces paramètres peuvent être posés globalement (`~\u002F.npmrc`) ou par projet (`.npmrc` à la racine du dépôt).",{"title":65,"body":66},"Créer votre premier compte","Exécutez `npm adduser --registry http:\u002F\u002Flocalhost:4873`. Saisissez un nom d'utilisateur, un mot de passe et une adresse e-mail. Ce premier utilisateur devient l'administrateur du registre avec tous les droits de lecture et de publication. Vous pouvez créer des comptes supplémentaires par la même commande — chaque développeur dispose ainsi de ses propres identifiants et de son propre token d'accès.",{"title":68,"body":69},"Publier votre premier package privé","Dans le répertoire de votre package, exécutez `npm publish --registry http:\u002F\u002Flocalhost:4873`. Assurez-vous que `package.json` contient un champ `name` incluant votre scope privé (ex. `@votre-org\u002Fmon-package`) pour le distinguer des packages publics. Vérifiez la publication sur l'interface web de Verdaccio (`http:\u002F\u002Flocalhost:4873`) : votre package apparaît dans la liste avec son numéro de version. Il est maintenant disponible pour tout développeur ou pipeline CI authentifié sur votre registre.",{"title":71,"body":72},"Attacher un domaine pour un accès permanent","Depuis votre espace client ServOrbit, rattachez un domaine ou un sous-domaine à votre VPS. nginx proxifiera automatiquement Verdaccio en HTTPS. Mettez à jour votre fichier `.npmrc` global (`registry=https:\u002F\u002Fverdaccio.votre-domaine.com`) ou la variable d'environnement CI `NPM_CONFIG_REGISTRY`. Vos runners GitHub Actions, GitLab CI ou autres peuvent désormais accéder au registre sans tunnel SSH.",{"type":74,"body":75},"tip","Pour un accès équipe permanent, rattachez un domaine depuis votre espace client ServOrbit. nginx proxifie automatiquement Verdaccio en HTTPS — configurez votre fichier `.npmrc` global (`registry=https:\u002F\u002Fverdaccio.votre-domaine.com`) ou définissez `NPM_CONFIG_REGISTRY` dans vos variables CI.",{"type":38,"title":77,"body":78},"Configurer les scopes et les règles de proxy","Par défaut, Verdaccio applique une règle unique : tout package est d'abord recherché localement, puis proxifié vers npmjs.org si absent. Cette règle convient pour démarrer, mais la plupart des équipes veulent affiner le comportement par scope.\n\nLa configuration vit dans `config.yaml`, accessible depuis le volume Docker (`verdaccio-storage`). La section `packages:` définit les règles par motif de nom. Pour un scope privé (`@acme\u002F*`), vous pouvez désactiver le proxy vers npmjs.org (`proxy: ''`) et autoriser uniquement les utilisateurs authentifiés à lire et publier. Pour tous les autres packages (`**`), vous laissez le proxy vers `npmjs` actif.\n\nExemple minimal de configuration de scopes :\n```yaml\npackages:\n  '@acme\u002F*':\n    access: $authenticated\n    publish: $authenticated\n  '**':\n    access: $all\n    proxy: npmjs\n```\n\nAprès modification, relancez le conteneur : `docker compose restart verdaccio`. La configuration est prise en compte sans rechargement de la base de packages. Cette approche garantit que vos packages privés ne partent jamais vers npmjs.org, même en cas d'erreur de configuration.",{"type":38,"title":80,"body":81},"Intégration dans les pipelines CI\u002FCD","Utiliser Verdaccio dans vos pipelines CI\u002FCD présente deux avantages majeurs : la stabilité des builds (indépendance vis-à-vis de npmjs.org) et l'accès aux packages privés depuis les runners.\n\nPour **GitHub Actions**, définissez la variable d'environnement dans votre workflow :\n```yaml\njobs:\n  build:\n    runs-on: ubuntu-latest\n    env:\n      NPM_CONFIG_REGISTRY: https:\u002F\u002Fverdaccio.votre-domaine.com\n      NPM_CONFIG_\u002F\u002Fverdaccio.votre-domaine.com\u002F:_authToken: ${{ secrets.VERDACCIO_TOKEN }}\n```\n\nPour **GitLab CI**, la syntaxe est équivalente dans la section `variables:` de votre `.gitlab-ci.yml`. Le token d'accès s'obtient avec `npm token create --registry https:\u002F\u002Fverdaccio.votre-domaine.com` depuis n'importe quel compte utilisateur Verdaccio.\n\nPour le **cache de packages publics** uniquement (sans packages privés), vous pouvez configurer Verdaccio comme miroir de npmjs.org dans une image Docker de runner dédiée. Les packages sont téléchargés une seule fois par le premier build, puis servis depuis le cache pour tous les builds suivants — les installations `node_modules` passent de 30–60 secondes à 2–5 secondes.",{"type":38,"title":83,"body":84},"Sécurité et contrôle d'accès","Par défaut, Verdaccio utilise son propre système d'authentification basé sur un fichier `htpasswd`. Les comptes créés avec `npm adduser` y sont stockés avec un hachage bcrypt. Ce mécanisme est suffisant pour une petite équipe, mais Verdaccio supporte aussi des plugins d'authentification tiers : LDAP, GitLab, GitHub OAuth, Keycloak et d'autres.\n\nPour les **tokens d'accès CI**, utilisez `npm token create --registry https:\u002F\u002Fverdaccio.votre-domaine.com` plutôt que de stocker un mot de passe en clair. Les tokens peuvent être révoqués individuellement sans affecter les autres utilisateurs.\n\nSur ServOrbit, Verdaccio est lié à `127.0.0.1` et exposé uniquement via le reverse proxy nginx. Le port 4873 n'est jamais accessible directement depuis internet — nginx ajoute TLS, et seul le domaine proxifié répond sur 443. Pour une sécurité maximale, activez l'authentification obligatoire pour les lectures (`access: $authenticated` dans `config.yaml`) si votre registre contient des packages sensibles. Par défaut, Verdaccio autorise la lecture anonyme — convenable pour un cache de packages publics, mais à restreindre pour les packages propriétaires.","Déployez Verdaccio sur un VPS ServOrbit","Un VPS ServOrbit avec Docker préconfiguré, IPv4 dédiée et nginx inclus — déployez votre registre npm privé en quelques minutes, sans configuration serveur.","Déployer mon VPS","\u002Fmarketplace\u002Fdeveloppement\u002Fverdaccio",[90,109,126],{"id":91,"slug":92,"slugs":93,"title":97,"excerpt":98,"readTime":99,"views":18,"isPinned":19,"publishedAt":100,"updatedAt":101,"category":102,"categories":106,"featuredImage":29,"bgImage":30,"posterImage":108,"relatedSolution":29},202,"securiser-chaine-approvisionnement-npm-ci",{"fr":92,"en":94,"ar":95,"es":96},"securing-your-npm-ci-supply-chain-after-asyncapi","تأمين-سلسلة-توريد-npm-في-ci-بعد-حادثة-asyncapi","proteger-la-cadena-de-suministro-npm-tras-asyncapi","Sécuriser votre chaîne CI npm après AsyncAPI","Lockfile, vérification de hashes, SLSA et SCA automatisé : comment durcir votre pipeline CI après l'incident AsyncAPI de juillet 2026.",4,"2026-08-01T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":99,"name":103,"slug":33,"color":104,"icon":105},"Développement","bg-warning\u002F10 text-warning","dev",[107],{"id":99,"name":103,"slug":33,"color":104,"icon":105},"\u002Fblog\u002Fcovers\u002Fsecuriser-chaine-approvisionnement-npm-ci-poster.svg",{"id":110,"slug":111,"slugs":112,"title":116,"excerpt":117,"readTime":118,"views":18,"isPinned":19,"publishedAt":119,"updatedAt":101,"category":120,"categories":121,"featuredImage":29,"bgImage":30,"posterImage":123,"relatedSolution":124},74,"heberger-gitea",{"fr":111,"en":113,"ar":114,"es":115},"host-gitea-on-your-own-vps","استضافة-gitea-على-خادم-vps-الخاص-بك","alojar-gitea-en-un-vps","Héberger Gitea sur votre propre VPS en 2026","Déployez Gitea sur un VPS avec Docker et SSL. Guide complet : installation, migration vers Forgejo v16 et comparatif gouvernance.",8,"2026-04-07T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[122],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-gitea-poster.svg",{"categorySlug":33,"appSlug":125},"gitea",{"id":127,"slug":128,"slugs":129,"title":133,"excerpt":134,"readTime":135,"views":136,"isPinned":19,"publishedAt":137,"updatedAt":101,"category":138,"categories":139,"featuredImage":29,"bgImage":30,"posterImage":141,"relatedSolution":142},311,"heberger-onedev-vps",{"fr":128,"en":130,"ar":131,"es":132},"self-host-onedev-git-cicd-and-kanban-in-one-container","onedev-على-vps-git-وcicd-وkanban-في-حاوية-واحدة","onedev-en-vps-git-cicd-y-kanban-autoalojados","OneDev sur VPS : Git, CI\u002FCD et Kanban self-hostés","Hébergez OneDev sur votre VPS : forge Git privée, pipelines CI\u002FCD visuels et Kanban intégrés. Un seul conteneur, sans abonnement par développeur.",6,2,"2026-08-28T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[140],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-onedev-vps-poster.svg",{"categorySlug":33,"appSlug":143},"onedev",1790385766123]