Verdaccio keeps backward compatibility with all versions since the first release
(v2.0.0), but there are some considerations you need to know before start a migration.
email@example.com to Verdaccio 2.x/3.x
If you are using still using Sinopia, we encourage you to migrate as soon as possible due to Sinopia has been abandoned.
Using as example UNIX environments, the local storage is located within
We support only
firstname.lastname@example.org as minimum version, these are the steps:
- The folder
~/.local/share/sinopiamust be renamed to
- The folder
~/.config/sinopiamust be renamed to
There is an aditional step, not required, but recommended:
- The file
~/.config/sinopia/storage/.sinopia-db.jsonmust be renamed to
To find the Windows location, check the following link.
This might depends of your own configuration, but, if you are using external volumes we recommend following the step 3 in the previous section.
Those versions are fully compatible, so there is not a specific step for migrating between both of them. But we recommend the following considerations:
- Try to update first to the latest
v2.xas possible. There were a lot of fixes and you might hit a corner case migrating from a very old version.
- We recommend using the latest
Here you can read more about summary o of changes by Diego Louzán.
There are no differences between both major releases if you install with
npm. The migration should be clean and painless.
If you decided to use the
JWTtoken signature instead of the
legacyone, all the client side tokens will be invalidated.
Installation with Docker
The Docker image for version
3 allows the following environment variables:
|APPDIR||the docker working directory|
|PORT||the verdaccio port|
|PROTOCOL||the default http protocol|
Version 4 brings more control over the environment variables and provides a namespace to avoid collisions and new additions.
|VERDACCIO_APPDIR||the docker working directory|
|VERDACCIO_USER_NAME||the system user|
|VERDACCIO_USER_UID||the user id being used to apply folder permissions|
|VERDACCIO_PORT||the verdaccio port|
|VERDACCIO_PROTOCOL||the default http protocol|
Docker and Plugins
If you are using the Docker image as base with the purpose of installing plugins, there are some differences you need to keep on mind.
In Verdaccio 3 was really easy to install plugins, for instance:
FROM verdaccio/verdaccio:3 RUN npm i && npm install verdaccio-ldap
Rather in Verdaccio 4, the image has changed considerably and now you need to deal with the right folder permissions.
You can find more info about this in this ticket.
To install plugins, you need to use the right users for it, which is
⚠️ This approach works, but perhaps is no the best one, feel free to suggest modifications.
FROM verdaccio/verdaccio:4 ## switch to root user USER root ENV NODE_ENV=production ## perhaps all of this is not fully required RUN apk --no-cache add openssl ca-certificates wget && \ apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python && \ wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \ apk add glibc-2.25-r0.apk RUN npm i && npm install verdaccio-[YOUR-PLUGIN-HERE] # switch back to the verdaccio user USER verdaccio
Once you have installed the plugin, it needs to restore the user, either the default one
verdaccio or the one defined under the environment variable