Giter VIP home page Giter VIP logo

verdaccio-google-cloud's Introduction

BannerHelp

Verdaccio stands for peace, stop the war, we will be yellow / blue πŸ‡ΊπŸ‡¦ until that happens.

verdaccio logo

verdaccio gif

Version Next (Development branch)

Looking for Verdaccio 5 version? Check the branch 5.x The plugins for the v5.x that are hosted within this organization are located at the verdaccio/monorepo repository, while for the next version are hosted on this project ./packages/plugins, keep on mind next plugins will eventually would be incompatible with v5.x versions. Note that contributing guidelines might be different based on the branch.

Verdaccio is a simple, zero-config-required local private npm registry. No need for an entire database just to get started! Verdaccio comes out of the box with its own tiny database, and the ability to proxy other registries (eg. npmjs.org), caching the downloaded modules along the way. For those looking to extend their storage capabilities, Verdaccio supports various community-made plugins to hook into services such as Amazon's s3, Google Cloud Storage or create your own plugin.

verdaccio (latest) verdaccio (downloads) docker pulls backers stackshare

discord MIT Crowdin

Github StandWithUkraine

Install

Latest Node.js v16 required

Install with npm:

npm install -g verdaccio@next

With yarn

yarn global add verdaccio@next

With pnpm

pnpm i -g verdaccio@next

or

docker pull verdaccio/verdaccio:nightly-master

or with helm official chart.

helm repo add verdaccio https://charts.verdaccio.org
helm repo update
helm install verdaccio/verdaccio

Furthermore, you can read the Debugging Guidelines and the Docker Examples for more advanced development.

Plugins

You can develop your own plugins with the verdaccio generator. Installing Yeoman is required.

npm install -g yo
npm install -g generator-verdaccio-plugin

Learn more here how to develop plugins. Share your plugins with the community.

Integration Tests

In our compatibility testing project, we're dedicated to ensuring that your favorite commands work seamlessly across different versions of npm, pnpm, and Yarn. From publishing packages to managing dependencies. Our goal is to give you the confidence to use your preferred package manager without any issues. So dive in, check out our matrix, and see how your commands fare across the board!

Learn or contribute here

Commands

cmd npm6 npm7 npm8 npm9 npm10 pnpm8 pnpm9 (beta) yarn1 yarn2 yarn3 yarn4
publish βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ…
info βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ…
audit βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌
install βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ…
deprecate βœ… βœ… βœ… βœ… βœ… βœ… βœ… β›” β›” β›” β›”
ping βœ… βœ… βœ… βœ… βœ… βœ… βœ… β›” β›” β›” β›”
search βœ… βœ… βœ… βœ… βœ… βœ… βœ… β›” β›” β›” β›”
star βœ… βœ… βœ… βœ… βœ… βœ… βœ… β›” β›” β›” β›”
stars βœ… βœ… βœ… βœ… βœ… βœ… βœ… β›” β›” β›” β›”
dist-tag βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ ❌ ❌

Donations

Verdaccio is run by volunteers; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider doing a long support donation - and your logo will be on this section of the readme.

Donate πŸ’΅πŸ‘πŸ» starting from $1/month or just one single contribution.

What does Verdaccio do for me?

Use private packages

If you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.

Cache npmjs.org registry

If you have more than one server you want to install packages on, you might want to use this to decrease latency (presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript, Many packages suddenly disappeared or Registry returns 404 for a package I have installed before.

Link multiple registries

If you use multiples registries in your organization and need to fetch packages from multiple sources in one single project you might take advance of the uplinks feature with Verdaccio, chaining multiple registries and fetching from one single endpoint.

Override public packages

If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name. See in detail here.

E2E Testing

Verdaccio has proved to be a lightweight registry that can be booted in a couple of seconds, fast enough for any CI. Many open source projects use Verdaccio for end to end testing, to mention some examples, create-react-app, mozilla neutrino, pnpm, storybook, babel.js, angular-cli or docusaurus. You can read more in here.

Furthermore, here few examples how to start:

Watch our Videos

Node 2022, February 2022, Online Free

You might want to check out as well our previous talks:

Get Started

Run in your terminal

verdaccio

You would need set some npm configuration, this is optional.

npm set registry http://localhost:4873/

For one-off commands or to avoid setting the registry globally:

NPM_CONFIG_REGISTRY=http://localhost:4873 npm i

Now you can navigate to http://localhost:4873/ where your local packages will be listed and can be searched.

Warning: Verdaccio does not currently support PM2's cluster mode, running it with cluster mode may cause unknown behavior.

Publishing

1. create a user and log in

npm adduser --registry http://localhost:4873

if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)

npm set ca null

2. publish your package

npm publish --registry http://localhost:4873

This will prompt you for user credentials which will be saved on the verdaccio server.

Docker

Below are the most commonly needed information, every aspect of Docker and verdaccio is documented separately

docker pull verdaccio/verdaccio:nightly-master

Available as tags.

Running Verdaccio using Docker

To run the docker container:

docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio

Docker examples are available in this repository.

Compatibility

Verdaccio aims to support all features of a standard npm client that make sense to support in a private repository. Unfortunately, it isn't always possible.

Basic features

  • Installing packages (npm install, npm update, etc.) - supported
  • Publishing packages (npm publish) - supported

Advanced package control

  • Unpublishing packages (npm unpublish) - supported
  • Tagging (npm dist-tag) - supported
  • Deprecation (npm deprecate) - supported

User management

  • Registering new users (npm adduser {newuser}) - supported
  • Change password (npm profile set password) - supported
  • Transferring ownership (npm owner add {user} {pkg}) - not supported, PR-welcome
  • Token (npm token) - supported

Miscellaneous

  • Searching (npm search) - supported (cli / browser)
  • Ping (npm ping) - supported
  • Starring (npm star, npm unstar, npm stars) - supported

Security

  • Audit (npm/yarn audit) - supported

Report a vulnerability

If you want to report a security vulnerability, please follow the steps which we have defined for you in our security policy.

Special Thanks

Thanks to the following companies to help us to achieve our goals providing free open source licenses. Every company provides enough resources to move this project forward.

Company Logo License
JetBrains jetbrain JetBrains provides licenses for products for active maintainers, renewable yearly
Crowdin crowdin Crowdin provides platform for translations
BrowserStack browserstack BrowserStack provides plan to run End to End testing for the UI
Netlify netlify Netlify provides pro plan for website deployment
Algolia algolia Algolia provides search services for the website
Docker docker Docker offers unlimited pulls and unlimited egress to any and all users

Maintainers

Juan Picado Ayush Sharma Sergio Hg
jotadeveloper ayusharma sergiohgz
@jotadeveloper @ayusharma_ @sergiohgz
Priscila Oliveria Daniel Ruf
priscilawebdev DanielRuf
@priscilawebdev @DanielRufde

You can find and chat with them over Discord, click here or follow them at Twitter.

Who is using Verdaccio?

πŸ€“ Don't be shy, add yourself to this readme.

Open Collective Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

sponsor sponsor sponsor sponsor sponsor sponsor sponsor sponsor sponsor sponsor

Open Collective Backers

Thank you to all our backers! πŸ™ [Become a backer]

backers

Contributors

This project exists thanks to all the people who contribute. [Contribute].

contributors

FAQ / Contact / Troubleshoot

If you have any issue you can try the following options. Do no hesitate to ask or check our issues database. Perhaps someone has asked already what you are looking for.

License

Verdaccio is MIT licensed

The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is Creative Commons licensed.

verdaccio-google-cloud's People

Contributors

dependabot[bot] avatar fiws avatar fossabot avatar jason-cooke avatar juanpicado avatar serratedserenade avatar slicejunk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

verdaccio-google-cloud's Issues

Does fast-crc32c actually used somewhere?

Does fast-crc32c actually used somewhere? Project search didn't show anything except presence in package.json. And only what I can see that this plugin does is producing a mess in console during install due to its dependency deprecations.

Also even if it used somewhere it adds only 3 times speedup. But it's not too much if we count private registry publishes. Maybe it will be valueble for some big companies that publish hundred packages per second, but for others it just adds complexity with compiling it with node-gyp.

Duplicate packages when publishing

Hi!

Not sure if it's specifically for this plugin but we've noticed duplicate packages when publishing to our NPM registry using this plugin.

screen shot 2018-08-06 at 13 22 35

In Google DataStore we can also see duplicate names.

screen shot 2018-08-06 at 13 24 50

Not much output is shown other than 2 POST requests.

screen shot 2018-08-06 at 13 29 28

Currently using yarn to publish packages.

Package fails on publish

https://circleci.com/gh/verdaccio/verdaccio-google-cloud/62?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

#!/bin/bash -eo pipefail
yarn publish
yarn publish v1.5.1
[1/4] Bumping version...
info Current version: 0.0.8
error An unexpected error occurred: "You must specify a new version with --new-version when running with --non-interactive.".
info If you think this is a bug, please open a bug report with the information provided in "/home/circleci/google-storage/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/publish for documentation about this command.
Exited with code 1

unable to connect to project which has enabled datastore and cloud storage

The plugins fails to connect to a project which has enabled datastore and cloud storage:

Verdaccio doesn't need superuser privileges. Don't run it under root.
 warn --- config file  - /conf/config.yaml
 warn -=- Using credentials in a file might be un-secure and is recommended for local development
 warn -=- Google storage settings: {"projectId":"myproject","keyFilename":"/run/secrets/gcs-key.json"}
 warn -=- Using credentials in a file might be un-secure and is recommended for local development
 warn -=- Google storage settings: {"projectId":"myproject","keyFilename":"/run/secrets/gcs-key.json"}
 warn --- Plugin successfully loaded: google-cloud
(node:12) UnhandledPromiseRejectionWarning: Error: 5 NOT_FOUND: The project myproject does not exist or it does not contain an active Cloud Datastore or Cloud Firestore database. Please visit http://console.cloud.google.com to create a project or https://console.cloud.google.com/datastore/setup?project=myproject to add a Cloud Datastore or Cloud Firestore database. Note that Cloud Datastore or Cloud Firestore always have an associated App Engine app and this app must not be disabled.
    at Object.exports.createStatusError (/usr/local/lib/node_modules/verdaccio-google-cloud/node_modules/grpc/src/common.js:91:15)
    at Object.onReceiveStatus (/usr/local/lib/node_modules/verdaccio-google-cloud/node_modules/grpc/src/client_interceptors.js:1204:28)
    at InterceptingListener._callNext (/usr/local/lib/node_modules/verdaccio-google-cloud/node_modules/grpc/src/client_interceptors.js:568:42)
    at InterceptingListener.onReceiveStatus (/usr/local/lib/node_modules/verdaccio-google-cloud/node_modules/grpc/src/client_interceptors.js:618:8)
    at callback (/usr/local/lib/node_modules/verdaccio-google-cloud/node_modules/grpc/src/client_interceptors.js:845:24)
(node:12) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:12) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
child process exited with code 0

I suspect that it's issue related to gRPC dependencies used by the plugin.

upgrade @google-cloud/datastore to 4.x

I'm not sure what are the changes between 2.x and 4.x. But I think we should update this.

➜ yarn upgrade-interactive --latest             
yarn upgrade-interactive v1.16.0
info Color legend : 
 "<red>"    : Major Update backward-incompatible updates 
 "<yellow>" : Minor Update backward-compatible features 
 "<green>"  : Patch Update backward-compatible bug fixes
? Choose which packages to update. 
 dependencies
   name                     range   from       to     url
❯◯ @google-cloud/datastore  latest  2.0.0   ❯  4.1.2  https://github.com/googleapis/nodejs-datastore#readme

google-cloud plugin not found

I have installed the plugin using:

npm install -g verdaccio-google-cloud

and then when I execute verdaccio, I am getting an error that the plugin is not found

(node:428) UnhandledPromiseRejectionWarning: Error: "google-cloud" plugin not found
try "npm install verdaccio-google-cloud"
    at /usr/lib/node_modules/verdaccio/build/lib/plugin-loader.js:88:13
    at Array.map (<anonymous>)
    at loadPlugin (/usr/lib/node_modules/verdaccio/build/lib/plugin-loader.js:62:43)
    at LocalStorage._loadStorePlugin (/usr/lib/node_modules/verdaccio/build/lib/local-storage.js:865:63)
    at LocalStorage._loadStorage (/usr/lib/node_modules/verdaccio/build/lib/local-storage.js:849:26)
    at new LocalStorage (/usr/lib/node_modules/verdaccio/build/lib/local-storage.js:64:27)
    at Storage.init (/usr/lib/node_modules/verdaccio/build/lib/storage.js:73:25)
    at /usr/lib/node_modules/verdaccio/build/api/index.js:140:19
    at Generator.next (<anonymous>)
    at step (/usr/lib/node_modules/verdaccio/build/api/index.js:47:191)
(node:428) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:428) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Invalid upload request for random NPM packages

Hi, I was trying to use this plugin and it seemed to work at first.

But after some time it starts to fail during npm install commands in different unrelated projects.

Basically it responds with error from NPM:

npm ERR! code E500
npm ERR! 500 Internal Server Error: [email protected]

And on server verdaccio prints:

verdaccio-gc |  http --> 200, req: 'GET https://registry.npmjs.org/ms' (streaming)
verdaccio-gc |  http --> 200, req: 'GET https://registry.npmjs.org/ms', bytes: 0/26050
verdaccio-gc |  error-=- gcloud: save package ms has failed err: Invalid Upload Request
verdaccio-gc |  http <-- 500, user: null(192.168.176.1), req: 'GET /ms', error: Invalid Upload Request

I'm using verdaccio as a docker container with GCloud.

At first I thought it was networking issue in our cluster but then I tested it on local machine with different google account and same errors were occurring.

The error happens for random NPM packages and once it hits this error it always responds with this error for that package. And if I'm installing other packages that do not have this error then everything works fine.

Also if I'm just navigating to my registry website and checking package with error (ex http://localhost:4873/ms) then I see response:

{
  "error": "Invalid Upload Request"
}

For other working packages it responds with proper JSON with versions...

I would like to help debug this. It would be great to know how can I enable more logging so we can have better idea.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.