Verdaccio

Verdaccio

  • Docs
  • Blog
  • Twitter
  • Help
  • GitHub
  • Contributors
  • Sponsor Us
  • Languages iconEnglish
    • Español
    • Français
    • 中文
    • Russian
    • Yoruba
    • Help Translate

›Uses Cases

Introduction

  • What is Verdaccio?
  • Installation
  • Command Line Tool
  • Using a private registry
  • Who is using Verdaccio?
  • Best Practices
  • Protecting packages
  • Security Policy
  • Logotype
  • Uses Cases

    • End to End testing
    • Caching strategies
    • GitHub Actions
    • Linking a Remote Registry

    Talks & Articles

    • Articles
    • Talks

Features

  • Configuration File
  • Uplinks
  • Package Access
  • Authentication
  • Notifications
  • Logger
  • Web User Interface

Server

  • Server Configuration
  • Reverse Proxy Setup
  • Set up the SSL Certificates
  • Installing As a Windows Service
  • Installing on IIS server

Development

  • Plugins
  • Developing Plugins
  • Dev Guides

    • Plugin Generator
    • Authentication Plugin
    • Middleware Plugin
    • Storage Plugin
  • Node API

DevOps

  • Docker
  • Kubernetes
  • Continuous Integration
  • Cloud

    • Amazon Web Services

    Tools

    • Ansible
    • Puppet
    • Chef Cookbook

Guides

  • Amazon Web Services

Linking a Remote Registry

Verdaccio is a proxy and by default links the public registry.

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

You can link multiple registries, the following document will drive you through some helpful configurations.

Using Associating Scope

The unique way to access multiple registries using the .npmrc is the scope feature as follows:

// .npmrc
registry=https://registry.npmjs.org
@mycompany:registry=http://localhost:4873

This approach is valid, but comes with several disadvantages:

  • It only works with scopes
  • Scope must match, no Regular Expressions are allowed
  • One scope cannot fetch from multiple registries
  • Tokens/passwords must be defined within .npmrc and checked in into the repo.

See a full example here.

Linking a Registry

Linking a registry is fairly simple. First, define a new section in the uplinks section. Note, the order here is irrelevant.

  uplinks:
    private:
      url: https://private.registry.net/npm

    ... [truncated] ...

  'webpack':
    access: $all
    publish: $authenticated
    proxy: private

Add a proxy section to define the selected registry you want to proxy.

Linking Multiple Registries

  uplinks:
    server1:
      url: https://server1.registry.net/npm
    server2:
      url: https://server2.registry.net/npm

    ... [truncated] ...

  'webpack':
    access: $all
    publish: $authenticated
    proxy: server1 server2

Verdaccio supports multiple registries on the proxy field. The request will be resolved with the first in the list; if that fails, it will try with the next in the list and so on.

Offline Registry

Having a full Offline Registry is completely possible. If you don't want any connectivity with external remotes you can do the following.


auth:
  htpasswd:
    file: ./htpasswd
uplinks:
packages:
  '@my-company/*':
    access: $all
    publish: none
  '@*/*':
    access: $all
    publish: $authenticated
  '**':
    access: $all
    publish: $authenticated

Remove all proxy fields within each section of packages. The registry will become full offline.

← GitHub ActionsArticles →
  • Using Associating Scope
  • Linking a Registry
  • Linking Multiple Registries
  • Offline Registry
Verdaccio
Docs
Getting StartedDockerConfigurationLogos
Community
User ShowcaseStack OverflowProject ChatFollow Verdaccio on Twitter
More
BlogGitHubStar