Skip to main content

Logo Verdaccio

About​

Verdaccio is a lightweight open source private npm proxy registry.

Custom configuration​

Add custom verdaccio configuration using the File Manager:

  • Add any custom configuration in /app/data/config.yaml.
  • Restart the app

See config.yaml for reference.

Welcome card​

While the registry has no packages, the home page shows a welcome card with instructions to set the registry and run npm adduser. Anyone can see this card, including visitors who are not logged in. The package disables registration with max_users: -1, so Verdaccio rejects npm adduser with a "registration is disabled" error after the CLI prompts for credentials.

To replace the card with your own text, set web.help in /app/data/config.yaml. The value is markdown, and Verdaccio replaces {{registryUrl}} with the registry address:

/app/data/config.yaml
web:
help: Internal registry. Package list appears when packages exist.

Restart the app to apply the change. The same text also replaces the setup guide in the header Settings dialog. The showInfo and showSettings options only hide the header buttons and do not change the welcome card.

Access control​

See the Verdaccio docs on how to allow or restrict access to packages.

CLI authentication​

The package use OIDC authentication and providing the raw username and password to the npm/yarn/pnpm CLI tools will not work.

Two methods are available to set up CLI authentication:

  • npx verdaccio-openid@latest --registry http://your-registry.com

You can then use the above credentials in npm adduser --registry https://your-registry.com/

  • Login to the Web UI . Settings -> Configuration

Cli Login

Publishing packages​

To publish a package:

Bash
npx verdaccio-openid@latest --registry http://your-registry.com
npm publish --registry https://your-registry.com
EPUBLISHCONFLICT

Verdaccio is a proxying package manager. Packages are checked against npmjs registry before being published. For this reason, publishing packages that already exist on npmjs will result in a EPUBLISHCONFLICT error. See GitHub issue 1203 for a workaround.

Installing packages​

To set the custom registry globally:

Bash
npx verdaccio-openid@latest --registry http://your-registry.com
npm set registry https://your-registry.com

To set it on just the project:

Bash
npx verdaccio-openid@latest --registry http://your-registry.com
npm install my-package --registry https://your-registry.com