npm adduser --registry http://localhost:9000/
component should load the component in default state 1`] = `
>
component should load the component in default state 1`] = `
/>
@@ -344,16 +344,16 @@ exports[` component should load the component in default state 1`] = `
2. Publish
npm publish --registry http://localhost:9000/
component should load the component in default state 1`] = `
>
component should load the component in default state 1`] = `
/>
USED BY
diff --git a/website/src/components/WhatIsVerdaccio.tsx b/website/src/components/WhatIsVerdaccio.tsx
index 720706e1c..2ac6a3676 100644
--- a/website/src/components/WhatIsVerdaccio.tsx
+++ b/website/src/components/WhatIsVerdaccio.tsx
@@ -1,5 +1,5 @@
-import Translate from '@docusaurus/Translate';
import Link from '@docusaurus/Link';
+import Translate from '@docusaurus/Translate';
import useBaseUrl from '@docusaurus/useBaseUrl';
import React from 'react';
diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx
index 279bce7a7..a582eb826 100644
--- a/website/src/pages/index.tsx
+++ b/website/src/pages/index.tsx
@@ -17,10 +17,10 @@ const Home = (): React.ReactElement => {
-
+
-
+
diff --git a/website/talks/deep-dive-into-verdaccio.md b/website/talks/deep-dive-into-verdaccio.md
index 7eacae5ef..b4a5438bc 100644
--- a/website/talks/deep-dive-into-verdaccio.md
+++ b/website/talks/deep-dive-into-verdaccio.md
@@ -28,7 +28,6 @@ import ReactPlayer from 'react-player/youtube'
### Slides
-
```mdx-code-block
import Iframe from 'react-iframe'
@@ -39,4 +38,3 @@ import Iframe from 'react-iframe'
scrolling={false}
position="relative"/>
```
-
diff --git a/website/talks/index.md b/website/talks/index.md
index d3971154b..f870f03a4 100644
--- a/website/talks/index.md
+++ b/website/talks/index.md
@@ -37,7 +37,6 @@ import ReactPlayer from 'react-player/youtube'
```
-
## Contributors Tutorials
```mdx-code-block
@@ -45,7 +44,6 @@ import ReactPlayer from 'react-player/youtube'
```
-
## Tutoriales en Español
```mdx-code-block
diff --git a/website/versioned_docs/version-5.x/amazon.md b/website/versioned_docs/version-5.x/amazon.md
index 1e22423d9..556e8ffc2 100644
--- a/website/versioned_docs/version-5.x/amazon.md
+++ b/website/versioned_docs/version-5.x/amazon.md
@@ -1,6 +1,6 @@
---
id: amazon
-title: "Amazon Web Services"
+title: 'Amazon Web Services'
---
This document describes several approaches for deploying Verdaccio in the AWS cloud.
@@ -29,19 +29,21 @@ Elastic File System
```
Architecture notes:
-* Deploy this stack into the region closest to your users for maximum performance.
-* We use an auto scaling group primarily for self-healing. The system requirements of Verdaccio are pretty low, so it's unlikely you'll need multiple instances to handle traffic load.
-* Because Amazon Linux 2 doesn't include Node, we run Verdaccio as a Docker image rather than natively on the instance. This is faster and more secure than relying on third party package sources for Node.
-* Elastic File System is cheap and stateful, and works across AZs. An alternative would be the [third-party S3 storage plugin](https://github.com/remitly/verdaccio-s3-storage).
- * For backup, use AWS Backup
+
+- Deploy this stack into the region closest to your users for maximum performance.
+- We use an auto scaling group primarily for self-healing. The system requirements of Verdaccio are pretty low, so it's unlikely you'll need multiple instances to handle traffic load.
+- Because Amazon Linux 2 doesn't include Node, we run Verdaccio as a Docker image rather than natively on the instance. This is faster and more secure than relying on third party package sources for Node.
+- Elastic File System is cheap and stateful, and works across AZs. An alternative would be the [third-party S3 storage plugin](https://github.com/remitly/verdaccio-s3-storage).
+ - For backup, use AWS Backup
Estimated monthly cost for a small installation (in us-east-1):
-* ALB (1 LCU average): $22.265/mo
-* EC2 (t3.nano): $3.796/mo
-* EBS (8gb): $0.80/mo
-* EFS (5gb): $1.5/mo
-* Data transfer: (10gb): $0.9/mo
-* **TOTAL:** Under $30/mo
+
+- ALB (1 LCU average): $22.265/mo
+- EC2 (t3.nano): $3.796/mo
+- EBS (8gb): $0.80/mo
+- EFS (5gb): $1.5/mo
+- Data transfer: (10gb): $0.9/mo
+- **TOTAL:** Under $30/mo
## ECS {#ecs}
diff --git a/website/versioned_docs/version-5.x/ansible.md b/website/versioned_docs/version-5.x/ansible.md
index 016360f83..c14b43303 100644
--- a/website/versioned_docs/version-5.x/ansible.md
+++ b/website/versioned_docs/version-5.x/ansible.md
@@ -1,6 +1,6 @@
---
id: ansible
-title: "Ansible"
+title: 'Ansible'
---
We have a customised solution for `verdaccio` in our organization.
@@ -9,10 +9,9 @@ We have a customised solution for `verdaccio` in our organization.
#### Other options {#other-options}
-* Ansible role for Gentoo users: [jirutka/ansible-role-sinopia](https://github.com/jirutka/ansible-role-sinopia).
-* Ansible role for Ubuntu users: [jagregory/sinopia-ansible](https://github.com/jagregory/sinopia-ansible).
-* ansible-verdaccio-role [https://github.com/refinery29/ansible-verdaccio-role](https://github.com/refinery29/ansible-verdaccio-role)
-
+- Ansible role for Gentoo users: [jirutka/ansible-role-sinopia](https://github.com/jirutka/ansible-role-sinopia).
+- Ansible role for Ubuntu users: [jagregory/sinopia-ansible](https://github.com/jagregory/sinopia-ansible).
+- ansible-verdaccio-role [https://github.com/refinery29/ansible-verdaccio-role](https://github.com/refinery29/ansible-verdaccio-role)
#### Related talks {#related-talks}
diff --git a/website/versioned_docs/version-5.x/api/node-api/index.md b/website/versioned_docs/version-5.x/api/node-api/index.md
index a7f0e3f57..07661a732 100644
--- a/website/versioned_docs/version-5.x/api/node-api/index.md
+++ b/website/versioned_docs/version-5.x/api/node-api/index.md
@@ -1,5 +1,3 @@
# 5.x API
Go to [Node-API](https://verdaccio.org/docs/verdaccio-programmatically).
-
-
diff --git a/website/versioned_docs/version-5.x/articles.md b/website/versioned_docs/version-5.x/articles.md
index b4f196020..3b42a6628 100644
--- a/website/versioned_docs/version-5.x/articles.md
+++ b/website/versioned_docs/version-5.x/articles.md
@@ -1,6 +1,6 @@
---
id: articles
-title: "Articles"
+title: 'Articles'
---
Below is a list of articles about Verdaccio. If you have written a blog post or tutorial that mentions Verdaccio, feel free to add it here!
@@ -9,92 +9,87 @@ Below is a list of articles about Verdaccio. If you have written a blog post or
## Maintainer Articles {#maintainers-articles}
-* [An Introduction to Verdaccio](https://medium.com/@jotadeveloper/an-introduction-to-verdaccio-f6c72e865425)
-* [Five use cases where a npm private proxy fits in your workflow](https://medium.com/@jotadeveloper/five-use-cases-where-a-npm-private-proxy-fits-in-your-workflow-632a81779c14)
-* [An Introduction to Verdaccio](https://medium.com/@jotadeveloper/an-introduction-to-verdaccio-f6c72e865425)
-* [NPM Registry for your organisation](https://medium.com/@ayusharma.in/npm-registry-for-your-organisation-aeb8ea76144)
-* [Verdaccio 3 released 🎉!!](https://medium.com/verdaccio/verdaccio-3-released-feb06ef38558)
-* [The crazy story of Verdaccio](https://medium.com/verdaccio/the-crazy-story-of-verdaccio-d35d924728bc)
-* [Verdaccio 4 alpha release 🚀](https://medium.com/verdaccio/verdaccio-4-alpha-release-400c7ed4884d)
-* [Verdaccio and deterministic lock files](https://medium.com/verdaccio/verdaccio-and-deterministic-lock-files-5339d82d611e)
-* [Setting up Verdaccio on DigitalOcean](https://medium.com/verdaccio/setting-up-verdaccio-on-digitalocean-61b5d08e4f0d)
-* [How I learned React Js and how you can…](https://medium.com/verdaccio/how-i-learned-react-js-and-how-you-can-8663f938426c)
-* [How did I fall in the open source world…and that was a nice thing!](https://medium.com/@priscilawebdev/how-do-i-fall-in-the-open-source-world-and-that-was-a-nice-thing-b0e85d05490d)
-
-
+- [An Introduction to Verdaccio](https://medium.com/@jotadeveloper/an-introduction-to-verdaccio-f6c72e865425)
+- [Five use cases where a npm private proxy fits in your workflow](https://medium.com/@jotadeveloper/five-use-cases-where-a-npm-private-proxy-fits-in-your-workflow-632a81779c14)
+- [An Introduction to Verdaccio](https://medium.com/@jotadeveloper/an-introduction-to-verdaccio-f6c72e865425)
+- [NPM Registry for your organisation](https://medium.com/@ayusharma.in/npm-registry-for-your-organisation-aeb8ea76144)
+- [Verdaccio 3 released 🎉!!](https://medium.com/verdaccio/verdaccio-3-released-feb06ef38558)
+- [The crazy story of Verdaccio](https://medium.com/verdaccio/the-crazy-story-of-verdaccio-d35d924728bc)
+- [Verdaccio 4 alpha release 🚀](https://medium.com/verdaccio/verdaccio-4-alpha-release-400c7ed4884d)
+- [Verdaccio and deterministic lock files](https://medium.com/verdaccio/verdaccio-and-deterministic-lock-files-5339d82d611e)
+- [Setting up Verdaccio on DigitalOcean](https://medium.com/verdaccio/setting-up-verdaccio-on-digitalocean-61b5d08e4f0d)
+- [How I learned React Js and how you can…](https://medium.com/verdaccio/how-i-learned-react-js-and-how-you-can-8663f938426c)
+- [How did I fall in the open source world…and that was a nice thing!](https://medium.com/@priscilawebdev/how-do-i-fall-in-the-open-source-world-and-that-was-a-nice-thing-b0e85d05490d)
# Articles / Blogs / Tutorials (by Language)
### Remarkable Articles {#remarkable-articles}
-* [Why Private Npm Registries Matter and How Verdaccio Makes It Easy](https://fusebit.io/blog/private-npm-verdaccio/?utm_source=verdaccio.org&utm_medium=referral)
-* [Automating package publishing in JavaScript projects](https://blog.codecentric.de/en/2021/02/automating-package-publishing-in-javascript-projects/)
-* [10 npm Security Best Practices](https://snyk.io/blog/ten-npm-security-best-practices/)
-* [Cover Your Apps While Still Using npm](https://nodesource.com/blog/cover-your-apps-while-still-using-npm/)
-* [Containerizing Node.js Applications with Docker](https://nodesource.com/blog/containerizing-node-js-applications-with-docker)
-* [Verdaccio - A lightweight npm proxy registry - Interview with Juan Picado](https://survivejs.com/blog/verdaccio-interview/)
-* [Host, Publish and Manage Private npm Packages with Verdaccio](https://www.sitepoint.com/private-npm-packages-verdaccio/)
-* [Free Private NPM with Verdaccio and AWS](https://medium.com/@odahcam/free-private-npm-with-verdaccio-and-aws-a88e6f0f4beb)
-* [Run your own Unity Package Server!](https://medium.com/@markushofer/run-your-own-unity-package-server-b4fe9995704e)
-* [Ways to have your private npm registry — and a final DIY solution](https://medium.com/engenharia-noalvo/ways-to-have-your-private-npm-registry-and-a-final-diy-solution-eed001a88e74)
-* [How to set up a free private npm registry… for Windows](https://medium.com/@Anderson7301/how-to-set-up-a-free-private-npm-registry-for-windows-f532c6a381ce)
-* [Setup a Private NPM Server on Azure in 45 Seconds](https://edi.wang/post/2020/7/7/setup-a-private-npm-server-on-azure-in-45-seconds)
+- [Why Private Npm Registries Matter and How Verdaccio Makes It Easy](https://fusebit.io/blog/private-npm-verdaccio/?utm_source=verdaccio.org&utm_medium=referral)
+- [Automating package publishing in JavaScript projects](https://blog.codecentric.de/en/2021/02/automating-package-publishing-in-javascript-projects/)
+- [10 npm Security Best Practices](https://snyk.io/blog/ten-npm-security-best-practices/)
+- [Cover Your Apps While Still Using npm](https://nodesource.com/blog/cover-your-apps-while-still-using-npm/)
+- [Containerizing Node.js Applications with Docker](https://nodesource.com/blog/containerizing-node-js-applications-with-docker)
+- [Verdaccio - A lightweight npm proxy registry - Interview with Juan Picado](https://survivejs.com/blog/verdaccio-interview/)
+- [Host, Publish and Manage Private npm Packages with Verdaccio](https://www.sitepoint.com/private-npm-packages-verdaccio/)
+- [Free Private NPM with Verdaccio and AWS](https://medium.com/@odahcam/free-private-npm-with-verdaccio-and-aws-a88e6f0f4beb)
+- [Run your own Unity Package Server!](https://medium.com/@markushofer/run-your-own-unity-package-server-b4fe9995704e)
+- [Ways to have your private npm registry — and a final DIY solution](https://medium.com/engenharia-noalvo/ways-to-have-your-private-npm-registry-and-a-final-diy-solution-eed001a88e74)
+- [How to set up a free private npm registry… for Windows](https://medium.com/@Anderson7301/how-to-set-up-a-free-private-npm-registry-for-windows-f532c6a381ce)
+- [Setup a Private NPM Server on Azure in 45 Seconds](https://edi.wang/post/2020/7/7/setup-a-private-npm-server-on-azure-in-45-seconds)
### English {#english}
-* [Testing your npm package before releasing it using Verdaccio + ngrok](https://medium.com/strapi/testing-your-npm-package-before-releasing-it-using-verdaccio-ngrok-28e2832c850a)
-* [Host your own private NPM repository with Verdaccio](https://medium.com/devopslinks/host-your-own-private-npm-repository-with-verdaccio-e8a3202b97c5)
-* [Local npm private registry with zero configuration](https://dev.to/iriskatastic/local-npm-private-registry-with-zero-configuration-njo)
-* [It depends. On the registry](https://blog.softwaremill.com/it-depends-on-the-registry-8fa9d9c5a3b)
-* [Host, Publish and Manage Private npm Packages with Verdaccio](http://allprowebdesigns.com/2017/01/host-publish-and-manage-private-npm-packages-with-verdaccio/)
-* [Setting Up a Private NPM Registry](https://gir.me.uk/posts/private-npm-registry.html)
-* [Testing NPM alpha / beta / rc packages](https://medium.com/@the1mills/testing-npm-alpha-beta-rc-packages-108b65eb03d2)
-* [Running a local npm repository on Windows Server using Verdaccio](https://robertwray.co.uk/blog/running-a-local-npm-repository-on-windows-server-using-verdaccio)
-* [Kubernetes private NPM registry](https://medium.com/@tompape/kubernetes-private-npm-registry-fb5f450fa611)
-* [Verdaccio examples for Google Cloud and K8s setups. https://github.com/papezt/verdaccio-examples](https://github.com/papezt/verdaccio-examples)
-* [Setting up a private NPM Registry Is Easier Than You Think](https://medium.com/@902Labs/setting-up-a-private-npm-registry-is-easier-than-you-think-455e1bd438f2)
+- [Testing your npm package before releasing it using Verdaccio + ngrok](https://medium.com/strapi/testing-your-npm-package-before-releasing-it-using-verdaccio-ngrok-28e2832c850a)
+- [Host your own private NPM repository with Verdaccio](https://medium.com/devopslinks/host-your-own-private-npm-repository-with-verdaccio-e8a3202b97c5)
+- [Local npm private registry with zero configuration](https://dev.to/iriskatastic/local-npm-private-registry-with-zero-configuration-njo)
+- [It depends. On the registry](https://blog.softwaremill.com/it-depends-on-the-registry-8fa9d9c5a3b)
+- [Host, Publish and Manage Private npm Packages with Verdaccio](http://allprowebdesigns.com/2017/01/host-publish-and-manage-private-npm-packages-with-verdaccio/)
+- [Setting Up a Private NPM Registry](https://gir.me.uk/posts/private-npm-registry.html)
+- [Testing NPM alpha / beta / rc packages](https://medium.com/@the1mills/testing-npm-alpha-beta-rc-packages-108b65eb03d2)
+- [Running a local npm repository on Windows Server using Verdaccio](https://robertwray.co.uk/blog/running-a-local-npm-repository-on-windows-server-using-verdaccio)
+- [Kubernetes private NPM registry](https://medium.com/@tompape/kubernetes-private-npm-registry-fb5f450fa611)
+- [Verdaccio examples for Google Cloud and K8s setups. https://github.com/papezt/verdaccio-examples](https://github.com/papezt/verdaccio-examples)
+- [Setting up a private NPM Registry Is Easier Than You Think](https://medium.com/@902Labs/setting-up-a-private-npm-registry-is-easier-than-you-think-455e1bd438f2)
### Japanese {#japanese}
-* [Verdaccio でプライベート npm リポジトリをサクッと立てる](http://neos21.hatenablog.com/entry/2017/09/08/080000)
-* [verdaccioでprivateなnpmリポジトリを作成](https://qiita.com/mtokiwa/items/1bc22a2270e4408d4cdd)
-* [Version control of my own UnityPackage with Unity × Verdaccio / Unity×Verdaccioで自作UnityPackageをバージョン管理する](https://synamon.hatenablog.com/entry/2018/08/15/185607)
+- [Verdaccio でプライベート npm リポジトリをサクッと立てる](http://neos21.hatenablog.com/entry/2017/09/08/080000)
+- [verdaccio で private な npm リポジトリを作成](https://qiita.com/mtokiwa/items/1bc22a2270e4408d4cdd)
+- [Version control of my own UnityPackage with Unity × Verdaccio / Unity×Verdaccio で自作 UnityPackage をバージョン管理する](https://synamon.hatenablog.com/entry/2018/08/15/185607)
### Chinese {#chinese}
-* [使用 verdaccio 搭建 npm 私有仓储](https://blog.sigoden.com/verdaccio--private-npm-registry/)
-* [Verdaccio:一个轻量级的私有npm代理注册表(sinopia fork)](https://www.ctolib.com/verdaccio-verdaccio.html)
-* [npm 私服工具verdaccio 安装配置试用](http://www.cnblogs.com/rongfengliang/p/7811838.html)
-* [搭建私有npm镜像](http://www.blackcater.win/2018/03/01/%E6%90%AD%E5%BB%BA%E7%A7%81%E6%9C%89npm%E9%95%9C%E5%83%8F/)
-* [搭建离线npm私库——verdaccio](https://www.jishux.com/plus/view-765581-1.html)
-* [[筆記] 建立自己的 npm, 以npm Orgs跟Verdaccio為例](https://medium.com/@ceall8650/%E7%AD%86%E8%A8%98-%E5%BB%BA%E7%AB%8B%E8%87%AA%E5%B7%B1%E7%9A%84-npm-%E4%BB%A5npm-orgs%E8%B7%9Fverdaccio%E7%82%BA%E4%BE%8B-cfb83b2307e6)
-
+- [使用 verdaccio 搭建 npm 私有仓储](https://blog.sigoden.com/verdaccio--private-npm-registry/)
+- [Verdaccio:一个轻量级的私有 npm 代理注册表(sinopia fork)](https://www.ctolib.com/verdaccio-verdaccio.html)
+- [npm 私服工具 verdaccio 安装配置试用](http://www.cnblogs.com/rongfengliang/p/7811838.html)
+- [搭建私有 npm 镜像](http://www.blackcater.win/2018/03/01/%E6%90%AD%E5%BB%BA%E7%A7%81%E6%9C%89npm%E9%95%9C%E5%83%8F/)
+- [搭建离线 npm 私库——verdaccio](https://www.jishux.com/plus/view-765581-1.html)
+- [[筆記] 建立自己的 npm, 以 npm Orgs 跟 Verdaccio 為例](https://medium.com/@ceall8650/%E7%AD%86%E8%A8%98-%E5%BB%BA%E7%AB%8B%E8%87%AA%E5%B7%B1%E7%9A%84-npm-%E4%BB%A5npm-orgs%E8%B7%9Fverdaccio%E7%82%BA%E4%BE%8B-cfb83b2307e6)
### French {#french}
-* [Installer un registre NPM](https://allons-y.io/wiki/installer-un-registre-npm)
-* [Verdaccio - Un registre de paquets npm](https://blog.yoannfleury.dev/verdaccio-un-registre-de-paquets-npm/)
-
+- [Installer un registre NPM](https://allons-y.io/wiki/installer-un-registre-npm)
+- [Verdaccio - Un registre de paquets npm](https://blog.yoannfleury.dev/verdaccio-un-registre-de-paquets-npm/)
### Spanish {#spanish}
-* [NPM privado: instalar y configurar Verdaccio](https://www.todojs.com/npm-privado-con-verdaccio/)
-* [NPM privado: 5 razones y 7 recomendaciones para utilizarlo](https://www.todojs.com/npm-privado-5-razones-y-7-recomendaciones/)
+- [NPM privado: instalar y configurar Verdaccio](https://www.todojs.com/npm-privado-con-verdaccio/)
+- [NPM privado: 5 razones y 7 recomendaciones para utilizarlo](https://www.todojs.com/npm-privado-5-razones-y-7-recomendaciones/)
### Portuguese-BR {#portuguese-BR}
-* [Problemas com pacotes do npm? Verdaccio pode ser a solução](https://dev.to/dxwebster/pt-br-problemas-com-pacotes-do-npm-verdaccio-pode-ser-a-solucao-2966)
-
+- [Problemas com pacotes do npm? Verdaccio pode ser a solução](https://dev.to/dxwebster/pt-br-problemas-com-pacotes-do-npm-verdaccio-pode-ser-a-solucao-2966)
### German {#german}
-* [Struktur für große Angular-Anwendungen: Microservices, Module, MonoRepo?](https://jaxenter.de/struktur-angular-anwendungen-67467)
-* [Angular in einer Microservices-Welt](https://jaxenter.de/angular-microservices-66445)
-* [Privates NPM Repository mit Verdaccio (SSL & Docker)](https://blog.zotorn.de/privates-npm-repository-mit-verdaccio-ssl-docker-1/)
+- [Struktur für große Angular-Anwendungen: Microservices, Module, MonoRepo?](https://jaxenter.de/struktur-angular-anwendungen-67467)
+- [Angular in einer Microservices-Welt](https://jaxenter.de/angular-microservices-66445)
+- [Privates NPM Repository mit Verdaccio (SSL & Docker)](https://blog.zotorn.de/privates-npm-repository-mit-verdaccio-ssl-docker-1/)
## Slides {#slides}
-* [Introduction to Verdaccio VueJS Meetup 2018](https://www.slideshare.net/juancarlospicado/introduction-to-verdaccio)
-* [Introduction Verdaccio Vienna JS Meetup 2019](https://docs.google.com/presentation/d/1eam_OtXCQh5IVYyia2GHhxVD8tb37B0yIadVa8wxQSk/edit?usp=sharing)
-* [Cover Your Apps While Still Using npm](https://www.slideshare.net/TierneyCoren/cover-your-apps-while-still-using-npm)
-* [Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]](https://www.slideshare.net/dena_tech/unity-20182019denaunity-dena-techcon-2019)
+- [Introduction to Verdaccio VueJS Meetup 2018](https://www.slideshare.net/juancarlospicado/introduction-to-verdaccio)
+- [Introduction Verdaccio Vienna JS Meetup 2019](https://docs.google.com/presentation/d/1eam_OtXCQh5IVYyia2GHhxVD8tb37B0yIadVa8wxQSk/edit?usp=sharing)
+- [Cover Your Apps While Still Using npm](https://www.slideshare.net/TierneyCoren/cover-your-apps-while-still-using-npm)
+- [Unity 2018-2019 を見据えた DeNA の Unity 開発のこれから [DeNA TechCon 2019]](https://www.slideshare.net/dena_tech/unity-20182019denaunity-dena-techcon-2019)
diff --git a/website/versioned_docs/version-5.x/auth.md b/website/versioned_docs/version-5.x/auth.md
index 3d6e59bc9..0147ed583 100644
--- a/website/versioned_docs/version-5.x/auth.md
+++ b/website/versioned_docs/version-5.x/auth.md
@@ -1,6 +1,6 @@
---
id: authentication
-title: "Authentication"
+title: 'Authentication'
---
The authentication is tied to the auth [plugin](plugins.md) you are using. The package restrictions are also handled by the [Package Access](packages.md).
@@ -27,10 +27,10 @@ registry=http://localhost:5555/
Eg:
```yaml
- 'my-company-*':
- access: $anonymous
- publish: $anonymous
- proxy: npmjs
+'my-company-*':
+ access: $anonymous
+ publish: $anonymous
+ proxy: npmjs
```
As is described [on issue #212](https://github.com/verdaccio/verdaccio/issues/212#issuecomment-308578500) until `npm@5.3.0` and all minor releases **won't allow you publish without a token**.
@@ -39,11 +39,11 @@ As is described [on issue #212](https://github.com/verdaccio/verdaccio/issues/21
### The meaning of `$all` and `$anonymous` {#the-meaning-of-all-and-anonymous}
-As you know *Verdaccio* uses `htpasswd` by default. That plugin does not implement the methods `allow_access`, `allow_publish` and `allow_unpublish`.
-Thus, *Verdaccio* will handle that in the following way:
+As you know _Verdaccio_ uses `htpasswd` by default. That plugin does not implement the methods `allow_access`, `allow_publish` and `allow_unpublish`.
+Thus, _Verdaccio_ will handle that in the following way:
-* If you are not logged in (you are anonymous), `$all` and `$anonymous` means exactly the same.
-* If you are logged in, `$anonymous` won't be part of your groups and `$all` will match any logged user. A new group `$authenticated` will be added to your group list.
+- If you are not logged in (you are anonymous), `$all` and `$anonymous` means exactly the same.
+- If you are logged in, `$anonymous` won't be part of your groups and `$all` will match any logged user. A new group `$authenticated` will be added to your group list.
Please note: `$all` **will match all users, whether logged in or not**.
@@ -52,8 +52,8 @@ Please note: `$all` **will match all users, whether logged in or not**.
Let's recap:
-* **logged in**: `$all` and `$authenticated` + groups added by the plugin.
-* **logged out (anonymous)**: `$all` and `$anonymous`.
+- **logged in**: `$all` and `$authenticated` + groups added by the plugin.
+- **logged out (anonymous)**: `$all` and `$anonymous`.
## Default htpasswd {#default-htpasswd}
@@ -70,17 +70,17 @@ auth:
# Hash algorithm, possible options are: "bcrypt", "md5", "sha1", "crypt".
algorithm: bcrypt # by default is crypt, but is recommended use bcrypt for new installations
# Rounds number for "bcrypt", will be ignored for other algorithms.
- rounds: 10
+ rounds: 10
```
> The default algorithm is `crypt`, considered not secure for production environments, it's recommended for new installations use `bcrypt` instead. Note after verdaccio 6.x
-the default will be `bcrypt`.
+> the default will be `bcrypt`.
-Property | Type | Required | Example | Support | Description
---- | --- | --- | --- | --- | ---
-file | string | Yes | ./htpasswd | all | file that host the encrypted credentials
-max_users | number | No | 1000 | all | set limit of users
-algorithm | string | No | bcrypt/md5/sha1/crypt | >=5.13.0 | set hasing password algorithm
-rounds | number | No | 10 | >=5.13.0 | Rounds number for "bcrypt", will be ignored for other algorithms
+| Property | Type | Required | Example | Support | Description |
+| --------- | ------ | -------- | --------------------- | -------- | ---------------------------------------------------------------- |
+| file | string | Yes | ./htpasswd | all | file that host the encrypted credentials |
+| max_users | number | No | 1000 | all | set limit of users |
+| algorithm | string | No | bcrypt/md5/sha1/crypt | >=5.13.0 | set hasing password algorithm |
+| rounds | number | No | 10 | >=5.13.0 | Rounds number for "bcrypt", will be ignored for other algorithms |
> In case you decide to prevent users from signing up themselves, you can set `max_users: -1`.
diff --git a/website/versioned_docs/version-5.x/best-practices.md b/website/versioned_docs/version-5.x/best-practices.md
index a60068359..a97de86ea 100644
--- a/website/versioned_docs/version-5.x/best-practices.md
+++ b/website/versioned_docs/version-5.x/best-practices.md
@@ -1,6 +1,6 @@
---
id: best
-title: "Best Practices"
+title: 'Best Practices'
---
The following guide is a list of the best practices collected and that we usually recommend to all users. Do not take this guide as
@@ -52,7 +52,7 @@ There's two options here:
```yaml
packages:
- "@my-company/*":
+ '@my-company/*':
access: $all
publish: $authenticated
# comment it out or leave it empty
@@ -84,7 +84,7 @@ Additional reading:
- **[Avoiding npm substitution attacks](https://github.blog/2021-02-12-avoiding-npm-substitution-attacks/)**
- **[Dependency Confusion: When Are Your npm Packages Vulnerable?](https://blog.includesecurity.com/2021/02/dependency-confusion-when-are-your-npm-packages-vulnerable/)**
- **[Practical Mitigations For Dependency Confusion Attack](https://www.kernelcrypt.com/posts/depedency-confusion-explained/)**
-> Feel free to attach here new useful articles to improve the security.
+ > Feel free to attach here new useful articles to improve the security.
### Strong package access with `$authenticated` {#strong-package-access-with-authenticated}
@@ -92,13 +92,13 @@ By default all packages you publish in Verdaccio are accessible for all users. W
```yaml
packages:
- "@my-company/*":
+ '@my-company/*':
access: $authenticated
publish: $authenticated
- "@*/*":
+ '@*/*':
access: $authenticated
publish: $authenticated
- "**":
+ '**':
access: $authenticated
publish: $authenticated
```
@@ -111,11 +111,11 @@ After a clean installation, by default all packages will be resolved to the defa
```yaml
packages:
- "@*/*":
+ '@*/*':
access: $authenticated
publish: $authenticated
proxy: npmjs
- "**":
+ '**':
access: $authenticated
publish: $authenticated
proxy: npmjs
@@ -125,15 +125,15 @@ This means that even if a private package like `@my-company/auth` is published l
```yaml
packages:
- "@my-company/*":
+ '@my-company/*':
access: $authenticated
publish: $authenticated
unpublish: $authenticated
- "@*/*":
+ '@*/*':
access: $authenticated
publish: $authenticated
proxy: npmjs
- "**":
+ '**':
access: $authenticated
publish: $authenticated
proxy: npmjs
@@ -180,7 +180,6 @@ Since version `v5.4.0` critical endpoints have enabled by default rate limit. Th
The previous list of endpoints are limited to `100` request peer _15 minutes_ which is enough for a basic usage, if you need to increase this levels please check the `userRateLimit` configuration options.
-
```yaml
userRateLimit:
windowMs: 50000 <- (minutes * 60 * 1000)
diff --git a/website/versioned_docs/version-5.x/caching.md b/website/versioned_docs/version-5.x/caching.md
index f5aed84a5..0d7e18c6d 100644
--- a/website/versioned_docs/version-5.x/caching.md
+++ b/website/versioned_docs/version-5.x/caching.md
@@ -1,6 +1,6 @@
---
id: caching
-title: "Caching strategies"
+title: 'Caching strategies'
---
Verdaccio caches all packages by default into the `/storage` folder. But you can decide whether you want to follow
@@ -8,15 +8,14 @@ a different strategy. Using of plugins you might use the cloud or any sort of da
## Caching scenarios {#caching-scenarios}
-* Build a Node.js project on **Continuous Integration** (Bamboo, GitLab, Jenkins, etc) servers is a task that might take several times at a day, thus, the server will download tons of tarballs from the registry every time takes place. As usual, the CI tools clear the cache after each build and the process start over and over again. That is a waste of bandwidth and reduces the external traffic.
-**You can use Verdaccio for caching tarballs and metadata in our internal network and give a boost in your build time.**
-* **Latency and Connectivity**, not all countries enjoy a high-speed connection. For such reason cache packages locally in your network
-is really handy. Either if you are traveling, or have a weak connection, roaming or countries with strong Firewalls that might affect the user experience (eg: corrupting tarballs).
-* **Offline Mode**, all Node Package Managers nowadays uses their own internal cache, but it common that different projects might use
-different tools, which implies lock files and so on. Those tools are unable to share cache, the unique solution is centralized and relies on
-a proxy registry, Verdaccio cache all metadata and tarballs are downloaded by demand being able to share them across all your project.
-* Avoid that any remote registry suddenly returns *HTTP 404* error for tarballs were previously available a.k.a ([left-pad issue](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)).
-
+- Build a Node.js project on **Continuous Integration** (Bamboo, GitLab, Jenkins, etc) servers is a task that might take several times at a day, thus, the server will download tons of tarballs from the registry every time takes place. As usual, the CI tools clear the cache after each build and the process start over and over again. That is a waste of bandwidth and reduces the external traffic.
+ **You can use Verdaccio for caching tarballs and metadata in our internal network and give a boost in your build time.**
+- **Latency and Connectivity**, not all countries enjoy a high-speed connection. For such reason cache packages locally in your network
+ is really handy. Either if you are traveling, or have a weak connection, roaming or countries with strong Firewalls that might affect the user experience (eg: corrupting tarballs).
+- **Offline Mode**, all Node Package Managers nowadays uses their own internal cache, but it common that different projects might use
+ different tools, which implies lock files and so on. Those tools are unable to share cache, the unique solution is centralized and relies on
+ a proxy registry, Verdaccio cache all metadata and tarballs are downloaded by demand being able to share them across all your project.
+- Avoid that any remote registry suddenly returns _HTTP 404_ error for tarballs were previously available a.k.a ([left-pad issue](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)).
# Strategies for faster builds
@@ -36,7 +35,7 @@ uplinks:
## Extending Cache Expiration Time {#extending-cache-expiration-time}
- Verdaccio by default waits 2 minutes to invalidate the cache metadata before fetching new information from the remote registry.
+Verdaccio by default waits 2 minutes to invalidate the cache metadata before fetching new information from the remote registry.
```yaml
uplinks:
@@ -48,7 +47,6 @@ uplinks:
Increasing the value of `maxage` in each `uplink` remotes will be asked less frequently. This might be a valid strategy if
you don't update dependencies so often.
-
## Using the memory instead the hardrive {#using-the-memory-instead-the-hardrive}
Sometimes caching packages is not a critical step, rather than route packages from different registries and achieving
diff --git a/website/versioned_docs/version-5.x/chef.md b/website/versioned_docs/version-5.x/chef.md
index 6fc4da972..7a8aa3ad2 100644
--- a/website/versioned_docs/version-5.x/chef.md
+++ b/website/versioned_docs/version-5.x/chef.md
@@ -1,17 +1,15 @@
---
id: chef
-title: "Chef Cookbook"
+title: 'Chef Cookbook'
---
Using Chef Cookbook for Verdaccio
For further information:
-* [https://github.com/verdaccio/verdaccio-cookbook](https://github.com/verdaccio/verdaccio-cookbook)
-* [https://supermarket.chef.io/cookbooks/verdaccio](https://supermarket.chef.io/cookbooks/verdaccio)
+- [https://github.com/verdaccio/verdaccio-cookbook](https://github.com/verdaccio/verdaccio-cookbook)
+- [https://supermarket.chef.io/cookbooks/verdaccio](https://supermarket.chef.io/cookbooks/verdaccio)
> We are looking for contributors for this repository, if you are interested please notify the author via tickets.
Author: [Keli Grubb](https://github.com/kgrubb) && Barthelemy Vessemont.
-
-
diff --git a/website/versioned_docs/version-5.x/ci.md b/website/versioned_docs/version-5.x/ci.md
index 4b5770354..9fc362c82 100644
--- a/website/versioned_docs/version-5.x/ci.md
+++ b/website/versioned_docs/version-5.x/ci.md
@@ -1,6 +1,6 @@
---
id: ci
-title: "Continuous Integration"
+title: 'Continuous Integration'
---
Verdaccio can be used with continuous integration (CI) platforms to install or publish packages.
diff --git a/website/versioned_docs/version-5.x/cli-registry.md b/website/versioned_docs/version-5.x/cli-registry.md
index 44c1fa640..40515582f 100644
--- a/website/versioned_docs/version-5.x/cli-registry.md
+++ b/website/versioned_docs/version-5.x/cli-registry.md
@@ -1,10 +1,10 @@
---
id: cli-registry
-title: "Using a private registry"
+title: 'Using a private registry'
---
Setting up a private registry is quite easy on all major Package managers and can be achieved in a few different ways depenging on your goals. The following links details how you can achieve this goal for each major package manager.
-* [npm](setup-npm.md)
-* [yarn](setup-yarn.md)
-* [pnpm](setup-pnpm.md)
+- [npm](setup-npm.md)
+- [yarn](setup-yarn.md)
+- [pnpm](setup-pnpm.md)
diff --git a/website/versioned_docs/version-5.x/cli.md b/website/versioned_docs/version-5.x/cli.md
index 0c0ca01c4..e71056e00 100644
--- a/website/versioned_docs/version-5.x/cli.md
+++ b/website/versioned_docs/version-5.x/cli.md
@@ -1,6 +1,6 @@
---
id: cli
-title: "Command Line Tool"
+title: 'Command Line Tool'
---
The Verdaccio CLI is your tool to start and stop the application.
@@ -11,12 +11,12 @@ The Verdaccio CLI is your tool to start and stop the application.
verdaccio --listen 4000 --config ~./config.yaml
```
-Command | Default | Example | Description
---- | --- | --- | ---
---listen \ **-l** | http:localhost:4873 | 7000 | Define protocol + host + port ([formats](https://github.com/verdaccio/verdaccio/blob/08c36e688e8635733f92080eb3598239d43259cb/packages/node-api/src/cli-utils.ts#L7-L16))
---config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | Set location of the configuration file
---info \ **-i** | | | Print local environment information
---version \ **-v** | | | Show version information
+| Command | Default | Example | Description |
+| ------------------ | ------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| --listen \ **-l** | http:localhost:4873 | 7000 | Define protocol + host + port ([formats](https://github.com/verdaccio/verdaccio/blob/08c36e688e8635733f92080eb3598239d43259cb/packages/node-api/src/cli-utils.ts#L7-L16)) |
+| --config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | Set location of the configuration file |
+| --info \ **-i** | | | Print local environment information |
+| --version \ **-v** | | | Show version information |
## Default config file location {#default-config-file-location}
@@ -31,7 +31,7 @@ Config files should be YAML, JSON or a NodeJS module. YAML format is detected by
We use the **$XDG_DATA_HOME** environment by variable default to locate the storage by default which [should be the same](https://askubuntu.com/questions/538526/is-home-local-share-the-default-value-for-xdg-data-home-in-ubuntu-14-04) as $HOME/.local/share.
If you are using a custom storage, this location is irrelevant.
-You can use `VERDACCIO_STORAGE_PATH` to define an alternative storage path, read more about `VERDACCIO_STORAGE_PATH` [at the environment variables page](env.md#storage-path).
+You can use `VERDACCIO_STORAGE_PATH` to define an alternative storage path, read more about `VERDACCIO_STORAGE_PATH` [at the environment variables page](env.md#storage-path).
## Default database file location {#default-database-file-location}
@@ -41,8 +41,6 @@ When upgrading an existing Verdaccio server, the file name will remain **.sinopi
> The database name `sinopia-db.json` is deprecated and support will be removed after v6.x
-
## Environment variables {#environment-variables}
[Full list of environment variables](env.md).
-
diff --git a/website/versioned_docs/version-5.x/config.md b/website/versioned_docs/version-5.x/config.md
index 5ce09b7b9..4757a2705 100644
--- a/website/versioned_docs/version-5.x/config.md
+++ b/website/versioned_docs/version-5.x/config.md
@@ -1,6 +1,6 @@
---
id: configuration
-title: "Configuration File"
+title: 'Configuration File'
---
This file is the cornerstone of Verdaccio where you can modify the default behaviour, enable plugins and extend features.
@@ -20,11 +20,11 @@ uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
- "@*/*":
+ '@*/*':
access: $all
publish: $authenticated
proxy: npmjs
- "**":
+ '**':
proxy: npmjs
log: { type: stdout, format: pretty, level: http }
```
@@ -129,7 +129,7 @@ This section allows you to control how packages are accessed. For more informati
```yaml
packages:
- "@*/*":
+ '@*/*':
access: $all
publish: $authenticated
proxy: npmjs
@@ -167,10 +167,8 @@ The new `VERDACCIO_PUBLIC_URL` is intended to be used behind proxies, this varia
- Ignores `host` and `X-Forwarded-Proto` headers
- If `url_prefix` is defined would be appended to the env variable.
-
Read more about `VERDACCIO_PUBLIC_URL` [at the environment variables page](env.md#public-url).
-
### User Agent {#user-agent}
Since: `verdaccio@5.4.0`
@@ -258,7 +256,7 @@ Enabling notifications to third-party tools is fairly easy via webhooks. For mor
```yaml
notify:
method: POST
- headers: [{ "Content-Type": "application/json" }]
+ headers: [{ 'Content-Type': 'application/json' }]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
diff --git a/website/versioned_docs/version-5.x/dev-plugins.md b/website/versioned_docs/version-5.x/dev-plugins.md
index 1fcbf4b6a..1b288cbba 100644
--- a/website/versioned_docs/version-5.x/dev-plugins.md
+++ b/website/versioned_docs/version-5.x/dev-plugins.md
@@ -1,15 +1,15 @@
---
id: dev-plugins
-title: "Developing Plugins"
+title: 'Developing Plugins'
---
There are many ways to extend `verdaccio`, the kind of plugins supported are:
-* [Authentication](plugin-auth.md)
-* [Middleware](plugin-middleware.md)
-* [Storage](plugin-storage.md)
-* Theme
-* Filter plugins
+- [Authentication](plugin-auth.md)
+- [Middleware](plugin-middleware.md)
+- [Storage](plugin-storage.md)
+- Theme
+- Filter plugins
> We recommend developing plugins using our [TypeScript type definitions](https://github.com/verdaccio/monorepo/tree/9.x/core/types).
@@ -17,7 +17,6 @@ There are many ways to extend `verdaccio`, the kind of plugins supported are:
The following plugins are valid and in process of incubation.
-
## Theme Plugin {#theme-plugin}
The plugin must return a function that returns a **string**. The string should be the absolute location of the root of your user interface.
@@ -36,27 +35,23 @@ It is imporant that the name of the plugin **must start with `verdaccio-theme-`
### Theme Example {#theme-example}
-* [@verdaccio/ui-theme](https://github.com/verdaccio/ui): The default Verdaccio theme based in React.js.
+- [@verdaccio/ui-theme](https://github.com/verdaccio/ui): The default Verdaccio theme based in React.js.
## Filter Plugin {#filter-plugin}
Since [`4.1.0`](https://github.com/verdaccio/verdaccio/pull/1313)
-
Filter plugins were introduced due a [request](https://github.com/verdaccio/verdaccio/issues/818) in order
to be able to filter metadata from uplinks.
More [info in the PR](https://github.com/verdaccio/verdaccio/pull/1161).
-
-
```yaml
filters:
- storage-filter-blackwhitelist:
- filter_file: /path/to/file
+ storage-filter-blackwhitelist:
+ filter_file: /path/to/file
```
-
### API {#api-1}
The method `filter_metadata` will allow you to filter metadata that comes from any uplink, it is `Promise` based
diff --git a/website/versioned_docs/version-5.x/docker.md b/website/versioned_docs/version-5.x/docker.md
index 45dbf8eb1..e7c467ab5 100644
--- a/website/versioned_docs/version-5.x/docker.md
+++ b/website/versioned_docs/version-5.x/docker.md
@@ -15,7 +15,7 @@ docker pull verdaccio/verdaccio
## Tagged Versions {#tagged-versions}
-![alt Docker Pulls Count](https://dockeri.co/image/verdaccio/verdaccio "Docker Pulls Count")
+![alt Docker Pulls Count](https://dockeri.co/image/verdaccio/verdaccio 'Docker Pulls Count')
Since version `v2.x` you can pull docker images by [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), as follows:
@@ -24,6 +24,7 @@ For a major version:
```bash
docker pull verdaccio/verdaccio:4
```
+
For a minor version:
```bash
@@ -51,12 +52,11 @@ The above line will pull the latest prebuilt image from dockerhub, if you haven'
If you have [build an image locally](#build-your-own-docker-image) use `verdaccio` as the last argument.
-
You can use `-v` to bind mount `conf`, `storage` and `plugins` to the hosts filesystem (example below).
-Note that if you do mount conf like this, that [you first need to supply a copy of config.yaml in that directory](https://github.com/verdaccio/verdaccio/tree/master/docker-examples/v5/plugins/docker-build-install-plugin). The Docker container will not start properly if this file is missing.
+Note that if you do mount conf like this, that [you first need to supply a copy of config.yaml in that directory](https://github.com/verdaccio/verdaccio/tree/master/docker-examples/v5/plugins/docker-build-install-plugin). The Docker container will not start properly if this file is missing.
-You can copy this file initially from https://github.com/verdaccio/verdaccio/blob/5.x/conf/docker.yaml.
+You can copy this file initially from https://github.com/verdaccio/verdaccio/blob/5.x/conf/docker.yaml.
However, note the security warnings in that file; you will definitely want to lock it down in production.
@@ -68,12 +68,13 @@ V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
-v $V_PATH/plugins:/verdaccio/plugins \
verdaccio/verdaccio
```
+
> if you are running in a server, you might want to add -d to run it in the background
->Note: Verdaccio runs as a non-root user (uid=10001) inside the container, if you use bind mount to override default,
-you need to make sure the mount directory is assigned to the right user. In above example, you need to run `sudo chown -R 10001:65533 /path/for/verdaccio` otherwise
-you will get permission errors at runtime.
-[Use docker volume](https://docs.docker.com/storage/volumes/) is recommended over using bind mount.
+> Note: Verdaccio runs as a non-root user (uid=10001) inside the container, if you use bind mount to override default,
+> you need to make sure the mount directory is assigned to the right user. In above example, you need to run `sudo chown -R 10001:65533 /path/for/verdaccio` otherwise
+> you will get permission errors at runtime.
+> [Use docker volume](https://docs.docker.com/storage/volumes/) is recommended over using bind mount.
### Environment variables
@@ -109,11 +110,11 @@ Plugins can be installed in a separate directory and mounted using Docker or Kub
### Creating your own `Dockerfile` using `verdaccio/verdaccio:tag` as base
-If the plugin already exist in some registry, it could be installed globally with `npm` command.
+If the plugin already exist in some registry, it could be installed globally with `npm` command.
```docker
FROM verdaccio/verdaccio:5
-ADD docker.yaml /verdaccio/conf/config.yaml
+ADD docker.yaml /verdaccio/conf/config.yaml
USER root
RUN npm install --global verdaccio-static-token \
&& npm install --global verdaccio-auth-memory
@@ -138,7 +139,7 @@ ADD plugins/verdaccio-docker-memory /verdaccio/plugins/verdaccio-docker-memory
RUN cd /verdaccio/plugins/verdaccio-docker-memory \
&& npm install --production
FROM verdaccio/verdaccio:5
-ADD docker.yaml /verdaccio/conf/config.yaml
+ADD docker.yaml /verdaccio/conf/config.yaml
COPY --chown=$VERDACCIO_USER_UID:root --from=builder \
/verdaccio/plugins/verdaccio-docker-memory \
/verdaccio/plugins/verdaccio-docker-memory
@@ -158,7 +159,7 @@ V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
-v $V_PATH/storage:/verdaccio/storage \
-v $V_PATH/plugins:/verdaccio/plugins \
verdaccio/verdaccio
-```
+```
### Docker and custom port configuration {#docker-and-custom-port-configuration}
@@ -169,7 +170,7 @@ in your `docker run` command add the environment variable `VERDACCIO_PORT=5000`
```bash
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
- -e "VERDACCIO_PORT=8080" -p 8080:8080 \
+ -e "VERDACCIO_PORT=8080" -p 8080:8080 \
verdaccio/verdaccio
```
@@ -197,24 +198,23 @@ $ docker-compose up --build
You can set the port to use (for both container and host) by prefixing the above command with `VERDACCIO_PORT=5000 `.
-
```yaml
version: '3.1'
services:
verdaccio:
image: verdaccio/verdaccio
- container_name: "verdaccio"
+ container_name: 'verdaccio'
networks:
- node-network
environment:
- VERDACCIO_PORT=4873
ports:
- - "4873:4873"
+ - '4873:4873'
volumes:
- - "./storage:/verdaccio/storage"
- - "./config:/verdaccio/conf"
- - "./plugins:/verdaccio/plugins"
+ - './storage:/verdaccio/storage'
+ - './config:/verdaccio/conf'
+ - './plugins:/verdaccio/plugins'
networks:
node-network:
driver: bridge
@@ -261,20 +261,19 @@ There is a separate repository that hosts multiple configurations to compose Doc
[https://github.com/verdaccio/docker-examples](https://github.com/verdaccio/verdaccio/tree/master/docker-examples)
-
## Docker Custom Builds {#docker-custom-builds}
> If you have made an image based on Verdaccio, feel free to add it to this list.
-* [docker-verdaccio-multiarch](https://github.com/hertzg/docker-verdaccio-multiarch) Multiarch image mirrors
-* [docker-verdaccio-gitlab](https://github.com/snics/docker-verdaccio-gitlab)
-* [docker-verdaccio](https://github.com/deployable/docker-verdaccio)
-* [docker-verdaccio-s3](https://github.com/asynchrony/docker-verdaccio-s3) Private NPM container that can backup to s3
-* [docker-verdaccio-ldap](https://github.com/snadn/docker-verdaccio-ldap)
-* [verdaccio-ldap](https://github.com/nathantreid/verdaccio-ldap)
-* [verdaccio-compose-local-bridge](https://github.com/shingtoli/verdaccio-compose-local-bridge)
-* [docker-verdaccio](https://github.com/Global-Solutions/docker-verdaccio)
-* [verdaccio-docker](https://github.com/idahobean/verdaccio-docker)
-* [verdaccio-server](https://github.com/andru255/verdaccio-server)
-* [coldrye-debian-verdaccio](https://github.com/coldrye-docker/coldrye-debian-verdaccio) docker image providing verdaccio from coldrye-debian-nodejs.
-* [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui/blob/master/Dockerfile)
+- [docker-verdaccio-multiarch](https://github.com/hertzg/docker-verdaccio-multiarch) Multiarch image mirrors
+- [docker-verdaccio-gitlab](https://github.com/snics/docker-verdaccio-gitlab)
+- [docker-verdaccio](https://github.com/deployable/docker-verdaccio)
+- [docker-verdaccio-s3](https://github.com/asynchrony/docker-verdaccio-s3) Private NPM container that can backup to s3
+- [docker-verdaccio-ldap](https://github.com/snadn/docker-verdaccio-ldap)
+- [verdaccio-ldap](https://github.com/nathantreid/verdaccio-ldap)
+- [verdaccio-compose-local-bridge](https://github.com/shingtoli/verdaccio-compose-local-bridge)
+- [docker-verdaccio](https://github.com/Global-Solutions/docker-verdaccio)
+- [verdaccio-docker](https://github.com/idahobean/verdaccio-docker)
+- [verdaccio-server](https://github.com/andru255/verdaccio-server)
+- [coldrye-debian-verdaccio](https://github.com/coldrye-docker/coldrye-debian-verdaccio) docker image providing verdaccio from coldrye-debian-nodejs.
+- [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui/blob/master/Dockerfile)
diff --git a/website/versioned_docs/version-5.x/e2e.md b/website/versioned_docs/version-5.x/e2e.md
index 0e57fc5d9..73d09b492 100644
--- a/website/versioned_docs/version-5.x/e2e.md
+++ b/website/versioned_docs/version-5.x/e2e.md
@@ -1,12 +1,11 @@
---
id: e2e
-title: "End to End testing"
+title: 'End to End testing'
---
### Testing the integrity of React components by publishing in a private registry
-> The final stage of a react component is when it is being published and distributed. How can I ensure my packages won’t crash in production? This talk will help you to test your React components by publishing them to a private registry and running End-to-End tests against them.
-
+> The final stage of a react component is when it is being published and distributed. How can I ensure my packages won’t crash in production? This talk will help you to test your React components by publishing them to a private registry and running End-to-End tests against them.
@@ -19,9 +18,9 @@ Some projects organize packages in multi-packages repositories or [monorepos](ht
Such approach has been really hard to achieve considering:
-* Populate canary packages on public services seems not to be a good idea
-* Some self-hosted OSS registries are too heavy
-* Offline environments (private networks)
+- Populate canary packages on public services seems not to be a good idea
+- Some self-hosted OSS registries are too heavy
+- Offline environments (private networks)
**Verdaccio** is a lightweight registry with zero-configuration that **fits perfectly in any E2E + CI workflow**.
@@ -30,22 +29,21 @@ Such approach has been really hard to achieve considering:
There is no a silver bullet yet, each implementation seems to be specific for each project, you can check some of them in
the following thread [clicking here](https://stackoverflow.com/a/50222427/308341).
-
## Examples in Open Source
The following projects have examples using Verdaccio in Open Source
### Bash Examples
-* [Babel.js](https://github.com/babel/babel) *(+35k ⭐️)*
-* [Docusaurus](https://github.com/facebook/docusaurus) *(+31k ⭐️)*
-* [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests) *(+73.5k ⭐️)*
-* [Uppy](https://github.com/transloadit/uppy) *(+21k ⭐️)*
-* [ethereum/web3.js](https://github.com/ethereum/web3.js) *(+8k ⭐️)*
-* [adobe react-spectrum](https://github.com/adobe/react-spectrum/pull/2432) *(+6k ⭐️)*
-* [Mozilla Neutrino](https://github.com/neutrinojs/neutrino) *(+3k ⭐️)*
+- [Babel.js](https://github.com/babel/babel) _(+35k ⭐️)_
+- [Docusaurus](https://github.com/facebook/docusaurus) _(+31k ⭐️)_
+- [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests) _(+73.5k ⭐️)_
+- [Uppy](https://github.com/transloadit/uppy) _(+21k ⭐️)_
+- [ethereum/web3.js](https://github.com/ethereum/web3.js) _(+8k ⭐️)_
+- [adobe react-spectrum](https://github.com/adobe/react-spectrum/pull/2432) _(+6k ⭐️)_
+- [Mozilla Neutrino](https://github.com/neutrinojs/neutrino) _(+3k ⭐️)_
-This is the most simple example using Verdaccio in a bash script (extracted from *create-react-app*).
+This is the most simple example using Verdaccio in a bash script (extracted from _create-react-app_).
```bash
#!/bin/sh
@@ -69,35 +67,32 @@ sh -c "npm --registry $local_registry publish"
### Docker Examples
-* [Hyperledger](https://github.com/hyperledger/fabric-chaincode-node)
+- [Hyperledger](https://github.com/hyperledger/fabric-chaincode-node)
### Programtically Examples
-* [Storybook](https://github.com/storybooks/storybook) *(+44k ⭐️)*
-* [Gatsby](https://github.com/gatsbyjs/gatsby) *(+40k ⭐️)
+- [Storybook](https://github.com/storybooks/storybook) _(+44k ⭐️)_
+- [Gatsby](https://github.com/gatsbyjs/gatsby) \*(+40k ⭐️)
#### Verdaccio module
Via CLI:
-* [Aurelia Framework](https://github.com/aurelia) *(+12k ⭐️)*
-* [Netlify CLI](https://github.com/netlify/cli) *(+1k ⭐️)*
-* [Embark](https://embark.status.im/) *(+3k ⭐️)*
-* [Microsoft Beachball](https://github.com/microsoft/beachball)
+- [Aurelia Framework](https://github.com/aurelia) _(+12k ⭐️)_
+- [Netlify CLI](https://github.com/netlify/cli) _(+1k ⭐️)_
+- [Embark](https://embark.status.im/) _(+3k ⭐️)_
+- [Microsoft Beachball](https://github.com/microsoft/beachball)
+
#### Node.js `child_process` examples
-* [Angular CLI](https://github.com/angular/angular-cli) *(+25k ⭐️)*
-* [bit](https://github.com/teambit/bit) *(+6k ⭐️)*
-* [pnpm](https://github.com/pnpm/pnpm) *(+6k ⭐️)*
-* [aws-sdk cli v3](https://github.com/aws/aws-sdk-js-v3) *(+1k ⭐️)*
-* [angular-eslint](https://github.com/angular-eslint/angular-eslint) *(+1k ⭐️)*
+- [Angular CLI](https://github.com/angular/angular-cli) _(+25k ⭐️)_
+- [bit](https://github.com/teambit/bit) _(+6k ⭐️)_
+- [pnpm](https://github.com/pnpm/pnpm) _(+6k ⭐️)_
+- [aws-sdk cli v3](https://github.com/aws/aws-sdk-js-v3) _(+1k ⭐️)_
+- [angular-eslint](https://github.com/angular-eslint/angular-eslint) _(+1k ⭐️)_
-## Example repositories
+## Example repositories
- [e2e-ci-example-gh-actions](https://github.com/juanpicado/e2e-ci-example-gh-actions)
- [verdaccio-end-to-end-tests](https://github.com/juanpicado/verdaccio-end-to-end-tests)
- [verdaccio-fork](https://github.com/juanpicado/verdaccio-fork)
-
-
-
-
diff --git a/website/versioned_docs/version-5.x/env.md b/website/versioned_docs/version-5.x/env.md
index 2d6cd407f..1dfc9f2a9 100644
--- a/website/versioned_docs/version-5.x/env.md
+++ b/website/versioned_docs/version-5.x/env.md
@@ -9,20 +9,19 @@ Verdaccio provides a set of environment variables to modify either permissions,
To change the behavior on runtime on running the image, these are the list of available variables.
-Variable | Default | Description
---- | --- | ---
-VERDACCIO_APPDIR | `/opt/verdaccio` | the docker working directory
-VERDACCIO_USER_NAME | `verdaccio` | the system user
-VERDACCIO_USER_UID | `10001` | the user id being used to apply folder permissions
-VERDACCIO_PORT | `4873` | the verdaccio port
-VERDACCIO_PROTOCOL | `http` | the default http protocol
-
+| Variable | Default | Description |
+| ------------------- | ---------------- | -------------------------------------------------- |
+| VERDACCIO_APPDIR | `/opt/verdaccio` | the docker working directory |
+| VERDACCIO_USER_NAME | `verdaccio` | the system user |
+| VERDACCIO_USER_UID | `10001` | the user id being used to apply folder permissions |
+| VERDACCIO_PORT | `4873` | the verdaccio port |
+| VERDACCIO_PROTOCOL | `http` | the default http protocol |
### VERDACCIO_HANDLE_KILL_SIGNALS {#handle-kill-signals}
Enables gracefully shutdown, more info at the [pull request #2121](https://github.com/verdaccio/verdaccio/pull/2121).
->
+>
### VERDACCIO_PUBLIC_URL {#public-url}
diff --git a/website/versioned_docs/version-5.x/github-actions.md b/website/versioned_docs/version-5.x/github-actions.md
index 5ed6ed03d..dbe48d216 100644
--- a/website/versioned_docs/version-5.x/github-actions.md
+++ b/website/versioned_docs/version-5.x/github-actions.md
@@ -1,6 +1,6 @@
---
id: github-actions
-title: "GitHub Actions"
+title: 'GitHub Actions'
---
With [GitHub Actions](https://github.com/features/actions) you can automate your workflow, each GitHub Action performs a specific step in a process.
diff --git a/website/versioned_docs/version-5.x/how-to-deploy-on-AWS.md b/website/versioned_docs/version-5.x/how-to-deploy-on-AWS.md
index 727c9a28b..7c0d2700f 100644
--- a/website/versioned_docs/version-5.x/how-to-deploy-on-AWS.md
+++ b/website/versioned_docs/version-5.x/how-to-deploy-on-AWS.md
@@ -1,6 +1,6 @@
---
id: aws
-title: "Amazon Web Services"
+title: 'Amazon Web Services'
---
This document describes simple steps to setup Verdaccio private registry on Amazon Web Services platform using EC2 service. This assumes you have already created an EC2 Amazon Linux instance; if not then please check this tutorial on [AWS EC2 Setup](https://www.howtoinmagento.com/2018/04/aws-cli-commands-for-aws-ec2-amazon.html).
@@ -11,123 +11,119 @@ This document describes simple steps to setup Verdaccio private registry on Amaz
**Step 2:** Install Node Version Manager (nvm) first, close and re-open the SSH using your EC2 key.
- ``` sudo apt update ```
-
- ``` wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash ```
-
- ``` exit ```
-
+`sudo apt update`
+
+`wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
+
+`exit`
+
**Step 3:** Install Node using Node Version Manager (nvm)
- ``` nvm install node ```
+`nvm install node`
**Step 4:** Install Verdaccio & pm2, will require to run Verdaccio service in background
- ``` npm i -g verdaccio pm2 ```
+`npm i -g verdaccio pm2`
**Step 5:** Set the verdaccio registry as a source. By default original NPM registry set.
-
- ``` npm set registry http://localhost:4873 ```
-
- ``` npm set ca null ```
+
+`npm set registry http://localhost:4873`
+
+`npm set ca null`
**Step 6:** Run Verdaccio and stop it (ctrl+c). It will create a config file we will use.
- ``` verdaccio ```
-
+`verdaccio`
+
**Step 7:** Now do below configuration for listening to all addresses on that server machine / EC2 instance. [(read more)](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml)
Open and edit `config.yaml` file:
- ``` nano .config/verdaccio/config.yaml ``` or ``` nano ~/verdaccio/config.yaml ```
+` nano .config/verdaccio/config.yaml` or ` nano ~/verdaccio/config.yaml`
Add below lines at the end. [(read more)](https://github.com/verdaccio/verdaccio/blob/ff409ab7c05542a152100e3bc39cfadb36a8a080/conf/full.yaml#L113)
- ```
- listen:
- - 0.0.0.0:4873
+```
+listen:
+ - 0.0.0.0:4873
```
Change below line so that only authenticated person can access our registry
- ``` Replace "access: $all" with "access: $authenticated" ```
-
- (Optional) Change below line according to how many users you wish to grant access to the scoped registry
-
- ``` Replace "#max_users: 1000" with "max_users: 1" ```
+`Replace "access: $all" with "access: $authenticated"`
+
+(Optional) Change below line according to how many users you wish to grant access to the scoped registry
+
+`Replace "#max_users: 1000" with "max_users: 1"`
There are some more parameters available to configure it. Like storage, proxy, default port change. [(read more)](https://github.com/verdaccio/verdaccio/blob/ff409ab7c05542a152100e3bc39cfadb36a8a080/conf/full.yaml#L113)
**Step 8:** Run Verdaccio in background using PM2:
- ``` pm2 start verdaccio ```
+`pm2 start verdaccio`
**Step 9:** Now, You can access your Verdaccio web UI.
The URL will look like something:
- ``` http://ec2-..compute.amazonaws.com:4873 ```
+`http://ec2-..compute.amazonaws.com:4873`
{or}
- ``` http://your-ec2-public-ip-address:4873 (You can check your EC2 instance public ip from AWS console) ```
+`http://your-ec2-public-ip-address:4873 (You can check your EC2 instance public ip from AWS console)`
To confirm Verdaccio's running status, run the command below:
- ``` pm2 list ```
-
- To make Verdaccio launch on startup, run the commands below:
-
- ``` pm2 stop verdaccio ```
-
- ``` pm2 delete verdaccio ```
-
- ``` pm2 startup ``` This will show a command in your terminal. Copy / paste it and execute it to have pm2 make a startup service for you.
-
- ``` which verdaccio ``` Copy the path shown by this command.
-
- ``` pm2 start /home/ubuntu/.nvm/versions/node/v17.1.0/bin/verdaccio ``` (put the path you copied from command above).
-
- ``` pm2 status ``` This should show "online" on the status of verdaccio service.
-
- ``` pm2 save ``` Now when you reboot the EC2 instance, it should launch verdaccio.
+` pm2 list`
+
+To make Verdaccio launch on startup, run the commands below:
+
+`pm2 stop verdaccio`
+
+`pm2 delete verdaccio`
+
+`pm2 startup` This will show a command in your terminal. Copy / paste it and execute it to have pm2 make a startup service for you.
+
+`which verdaccio` Copy the path shown by this command.
+
+`pm2 start /home/ubuntu/.nvm/versions/node/v17.1.0/bin/verdaccio` (put the path you copied from command above).
+
+`pm2 status` This should show "online" on the status of verdaccio service.
+
+`pm2 save` Now when you reboot the EC2 instance, it should launch verdaccio.
**Step 10:** Registering a user in verdaccio registry
- ``` npm set always-auth true ```
-
- ``` npm adduser ```
+` npm set always-auth true`
+
+` npm adduser`
It will ask for username, password and valid email id to be entered. Make a note of this details that will use later to login in verdaccio registry to publish our library.
-
**Step 11:** Now we are ready to use our AWS server instance work as a private registry.
Login into verdaccio registry. Enter the same username, password and email id set in above Step.
- ``` npm set registry http://your-ec2-public-ip-address:4873 ```
-
- ``` npm login ```
+` npm set registry http://your-ec2-public-ip-address:4873`
+
+` npm login`
**Step 12:** Go to your custom library package path. In my case this is my Angular 7 package path -> `/libraries/dist/your-library-name/your-library-name-0.0.1.tgz`
If you like to know how to create angular 7 library/package then [(click here)](https://www.howtoinmagento.com/2019/11/how-to-create-your-first-angular-7.html)
- ``` cd [custom library package path] ```
+` cd [custom library package path]`
**Step 13:** Finally publish our library `your-library-name-0.0.1.tgz` on verdaccio registry
- ``` [custom library package path] >> npm publish your-library-name-0.0.1.tgz ```
+` [custom library package path] >> npm publish your-library-name-0.0.1.tgz`
{or}
- ``` [custom library package path] >> npm publish ```
+` [custom library package path] >> npm publish`
{or}
- ``` [custom library package path] >> npm publish --registry http://your-ec2-public-ip-address:4873 ```
-
-Now browse ``` http://your-ec2-public-ip-address:4873 ``` and you will see new library package there.
-
-
+` [custom library package path] >> npm publish --registry http://your-ec2-public-ip-address:4873`
+Now browse ` http://your-ec2-public-ip-address:4873` and you will see new library package there.
diff --git a/website/versioned_docs/version-5.x/iis-server.md b/website/versioned_docs/version-5.x/iis-server.md
index 25e142f91..50d22fb21 100644
--- a/website/versioned_docs/version-5.x/iis-server.md
+++ b/website/versioned_docs/version-5.x/iis-server.md
@@ -1,34 +1,34 @@
---
id: iss-server
-title: "Installing on IIS server"
+title: 'Installing on IIS server'
---
These instructions were written for Windows Server 2016, IIS 10, [Node.js 10.15.0](https://nodejs.org/), [iisnode 0.2.26](https://github.com/Azure/iisnode) and [verdaccio 3.11.0](https://github.com/verdaccio/verdaccio).
-* Install IIS Install [iisnode](https://github.com/Azure/iisnode).
-Make sure you install prerequisites (Url Rewrite Module & node) as explained in the instructions for iisnode.
-* Create a new folder in Explorer where you want to host verdaccio.
-For example `C:\verdaccio`.
-Save [package.json](#packagejson),
-[start.js](#startjs)
-and [web.config](#webconfig) in this folder.
-* Create a new site in Internet Information Services Manager. You can name it whatever you want.
-I'll call it verdaccio in these [instructions](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Specify the path to where you saved all files and a port number.
-* Go back to Explorer and give the user that runs the application pool modify rights to the folder you just created. If you've named the new site verdaccio and did not change the app pool, it's running under an ApplicationPoolIdentity and you should give the user IIS AppPool\verdaccio modify rights see instructions if you need help. (You can restrict access later if you want so that it only has modify rights on the iisnode and verdaccio\storage)
-* Start a command prompt and execute the commands below to download verdaccio:
+- Install IIS Install [iisnode](https://github.com/Azure/iisnode).
+ Make sure you install prerequisites (Url Rewrite Module & node) as explained in the instructions for iisnode.
+- Create a new folder in Explorer where you want to host verdaccio.
+ For example `C:\verdaccio`.
+ Save [package.json](#packagejson),
+ [start.js](#startjs)
+ and [web.config](#webconfig) in this folder.
+- Create a new site in Internet Information Services Manager. You can name it whatever you want.
+ I'll call it verdaccio in these [instructions](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Specify the path to where you saved all files and a port number.
+- Go back to Explorer and give the user that runs the application pool modify rights to the folder you just created. If you've named the new site verdaccio and did not change the app pool, it's running under an ApplicationPoolIdentity and you should give the user IIS AppPool\verdaccio modify rights see instructions if you need help. (You can restrict access later if you want so that it only has modify rights on the iisnode and verdaccio\storage)
+- Start a command prompt and execute the commands below to download verdaccio:
-````
+```
cd c:\verdaccio
npm install
-````
+```
-* Make sure you have an inbound rule accepting TCP traffic to the port in Windows Firewall
-* Thats it! Now you can navigate to the host and port that you specified
+- Make sure you have an inbound rule accepting TCP traffic to the port in Windows Firewall
+- Thats it! Now you can navigate to the host and port that you specified
I wanted the `verdaccio` site to be the default site in IIS so I did the following:
-* I stopped the "Default Web Site" and only start the site "verdaccio" site in IIS
-* I set the bindings to "http", ip address "All Unassigned" on port 80, ok any warning or prompts
+- I stopped the "Default Web Site" and only start the site "verdaccio" site in IIS
+- I set the bindings to "http", ip address "All Unassigned" on port 80, ok any warning or prompts
These instructions are based on [Host Sinopia in IIS
on Windows](https://gist.github.com/HCanber/4dd8409f79991a09ac75). I had to tweak my web config as per below but you may find the original from the
@@ -36,9 +36,9 @@ for mentioned link works better
A default configuration file will be created `c:\verdaccio\verdaccio\config.yaml`
-### package.json {#packagejson}
+### package.json {#packagejson}
-````json
+```json
{
"name": "iisnode-verdaccio",
"version": "1.0.0",
@@ -48,25 +48,25 @@ A default configuration file will be created `c:\verdaccio\verdaccio\config.yaml
"verdaccio": "^3.11.0"
}
}
-````
+```
### start.js {#startjs}
-````bash
+```bash
process.argv.push('-l', 'unix:' + process.env.PORT, '-c', './config.yaml');
require('./node_modules/verdaccio/build/lib/cli.js');
-````
+```
### Alternate start.js for Verdaccio versions < v3.0 {#alternate-startjs-for-verdaccio-versions--v30}
-````bash
+```bash
process.argv.push('-l', 'unix:' + process.env.PORT);
require('./node_modules/verdaccio/src/lib/cli.js');
-````
+```
### web.config {#webconfig}
-````xml
+```xml
@@ -113,16 +113,17 @@ require('./node_modules/verdaccio/src/lib/cli.js');
-````
+```
### Troubleshooting {#troubleshooting}
+
- **The web interface does not load when hosted with https as it tries to download scripts over http.**
-Make sure that you have enabled `X-Forwarded-Proto` in IISNode using `enableXFF`. See [the related issue](https://github.com/verdaccio/verdaccio/issues/2003).
-````
+ Make sure that you have enabled `X-Forwarded-Proto` in IISNode using `enableXFF`. See [the related issue](https://github.com/verdaccio/verdaccio/issues/2003).
+
+```
-````
-
+```
diff --git a/website/versioned_docs/version-5.x/install.md b/website/versioned_docs/version-5.x/install.md
index 8ed57cb9d..ca02762f7 100644
--- a/website/versioned_docs/version-5.x/install.md
+++ b/website/versioned_docs/version-5.x/install.md
@@ -1,6 +1,6 @@
---
id: installation
-title: "Installation"
+title: 'Installation'
---
Verdaccio is a Node.js private and proxy registry. To install it, you need a few basic prerequisites.
@@ -65,7 +65,7 @@ or with the docker image
docker pull verdaccio/verdaccio:nightly-master
```
-> The docker image `verdaccio/verdaccio:nightly-master` is alinged with the latest commits in master branch, while the npmjs version has a longer release cycle. **It is highly recommended don't use alpha versions for production**.
+> The docker image `verdaccio/verdaccio:nightly-master` is alinged with the latest commits in master branch, while the npmjs version has a longer release cycle. **It is highly recommended don't use alpha versions for production**.
## Basic Usage {#basic-usage}
@@ -106,6 +106,7 @@ Or a `publishConfig` in your `package.json`
}
}
```
+
For alternative configurations, please read the [Using a private registry](cli-registry.md) section.
## Create Your Own Private NPM Package Tutorial {#create-your-own-private-npm-package-tutorial}
diff --git a/website/versioned_docs/version-5.x/kubernetes.md b/website/versioned_docs/version-5.x/kubernetes.md
index 1e3fa5910..c77b48644 100644
--- a/website/versioned_docs/version-5.x/kubernetes.md
+++ b/website/versioned_docs/version-5.x/kubernetes.md
@@ -1,9 +1,9 @@
---
id: kubernetes
-title: "Kubernetes"
+title: 'Kubernetes'
---
- You can find instructions to deploy Verdaccio on a Kubernetes cluster on the
+You can find instructions to deploy Verdaccio on a Kubernetes cluster on the
[verdaccio/docker-example](https://github.com/verdaccio/verdaccio/tree/5.x/docker-examples/kubernetes-example)
repository. However, the recommended method to install Verdaccio on a Kubernetes
cluster is to use [Helm](https://helm.sh). Helm is a
@@ -61,10 +61,9 @@ helm uninstall npm
**Note:** this command delete all the resources, including packages that you may
have previously published to the registry.
-
### Custom Verdaccio configuration {#custom-verdaccio-configuration}
-You can customize the Verdaccio configuration using a Kubernetes *configMap*.
+You can customize the Verdaccio configuration using a Kubernetes _configMap_.
#### Prepare {#prepare}
@@ -109,6 +108,7 @@ This allows you to inject sensitive values to the container via a [Kubernetes Se
1. Update your Verdaccio config according to the [Uplinks](./uplinks.md#auth-property) documentation
2. Pass the secret environment variable to your values file or via `--set secretEnvVars.FOO_TOKEN=superSecretBarToken`
+
```yaml
# values.yaml
secretEnvVars:
@@ -119,6 +119,7 @@ secretEnvVars:
The standard k8s NGINX ingress proxy allows for 1MB for body-size which can be increased
by modifying the default deployment options according to the [documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-max-body-size):
+
```yaml
...
@@ -126,7 +127,7 @@ annotations:
...
kubernetes.io/proxy-body-size: 20m
-....
+....
...
```
@@ -135,4 +136,4 @@ annotations:
[Rancher](http://rancher.com/) is a complete container management platform that makes managing and using containers in production really easy.
-* [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)
+- [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)
diff --git a/website/versioned_docs/version-5.x/linking.md b/website/versioned_docs/version-5.x/linking.md
index 230e50ace..b44a56aec 100644
--- a/website/versioned_docs/version-5.x/linking.md
+++ b/website/versioned_docs/version-5.x/linking.md
@@ -1,6 +1,6 @@
---
id: linking-remote-registry
-title: "Linking a Remote Registry"
+title: 'Linking a Remote Registry'
---
Verdaccio is a proxy and by default [links](uplinks.md) the public registry.
@@ -25,10 +25,10 @@ registry=https://registry.npmjs.org
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.
+- 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](https://stackoverflow.com/questions/54543979/npmrc-multiple-registries-for-the-same-scope/54550940#54550940).
@@ -78,7 +78,6 @@ Having a full Offline Registry is completely possible. If you don't want any con
can do the following.
```yaml
-
auth:
htpasswd:
file: ./htpasswd
diff --git a/website/versioned_docs/version-5.x/logger.md b/website/versioned_docs/version-5.x/logger.md
index babcccb70..9546f0d06 100644
--- a/website/versioned_docs/version-5.x/logger.md
+++ b/website/versioned_docs/version-5.x/logger.md
@@ -1,6 +1,6 @@
---
id: logger
-title: "Logger"
+title: 'Logger'
---
As with any web application, Verdaccio has a customisable built-in logger. You can define multiple types of outputs.
@@ -24,10 +24,10 @@ Note: Rotating log stream is not supported in cluster mode. [See here](https://g
### Configuration {#configuration}
-| Property | Type | Required | Example | Support | Description |
-| -------- | ------ | -------- | ---------------------------------------------- | ------- | ------------------------------------------------- |
-| type | string | No | [stdout, file] | all | define the output |
-| path | string | No | verdaccio.log | all | if type is file, define the location of that file |
-| format | string | No | [pretty, pretty-timestamped] | all | output format |
-| level | string | No | [fatal, error, warn, http, info, debug, trace] | all | verbose level |
-| colors | boolean | No | false | v5.7.0 | disable or enable colors |
+| Property | Type | Required | Example | Support | Description |
+| -------- | ------- | -------- | ---------------------------------------------- | ------- | ------------------------------------------------- |
+| type | string | No | [stdout, file] | all | define the output |
+| path | string | No | verdaccio.log | all | if type is file, define the location of that file |
+| format | string | No | [pretty, pretty-timestamped] | all | output format |
+| level | string | No | [fatal, error, warn, http, info, debug, trace] | all | verbose level |
+| colors | boolean | No | false | v5.7.0 | disable or enable colors |
diff --git a/website/versioned_docs/version-5.x/logo.md b/website/versioned_docs/version-5.x/logo.md
index aadb4ec23..21670016b 100644
--- a/website/versioned_docs/version-5.x/logo.md
+++ b/website/versioned_docs/version-5.x/logo.md
@@ -1,20 +1,20 @@
---
id: logo
-title: "Logotype"
+title: 'Logotype'
---
-The logotype was designed by __[Breno Rodrigues](https://github.com/rodriguesbreno)__ which
+The logotype was designed by **[Breno Rodrigues](https://github.com/rodriguesbreno)** which
won the [contest](https://github.com/verdaccio/verdaccio/issues/237)
([last stage](https://github.com/verdaccio/verdaccio/issues/328)) and donated his work to this project.
> All logos are licensed under [Creative Commons](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
-Special thanks to *[@Lisapressmar](https://github.com/Lisapressmar)* for her contribution
+Special thanks to _[@Lisapressmar](https://github.com/Lisapressmar)_ for her contribution
with multiple image formats and sizes.
## Symbols {#symbols}
-__With text__
+**With text**
![symbol tiny with text](/img/logo/symbol/png/logo-small-header-bottom.png)
@@ -22,11 +22,11 @@ __With text__
![symbol big with text](/img/logo/symbol/png/logo-small-header-bottom@3x.png)
-__SVG__
+**SVG**
![symbol svg](/img/logo/symbol/svg/logo-small-header-bottom.svg)
-__No text__
+**No text**
![symbol tiny](/img/logo/symbol/png/verdaccio-tiny.png)
@@ -34,12 +34,10 @@ __No text__
![symbol big](/img/logo/symbol/png/verdaccio-tiny@3x.png)
-__SVG__
+**SVG**
![svg format symbol no text](/img/logo/symbol/svg/verdaccio-tiny.svg)
-
-
### Black&White {#blackwhite}
![symbol bw small](/img/logo/symbol/png/verdaccio-blackwhite.png)
@@ -48,11 +46,10 @@ __SVG__
![symbol bw big](/img/logo/symbol/png/verdaccio-blackwhite@3x.png)
-__SVG__
+**SVG**
![symbol bw svg](/img/logo/symbol/svg/verdaccio-blackwhite.svg)
-
## Banner {#banner}
![banner small](/img/logo/banner/png/verdaccio-banner.png)
@@ -60,5 +57,3 @@ __SVG__
![banner medium](/img/logo/banner/png/verdaccio-banner@2x.png)
![banner big](/img/logo/banner/png/verdaccio-banner@3x.png)
-
-
diff --git a/website/versioned_docs/version-5.x/node-api.md b/website/versioned_docs/version-5.x/node-api.md
index a4b581c9a..71a5f26a4 100644
--- a/website/versioned_docs/version-5.x/node-api.md
+++ b/website/versioned_docs/version-5.x/node-api.md
@@ -1,6 +1,6 @@
---
id: node-api
-title: "Node API"
+title: 'Node API'
---
Verdaccio can be invoked programmatically. The Node API was introduced after version `verdaccio@3.0.0`.
@@ -62,11 +62,12 @@ startServer(
## Other implementations {#other-implementations}
-* [verdaccio-server](https://github.com/boringame/verdaccio-server) local npm registry proxy server
+- [verdaccio-server](https://github.com/boringame/verdaccio-server) local npm registry proxy server
```js
// js
-import * as verdaccioServer from "verdaccio-server";
+import * as verdaccioServer from 'verdaccio-server';
+
verdaccioServer.start();
verdaccioServer.stop();
verdaccioServer.list();
diff --git a/website/versioned_docs/version-5.x/notifications.md b/website/versioned_docs/version-5.x/notifications.md
index b249a804f..aa5b1b614 100644
--- a/website/versioned_docs/version-5.x/notifications.md
+++ b/website/versioned_docs/version-5.x/notifications.md
@@ -1,6 +1,6 @@
---
id: notifications
-title: "Notifications"
+title: 'Notifications'
---
Notify was built primarily to use with Slack's Incoming
@@ -19,7 +19,7 @@ An example with a **HipChat**, **Stride** and **Google Hangouts Chat** hook:
```yaml
notify:
method: POST
- headers: [{'Content-Type': 'application/json'}]
+ headers: [{ 'Content-Type': 'application/json' }]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
@@ -30,19 +30,19 @@ notify:
notify:
'example-google-chat':
method: POST
- headers: [{'Content-Type': 'application/json'}]
+ headers: [{ 'Content-Type': 'application/json' }]
endpoint: https://chat.googleapis.com/v1/spaces/AAAAB_TcJYs/messages?key=myKey&token=myToken
content: '{"text":"New package published: `{{ name }}{{#each versions}} v{{version}}{{/each}}`"}'
'example-hipchat':
- method: POST
- headers: [{'Content-Type': 'application/json'}]
- endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
- content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
+ method: POST
+ headers: [{ 'Content-Type': 'application/json' }]
+ endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
+ content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
'example-stride':
- method: POST
- headers: [{'Content-Type': 'application/json'}, {'authorization': 'Bearer secretToken'}]
- endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message
- content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}'
+ method: POST
+ headers: [{ 'Content-Type': 'application/json' }, { 'authorization': 'Bearer secretToken' }]
+ endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message
+ content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}'
```
## Template {#template}
@@ -63,9 +63,9 @@ We use [Handlebars](https://handlebarsjs.com/) as main template engine.
List of properties accesible via template
-* Metadata
-* Publisher (who is publishing)
-* Package Published (package@1.0.0)
+- Metadata
+- Publisher (who is publishing)
+- Package Published (package@1.0.0)
### Metadata {#metadata}
@@ -121,7 +121,6 @@ Package metadata that the template has access
}
```
-
### Publisher {#publisher}
You can get access to the package publisher information in the `content` of a webhook using the `publisher` object.
@@ -158,11 +157,11 @@ You can access to the package is being published with the keyword `{{publishedPa
## Configuration {#configuration}
-Property | Type | Required | Support | Default | Description
---- | --- | --- | --- | --- | ---
-method| string | No | all | | HTTP verb
-packagePattern| string | No | all | | Only run this notification if the package name matches the regular expression
-packagePatternFlags| string | No | all | | Any flags to be used with the regular expression
-headers| array/object | Yes | all | | If this endpoint requires specific headers, set them here as an array of key: value objects.
-endpoint| string | Yes | all | | set the URL endpoint for this call
-content| string | Yes | all | | any [Handlebar](https://handlebarsjs.com/) expressions
+| Property | Type | Required | Support | Default | Description |
+| ------------------- | ------------ | -------- | ------- | ------- | -------------------------------------------------------------------------------------------- |
+| method | string | No | all | | HTTP verb |
+| packagePattern | string | No | all | | Only run this notification if the package name matches the regular expression |
+| packagePatternFlags | string | No | all | | Any flags to be used with the regular expression |
+| headers | array/object | Yes | all | | If this endpoint requires specific headers, set them here as an array of key: value objects. |
+| endpoint | string | Yes | all | | set the URL endpoint for this call |
+| content | string | Yes | all | | any [Handlebar](https://handlebarsjs.com/) expressions |
diff --git a/website/versioned_docs/version-5.x/packages.md b/website/versioned_docs/version-5.x/packages.md
index 00f818319..ed7a25ad2 100644
--- a/website/versioned_docs/version-5.x/packages.md
+++ b/website/versioned_docs/version-5.x/packages.md
@@ -1,6 +1,6 @@
---
id: packages
-title: "Package Access"
+title: 'Package Access'
---
This is a series of constraints that allow or restrict access to the local storage based on specific criteria.
@@ -44,14 +44,14 @@ packages:
The list internal groups handled by `verdaccio` are:
```js
-'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'
+'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous';
```
All users receive all those set of permissions independently of is anonymous or not plus the groups provided by the plugin, in case of `htpasswd` return the username as a group. For instance, if you are logged as `npmUser` the list of groups will be.
```js
// groups without '$' are going to be deprecated eventually
-'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous', 'npmUser'
+'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous', 'npmUser';
```
If you want to protect specific set packages under your group, you need to do something like this. Let's use a `Regex` that covers all prefixed `npmuser-` packages. We recommend using a prefix for your packages, in that way it will be easier to protect them.
@@ -88,14 +88,14 @@ $ npm config set always-auth=true
Defining multiple access groups is fairly easy, just define them with a white space between them.
```yaml
- 'company-*':
- access: admin internal
- publish: admin
- proxy: server1
- 'supersecret-*':
- access: secret super-secret-area ultra-secret-area
- publish: secret ultra-secret-area
- proxy: server1
+'company-*':
+ access: admin internal
+ publish: admin
+ proxy: server1
+'supersecret-*':
+ access: secret super-secret-area ultra-secret-area
+ publish: secret ultra-secret-area
+ proxy: server1
```
#### Blocking access to set of packages {#blocking-access-to-set-of-packages}
@@ -112,7 +112,7 @@ packages:
#### Blocking proxying a set of specific packages {#blocking-proxying-a-set-of-specific-packages}
-You might want to block one or several packages from fetching from remote repositories., but, at the same time, allow others to access different *uplinks*.
+You might want to block one or several packages from fetching from remote repositories., but, at the same time, allow others to access different _uplinks_.
Let's see the following example:
@@ -135,10 +135,10 @@ packages:
Let's describe what we want with the above example:
-* I want to host my own `jquery` dependency but I need to avoid proxying it.
-* I want all dependencies that match with `my-company-*` but I need to avoid proxying them.
-* I want all dependencies that are in the `my-local-scope` scope but I need to avoid proxying them.
-* I want proxying for all the rest of the dependencies.
+- I want to host my own `jquery` dependency but I need to avoid proxying it.
+- I want all dependencies that match with `my-company-*` but I need to avoid proxying them.
+- I want all dependencies that are in the `my-local-scope` scope but I need to avoid proxying them.
+- I want proxying for all the rest of the dependencies.
Be **aware that the order of your packages definitions is important and always use double wilcard**. Because if you do not include it `verdaccio` will include it for you and the way that your dependencies are resolved will be affected.
@@ -155,7 +155,7 @@ You may assign multiple uplinks for use as a proxy to use in the case of failove
#### Unpublishing Packages {#unpublishing-packages}
-The property `publish` handle permissions for `npm publish` and `npm unpublish`. But, if you want to be more specific, you can use the property
+The property `publish` handle permissions for `npm publish` and `npm unpublish`. But, if you want to be more specific, you can use the property
`unpublish` in your package access section, for instance:
```yaml
@@ -180,21 +180,20 @@ packages:
In the previous example, the behaviour would be described:
-* all users can publish the `jquery` package, but only the user `root` would be able to unpublish any version.
-* only authenticated users can publish `my-company-*` packages, but **nobody would be allowed to unpublish them**.
-* If `unpublish` is commented out, the access will be granted or denied by the `publish` definition.
-
+- all users can publish the `jquery` package, but only the user `root` would be able to unpublish any version.
+- only authenticated users can publish `my-company-*` packages, but **nobody would be allowed to unpublish them**.
+- If `unpublish` is commented out, the access will be granted or denied by the `publish` definition.
### Configuration {#configuration}
You can define mutiple `packages` and each of them must have an unique `Regex`. The syntax is based on [minimatch glob expressions](https://github.com/isaacs/minimatch).
-Property | Type | Required | Example | Support | Description
---- | --- | --- | --- | --- | ---
-access | string | No | $all | all | define groups allowed to access the package
-publish | string | No | $authenticated | all | define groups allowed to publish
-proxy | string | No | npmjs | all | limit look ups for specific uplink
-storage | string | No | string | `/some-folder` | it creates a subfolder whithin the storage folder for each package access
+| Property | Type | Required | Example | Support | Description |
+| -------- | ------ | -------- | -------------- | -------------- | ------------------------------------------------------------------------- |
+| access | string | No | $all | all | define groups allowed to access the package |
+| publish | string | No | $authenticated | all | define groups allowed to publish |
+| proxy | string | No | npmjs | all | limit look ups for specific uplink |
+| storage | string | No | string | `/some-folder` | it creates a subfolder whithin the storage folder for each package access |
> We higlight that we recommend to not use **allow_access**/**allow_publish** and **proxy_access** anymore, those are deprecated and will soon be removed, please use the short version of each of those (**access**/**publish**/**proxy**).
diff --git a/website/versioned_docs/version-5.x/plugin-auth.md b/website/versioned_docs/version-5.x/plugin-auth.md
index ed21cf600..704fd5d81 100644
--- a/website/versioned_docs/version-5.x/plugin-auth.md
+++ b/website/versioned_docs/version-5.x/plugin-auth.md
@@ -1,6 +1,6 @@
---
id: plugin-auth
-title: "Authentication Plugin"
+title: 'Authentication Plugin'
---
## What's an Authentication Plugin? {#whats-an-authentication-plugin}
@@ -8,7 +8,7 @@ title: "Authentication Plugin"
Is a sort plugin that allows to handle who access or publish to a specific package. By default the `htpasswd` is built-in, but can
easily be replaced by your own.
- ## Getting Started
+## Getting Started
The authentication plugins are defined in the `auth:` section, as follows:
@@ -43,17 +43,22 @@ On each request, `authenticate` will be triggered and the plugin should return t
### API {#api}
```typescript
- interface IPluginAuth extends IPlugin {
- authenticate(user: string, password: string, cb: AuthCallback): void;
- adduser?(user: string, password: string, cb: AuthCallback): void;
- changePassword?(user: string, password: string, newPassword: string, cb: AuthCallback): void;
- allow_publish?(user: RemoteUser, pkg: AllowAccess & PackageAccess, cb: AuthAccessCallback): void;
- allow_access?(user: RemoteUser, pkg: AllowAccess & PackageAccess, cb: AuthAccessCallback): void;
- allow_unpublish?(user: RemoteUser, pkg: AllowAccess & PackageAccess, cb: AuthAccessCallback): void;
- apiJWTmiddleware?(helpers: any): Function;
- }
+interface IPluginAuth extends IPlugin {
+ authenticate(user: string, password: string, cb: AuthCallback): void;
+ adduser?(user: string, password: string, cb: AuthCallback): void;
+ changePassword?(user: string, password: string, newPassword: string, cb: AuthCallback): void;
+ allow_publish?(user: RemoteUser, pkg: AllowAccess & PackageAccess, cb: AuthAccessCallback): void;
+ allow_access?(user: RemoteUser, pkg: AllowAccess & PackageAccess, cb: AuthAccessCallback): void;
+ allow_unpublish?(
+ user: RemoteUser,
+ pkg: AllowAccess & PackageAccess,
+ cb: AuthAccessCallback
+ ): void;
+ apiJWTmiddleware?(helpers: any): Function;
+}
```
-> Only `adduser`, `allow_access`, `apiJWTmiddleware`, `allow_publish` and `allow_unpublish` are optional, verdaccio provide a fallback in all those cases.
+
+> Only `adduser`, `allow_access`, `apiJWTmiddleware`, `allow_publish` and `allow_unpublish` are optional, verdaccio provide a fallback in all those cases.
#### `apiJWTmiddleware` method {#apijwtmiddleware-method}
@@ -61,12 +66,10 @@ Since `v4.0.0`
`apiJWTmiddleware` was introduced on [PR#1227](https://github.com/verdaccio/verdaccio/pull/1227) in order to have full control of the token handler, overriding this method will disable `login/adduser` support. We recommend don't implement this method unless is totally necessary. See a full example [here](https://github.com/verdaccio/verdaccio/pull/1227#issuecomment-463235068).
-
## What should I return in each of the methods? {#what-should-i-return-in-each-of-the-methods}
Verdaccio relies on `callback` functions at time of this writing. Each method should call the method and what you return is important, let's review how to do it.
-
### `authentication` callback {#authentication-callback}
Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
@@ -76,14 +79,13 @@ Once the authentication has been executed there is 2 options to give a response
If the auth was unsuccessful, return `false` as the second argument.
```typescript
-callback(null, false)
+callback(null, false);
```
##### If the authentication success {#if-the-authentication-success}
The auth was successful.
-
`groups` is an array of strings where the user is part of.
```
@@ -102,7 +104,6 @@ The authentication service might fails, and you might want to reflect that in th
> A failure on login is not the same as service error, if you want to notify user the credentials are wrong, just return `false` instead string of groups. The behaviour mostly depends of you.
-
### `adduser` callback {#adduser-callback}
##### If adduser success {#if-adduser-success}
@@ -110,7 +111,7 @@ The authentication service might fails, and you might want to reflect that in th
If the service is able to create an user, return `true` as the second argument.
```typescript
-callback(null, true)
+callback(null, true);
```
##### If adduser fails {#if-adduser-fails}
@@ -134,7 +135,7 @@ If the service is able to create an user, return `true` as the second argument.
```typescript
const user = serviceUpdatePassword(user, password, newPassword);
-callback(null, user)
+callback(null, user);
```
##### If the request fails {#if-the-request-fails}
@@ -144,7 +145,7 @@ Any other action different than success must return an error.
```typescript
import { getNotFound } from '@verdaccio/commons-api';
- const err = getNotFound('user not found');
+const err = getNotFound('user not found');
callback(err);
```
@@ -173,7 +174,7 @@ Any other action different than success must return an error.
```typescript
import { getNotFound } from '@verdaccio/commons-api';
- const err = getForbidden('not allowed to access package');
+const err = getForbidden('not allowed to access package');
callback(err);
```
@@ -285,19 +286,19 @@ Where `htpasswd` is the sufix of the plugin name. eg: `verdaccio-htpasswd` and t
### List Community Authentication Plugins {#list-community-authentication-plugins}
-* [verdaccio-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): Bitbucket authentication plugin for verdaccio.
-* [verdaccio-bitbucket-server](https://github.com/oeph/verdaccio-bitbucket-server): Bitbucket Server authentication plugin for verdaccio.
-* [verdaccio-ldap](https://www.npmjs.com/package/verdaccio-ldap): LDAP auth plugin for verdaccio.
-* [verdaccio-active-directory](https://github.com/nowhammies/verdaccio-activedirectory): Active Directory authentication plugin for verdaccio
-* [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab): use GitLab Personal Access Token to authenticate
-* [verdaccio-gitlab-ci](https://github.com/lab360-ch/verdaccio-gitlab-ci): Enable GitLab CI to authenticate against verdaccio.
-* [verdaccio-htpasswd](https://github.com/verdaccio/verdaccio-htpasswd): Auth based on htpasswd file plugin (built-in) for verdaccio
-* [verdaccio-github-oauth](https://github.com/aroundus-inc/verdaccio-github-oauth): Github oauth authentication plugin for verdaccio.
-* [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui): GitHub OAuth plugin for the verdaccio login button.
-* [verdaccio-groupnames](https://github.com/deinstapel/verdaccio-groupnames): Plugin to handle dynamic group associations utilizing `$group` syntax. Works best with the ldap plugin.
-* [verdaccio-sqlite](https://github.com/bchanudet/verdaccio-sqlite): SQLite Authentication plugin for Verdaccio
-* [verdaccio-okta-auth](https://github.com/hogarthww-labs/verdaccio-okta-auth) Verdaccio Okta Auth
-* [verdaccio-azure-ad-login](https://github.com/IhToN/verdaccio-azure-ad-login) Let your users authenticate into Verdaccio via Azure AD OAuth 2.0 API
-* [verdaccio-auth-gitlab](https://github.com/pfdgithub/verdaccio-auth-gitlab) Verdaccio authentication plugin by gitlab personal access tokens.
+- [verdaccio-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): Bitbucket authentication plugin for verdaccio.
+- [verdaccio-bitbucket-server](https://github.com/oeph/verdaccio-bitbucket-server): Bitbucket Server authentication plugin for verdaccio.
+- [verdaccio-ldap](https://www.npmjs.com/package/verdaccio-ldap): LDAP auth plugin for verdaccio.
+- [verdaccio-active-directory](https://github.com/nowhammies/verdaccio-activedirectory): Active Directory authentication plugin for verdaccio
+- [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab): use GitLab Personal Access Token to authenticate
+- [verdaccio-gitlab-ci](https://github.com/lab360-ch/verdaccio-gitlab-ci): Enable GitLab CI to authenticate against verdaccio.
+- [verdaccio-htpasswd](https://github.com/verdaccio/verdaccio-htpasswd): Auth based on htpasswd file plugin (built-in) for verdaccio
+- [verdaccio-github-oauth](https://github.com/aroundus-inc/verdaccio-github-oauth): Github oauth authentication plugin for verdaccio.
+- [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui): GitHub OAuth plugin for the verdaccio login button.
+- [verdaccio-groupnames](https://github.com/deinstapel/verdaccio-groupnames): Plugin to handle dynamic group associations utilizing `$group` syntax. Works best with the ldap plugin.
+- [verdaccio-sqlite](https://github.com/bchanudet/verdaccio-sqlite): SQLite Authentication plugin for Verdaccio
+- [verdaccio-okta-auth](https://github.com/hogarthww-labs/verdaccio-okta-auth) Verdaccio Okta Auth
+- [verdaccio-azure-ad-login](https://github.com/IhToN/verdaccio-azure-ad-login) Let your users authenticate into Verdaccio via Azure AD OAuth 2.0 API
+- [verdaccio-auth-gitlab](https://github.com/pfdgithub/verdaccio-auth-gitlab) Verdaccio authentication plugin by gitlab personal access tokens.
**Have you developed a new plugin? Add it here !**
diff --git a/website/versioned_docs/version-5.x/plugin-generator.md b/website/versioned_docs/version-5.x/plugin-generator.md
index 108c213ee..253136669 100644
--- a/website/versioned_docs/version-5.x/plugin-generator.md
+++ b/website/versioned_docs/version-5.x/plugin-generator.md
@@ -1,13 +1,13 @@
---
id: plugin-generator
-title: "Plugin Generator"
+title: 'Plugin Generator'
---
## Installing the Yeoman Generator {#installing-the-yeoman-generator}
Verdaccio is a pluggable application, with the objective to help developers to generate new plugins, we have a custom generator based in **[Yeoman](https://yeoman.io/)** for generate all sort of plugins.
-To install the generator, as first step you must install the *yeoman* command `yo`.
+To install the generator, as first step you must install the _yeoman_ command `yo`.
```bash
npm install -g yo
@@ -62,13 +62,13 @@ Setting the project root at: /Users/user/verdaccio_yo_generator
```
- Don't hesitate to include meaningful keywords, as `verdaccio`, `plugin` or your plugin type. Good keywords will help us to find you and future improvement in our collect information about all plugins.
+
```
? Key your keywords (comma to split) verdaccio,plugin,storage,minio,verdaccio-plugin
```
- Keep your generator **updated**, don't miss any bug-fixes and performance improvements.
-
### Contributing {#contributing}
Help us to improve the generator, you can contribute in the following repository.
diff --git a/website/versioned_docs/version-5.x/plugin-middleware.md b/website/versioned_docs/version-5.x/plugin-middleware.md
index c1a6bfd12..6b25392ac 100644
--- a/website/versioned_docs/version-5.x/plugin-middleware.md
+++ b/website/versioned_docs/version-5.x/plugin-middleware.md
@@ -1,6 +1,6 @@
---
id: plugin-middleware
-title: "Middleware Plugin"
+title: 'Middleware Plugin'
---
## What's an Middleware Plugin? {#whats-an-middleware-plugin}
@@ -40,7 +40,6 @@ public register_middlewares(
The `auth` and `storage` are instances and can be extended, but we don't recommend this approach unless is well founded.
-
> A good example of a middleware plugin is the [verdaccio-audit](https://github.com/verdaccio/monorepo/tree/master/plugins/audit).
## Generate an middleware plugin {#generate-an-middleware-plugin}
@@ -109,12 +108,12 @@ The middleware are registrered after built-in endpoints, thus, it is not possibl
### List Community Middleware Plugins {#list-community-middleware-plugins}
-* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): verdaccio plugin for *npm audit* cli support (built-in) (compatible since 3.x)
+- [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): verdaccio plugin for _npm audit_ cli support (built-in) (compatible since 3.x)
-* [verdaccio-profile-api](https://github.com/ahoracek/verdaccio-profile-api): verdaccio plugin for *npm profile* cli support and *npm profile set password* for *verdaccio-htpasswd* based authentificaton
+- [verdaccio-profile-api](https://github.com/ahoracek/verdaccio-profile-api): verdaccio plugin for _npm profile_ cli support and _npm profile set password_ for _verdaccio-htpasswd_ based authentificaton
-* [verdaccio-https](https://github.com/honzahommer/verdaccio-https) Verdaccio middleware plugin to redirect to https if x-forwarded-proto header is set
-* [verdaccio-badges](https://github.com/tavvy/verdaccio-badges) A verdaccio plugin to provide a version badge generator endpoint
-* [verdaccio-openmetrics](https://github.com/freight-hub/verdaccio-openmetrics) Verdaccio plugin exposing an OpenMetrics/Prometheus endpoint with health and traffic metrics
-* [verdaccio-sentry](https://github.com/juanpicado/verdaccio-sentry) sentry loggin errors
-* [verdaccio-pacman](https://github.com/PaddeK/verdaccio-pacman) Verdaccio Middleware Plugin to manage tags and versions of packages
+- [verdaccio-https](https://github.com/honzahommer/verdaccio-https) Verdaccio middleware plugin to redirect to https if x-forwarded-proto header is set
+- [verdaccio-badges](https://github.com/tavvy/verdaccio-badges) A verdaccio plugin to provide a version badge generator endpoint
+- [verdaccio-openmetrics](https://github.com/freight-hub/verdaccio-openmetrics) Verdaccio plugin exposing an OpenMetrics/Prometheus endpoint with health and traffic metrics
+- [verdaccio-sentry](https://github.com/juanpicado/verdaccio-sentry) sentry loggin errors
+- [verdaccio-pacman](https://github.com/PaddeK/verdaccio-pacman) Verdaccio Middleware Plugin to manage tags and versions of packages
diff --git a/website/versioned_docs/version-5.x/plugin-storage.md b/website/versioned_docs/version-5.x/plugin-storage.md
index 4be2a342d..f98320dbe 100644
--- a/website/versioned_docs/version-5.x/plugin-storage.md
+++ b/website/versioned_docs/version-5.x/plugin-storage.md
@@ -1,6 +1,6 @@
---
id: plugin-storage
-title: "Storage Plugin"
+title: 'Storage Plugin'
---
## What's an Storage Plugin? {#whats-an-storage-plugin}
@@ -11,22 +11,27 @@ Verdaccio by default uses a file system storage plugin [local-storage](https://g
Storage plugins are composed of two objects, the `IPluginStorage` and the `IPackageStorage`.
-* The `IPluginStorage` object handle the local database for private packages.
+- The `IPluginStorage` object handle the local database for private packages.
```typescript
- interface IPluginStorage extends IPlugin, ITokenActions {
- logger: Logger;
- config: T & Config;
- add(name: string, callback: Callback): void;
- remove(name: string, callback: Callback): void;
- get(callback: Callback): void;
- getSecret(): Promise;
- setSecret(secret: string): Promise;
- getPackageStorage(packageInfo: string): IPackageStorage;
- search(onPackage: onSearchPackage, onEnd: onEndSearchPackage, validateName: onValidatePackage): void;
- }
+interface IPluginStorage extends IPlugin, ITokenActions {
+ logger: Logger;
+ config: T & Config;
+ add(name: string, callback: Callback): void;
+ remove(name: string, callback: Callback): void;
+ get(callback: Callback): void;
+ getSecret(): Promise;
+ setSecret(secret: string): Promise;
+ getPackageStorage(packageInfo: string): IPackageStorage;
+ search(
+ onPackage: onSearchPackage,
+ onEnd: onEndSearchPackage,
+ validateName: onValidatePackage
+ ): void;
+}
```
-* The `IPackageStorage` is an object that is created by each request that handles the I/O actions for the metadata and tarballs.
+
+- The `IPackageStorage` is an object that is created by each request that handles the I/O actions for the metadata and tarballs.
```typescript
interface IPackageStorage {
@@ -103,9 +108,9 @@ I'm all done. Running npm install for you to install the required dependencies.
The following list of plugins are implementing the Storage API and might be used them as example.
-* [verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) Storage plugin to host packages in Memory
-* [verdaccio-s3-storage](https://github.com/remitly/verdaccio-s3-storage) Storage plugin to host packages **Amazon S3**
-* [verdaccio-aws-s3-storage](https://github.com/verdaccio/monorepo/tree/master/plugins/aws-s3-storage) Storage plugin to host packages **Amazon S3** (maintained by Verdaccio core team)
-* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) Storage plugin to host packages **Google Cloud Storage**
-* [verdaccio-minio](https://github.com/barolab/verdaccio-minio) A verdaccio plugin for storing data in Minio
-* [verdaccio-offline-storage](https://github.com/g3ngar/verdaccio-offline-storage) local-storage plugin BUT with locally available packages as first class citizens.
+- [verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) Storage plugin to host packages in Memory
+- [verdaccio-s3-storage](https://github.com/remitly/verdaccio-s3-storage) Storage plugin to host packages **Amazon S3**
+- [verdaccio-aws-s3-storage](https://github.com/verdaccio/monorepo/tree/master/plugins/aws-s3-storage) Storage plugin to host packages **Amazon S3** (maintained by Verdaccio core team)
+- [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) Storage plugin to host packages **Google Cloud Storage**
+- [verdaccio-minio](https://github.com/barolab/verdaccio-minio) A verdaccio plugin for storing data in Minio
+- [verdaccio-offline-storage](https://github.com/g3ngar/verdaccio-offline-storage) local-storage plugin BUT with locally available packages as first class citizens.
diff --git a/website/versioned_docs/version-5.x/plugins.md b/website/versioned_docs/version-5.x/plugins.md
index 265bb6831..d0b7fd7a8 100644
--- a/website/versioned_docs/version-5.x/plugins.md
+++ b/website/versioned_docs/version-5.x/plugins.md
@@ -1,16 +1,16 @@
---
id: plugins
-title: "Plugins"
+title: 'Plugins'
---
Verdaccio is a pluggable application. It can be extended in many ways, either new authentication methods, adding endpoints or using a custom storage.
There are 5 types of plugins:
-* [Authentication](plugin-auth.md)
-* [Middleware](plugin-middleware.md)
-* [Storage](plugin-storage.md)
-* Custom Theme and filters
+- [Authentication](plugin-auth.md)
+- [Middleware](plugin-middleware.md)
+- [Storage](plugin-storage.md)
+- Custom Theme and filters
> If you are interested to develop your own plugin, read the [development](dev-plugins.md) section.
@@ -34,7 +34,7 @@ Open the `config.yaml` file and update the `auth` section as follows:
The default configuration looks like this, due we use a build-in `htpasswd` plugin by default that you can disable just commenting out the following lines.
-### Naming convention {#naming-convention}
+### Naming convention {#naming-convention}
Since version `2.0.0` until version plugins must start with the following convention:
@@ -51,12 +51,13 @@ auth:
store:
'@my-org/store-awesome-plugin':
foo: some value
- bar: another value
+ bar: another value
middleware:
'@my-org/middleware-awesome-plugin':
foo: some value
- bar: another value
+ bar: another value
```
+
### Authentication Configuration {#authentication-configuration}
```yaml
@@ -71,7 +72,7 @@ and replacing them with (in case you decide to use a `ldap` plugin.
```yaml
auth:
activedirectory:
- url: "ldap://10.0.100.1"
+ url: 'ldap://10.0.100.1'
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'
```
@@ -86,7 +87,7 @@ auth:
file: ./htpasswd
#max_users: 1000
activedirectory:
- url: "ldap://10.0.100.1"
+ url: 'ldap://10.0.100.1'
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'
```
@@ -126,7 +127,6 @@ $> npm install --global verdaccio-theme-dark
> The plugin name prefix must start with `verdaccio-theme`, otherwise the plugin won't load.
-
You can load only one theme at a time and pass through options if you need it.
```yaml
@@ -142,7 +142,7 @@ theme:
If you have a custom UI plugin for the them you will need to adapt your build to the new requirements.
-The previous version you only need to return a function with a string and the path of the directory.
+The previous version you only need to return a function with a string and the path of the directory.
```
const path = require('path');
@@ -177,6 +177,7 @@ The module must return an object and the `index.html` is ignored since support d
},
manifestFiles: { js: [ 'runtime.js', 'vendors.js', 'main.js' ] }
```
+
- `staticPath`: is the same data returned in Verdaccio 4.
- `manifest`: A webpack manifest object.
- `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.
@@ -206,24 +207,23 @@ const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
> If you are relying on any sinopia plugin, remember are deprecated and might no work in the future.
-* [sinopia-npm](https://www.npmjs.com/package/sinopia-npm): auth plugin for sinopia supporting an npm registry.
-* [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): auth plugin for sinopia that keeps users in memory.
-* [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
-* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin for sinopia supporting atlassian crowd.
-* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin for sinopia.
-* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin for sinopia2, supporting github oauth web flow.
-* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin that delegates authentication to another HTTP URL
-* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternate LDAP Auth plugin for Sinopia
-* [sinopia-request](https://www.npmjs.com/package/sinopia-request): An easy and fully auth-plugin with configuration to use an external API.
-* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generate password in htaccess format, encrypt with GPG and send via MailGun API to users.
-* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): An easy and fully auth-plugin with configuration to use a mongodb database.
-* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin for sinopia supporting htpasswd format.
-* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb backed auth plugin for sinopia private npm.
-* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin for sinopia.
-* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin for sinopia
-* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin for sinopia.
-* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin with github oauth web flow.
+- [sinopia-npm](https://www.npmjs.com/package/sinopia-npm): auth plugin for sinopia supporting an npm registry.
+- [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): auth plugin for sinopia that keeps users in memory.
+- [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
+- [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin for sinopia supporting atlassian crowd.
+- [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin for sinopia.
+- [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin for sinopia2, supporting github oauth web flow.
+- [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin that delegates authentication to another HTTP URL
+- [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternate LDAP Auth plugin for Sinopia
+- [sinopia-request](https://www.npmjs.com/package/sinopia-request): An easy and fully auth-plugin with configuration to use an external API.
+- [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generate password in htaccess format, encrypt with GPG and send via MailGun API to users.
+- [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): An easy and fully auth-plugin with configuration to use a mongodb database.
+- [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin for sinopia supporting htpasswd format.
+- [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb backed auth plugin for sinopia private npm.
+- [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin for sinopia.
+- [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin for sinopia
+- [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin for sinopia.
+- [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin with github oauth web flow.
> All sinopia plugins should be compatible with all future verdaccio versions. Anyhow, we encourage contributors to migrate them to the
-modern verdaccio API and using the prefix as *verdaccio-xx-name*.
-
+> modern verdaccio API and using the prefix as _verdaccio-xx-name_.
diff --git a/website/versioned_docs/version-5.x/programmatically.md b/website/versioned_docs/version-5.x/programmatically.md
index c5520c658..dcd813519 100644
--- a/website/versioned_docs/version-5.x/programmatically.md
+++ b/website/versioned_docs/version-5.x/programmatically.md
@@ -1,6 +1,6 @@
---
id: verdaccio-programmatically
-title: "Node.js API"
+title: 'Node.js API'
---
Verdaccio is a binary command which is available in your enviroment when you install globally the package eg `npm i -g verdaccio`, but also can be dependency in your project and use it programmatically.
@@ -12,27 +12,23 @@ Using the binary is the faster way to use verdaccio programatically, you need to
> If you are using ESM modules the `require` won't be available.
```typescript
-export function runRegistry(
- args: string[] = [],
- childOptions: {}
-): Promise {
+export function runRegistry(args: string[] = [], childOptions: {}): Promise {
return new Promise((resolve, reject) => {
- const childFork = fork(require.resolve('verdaccio/bin/verdaccio'), args, childOptions);
- childFork.on('message', (msg: {verdaccio_started: boolean}) => {
- if(msg.verdaccio_started){
+ const childFork = fork(require.resolve('verdaccio/bin/verdaccio'), args, childOptions);
+ childFork.on('message', (msg: { verdaccio_started: boolean }) => {
+ if (msg.verdaccio_started) {
resolve(childFork);
}
});
childFork.on('error', (err: any) => reject([err]));
- childFork.on('disconnect', (err: any) => reject([err]));
+ childFork.on('disconnect', (err: any) => reject([err]));
});
}
```
You can see the full example on this repository.
-[https://github.com/juanpicado/verdaccio-fork](https://github.com/juanpicado/verdaccio-fork
-)
+[https://github.com/juanpicado/verdaccio-fork](https://github.com/juanpicado/verdaccio-fork)
### Using the module API
@@ -59,13 +55,13 @@ There are three ways to use it:
With an object you need to add `self_path`, manually (it's not nice but would be a breaking change changing it now) on v6 this is not longer need it.
```js
- const {runServer, parseConfigFile} = require('verdaccio');
- const configPath = join(__dirname, './config.yaml');
- const c = parseConfigFile(configPath);
- // workaround
- // on v5 the `self_path` still exists and will be removed in v6
- c.self_path = 'foo';
- runServer(c).then(() => {});
+const { runServer, parseConfigFile } = require('verdaccio');
+const configPath = join(__dirname, './config.yaml');
+const c = parseConfigFile(configPath);
+// workaround
+// on v5 the `self_path` still exists and will be removed in v6
+c.self_path = 'foo';
+runServer(c).then(() => {});
```
Feature available minor than `v5.11.0`.
@@ -79,20 +75,20 @@ const verdaccio = require('verdaccio').default;
const YAML = require('js-yaml');
const getConfig = () => {
- return YAML.safeLoad(fs.readFileSync(path.join(__dirname, 'config.yaml'), 'utf8'));
-}
+ return YAML.safeLoad(fs.readFileSync(path.join(__dirname, 'config.yaml'), 'utf8'));
+};
const cache = path.join(__dirname, 'cache');
const config = Object.assign({}, getConfig(), {
- self_path: cache
+ self_path: cache,
});
verdaccio(config, 6000, cache, '1.0.0', 'verdaccio', (webServer, addrs, pkgName, pkgVersion) => {
try {
- webServer.unref();
- webServer.listen(addrs.port || addrs.path, addrs.host, () => {
- console.log('verdaccio running');
- });
+ webServer.unref();
+ webServer.listen(addrs.port || addrs.path, addrs.host, () => {
+ console.log('verdaccio running');
+ });
} catch (error) {
console.error(error);
}
diff --git a/website/versioned_docs/version-5.x/protect-your-dependencies.md b/website/versioned_docs/version-5.x/protect-your-dependencies.md
index faf954b03..e3cb5d556 100644
--- a/website/versioned_docs/version-5.x/protect-your-dependencies.md
+++ b/website/versioned_docs/version-5.x/protect-your-dependencies.md
@@ -1,6 +1,6 @@
---
id: protect-your-dependencies
-title: "Protecting packages"
+title: 'Protecting packages'
---
Verdaccio allows you protect publishing to your registry. To achieve that you will need to set up correctly configure your [packages access](packages).
@@ -10,7 +10,7 @@ Verdaccio allows you protect publishing to your registry. To achieve that you wi
Let's see for instance the following set up. You have a set of dependencies that are prefixed with `my-company-*` and you need to protect them from anonymous or other non-authorized logged-in users.
```yaml
-"my-company-*":
+'my-company-*':
access: admin teamA teamB teamC
publish: admin teamA
```
diff --git a/website/versioned_docs/version-5.x/puppet.md b/website/versioned_docs/version-5.x/puppet.md
index edcd6d868..1894bc78b 100644
--- a/website/versioned_docs/version-5.x/puppet.md
+++ b/website/versioned_docs/version-5.x/puppet.md
@@ -1,6 +1,6 @@
---
id: puppet
-title: "Puppet"
+title: 'Puppet'
---
Install verdaccio for Debian, Ubuntu, Fedora, and RedHat.
@@ -9,8 +9,8 @@ Install verdaccio for Debian, Ubuntu, Fedora, and RedHat.
There are two variants to install verdaccio using this Puppet module:
-* Apply-mode (with puppet-apply and no puppetmaster setup needed)
-* Master-Agent-mode (with puppet-agent accessing your configuration through the puppetmaster).
+- Apply-mode (with puppet-apply and no puppetmaster setup needed)
+- Master-Agent-mode (with puppet-agent accessing your configuration through the puppetmaster).
In both variants you have to explicitly call "class nodejs {}" in your puppet script because
the puppet-verdaccio module only defines this as a requirement, so you have all the flexibility you want when installing nodejs.
@@ -21,8 +21,4 @@ For further information:
[https://github.com/verdaccio/puppet-verdaccio](https://github.com/verdaccio/puppet-verdaccio)
> We are looking for active contributors for this integration, if you are interested
-[refers to this ticket](https://github.com/verdaccio/puppet-verdaccio/issues/11).
-
-
-
-
+> [refers to this ticket](https://github.com/verdaccio/puppet-verdaccio/issues/11).
diff --git a/website/versioned_docs/version-5.x/repositories.md b/website/versioned_docs/version-5.x/repositories.md
index 19433d9f0..54ad04dc3 100644
--- a/website/versioned_docs/version-5.x/repositories.md
+++ b/website/versioned_docs/version-5.x/repositories.md
@@ -6,4 +6,3 @@ title: Source Code
`verdaccio` is composed or multiple repositories you might contribute. Look into the **issues** tab whether there is a ticket waiting for you 🤠.
To see the complete list of repositories, [click here](https://github.com/verdaccio/verdaccio/wiki/Repositories).
-
diff --git a/website/versioned_docs/version-5.x/reverse-proxy.md b/website/versioned_docs/version-5.x/reverse-proxy.md
index 7ce6fbd47..1ce559597 100644
--- a/website/versioned_docs/version-5.x/reverse-proxy.md
+++ b/website/versioned_docs/version-5.x/reverse-proxy.md
@@ -1,12 +1,11 @@
---
id: reverse-proxy
-title: "Reverse Proxy Setup"
+title: 'Reverse Proxy Setup'
---
Using a reverse proxy is a common practice. The following configurations are the
most recommended and used ones.
-
**Important**, the headers are considered to resolve the public are `X-Forwarded-Proto` for the protocol and `Host` for the domain, please include them in your configuration.
# Apache
@@ -15,16 +14,17 @@ Apache and `mod_proxy` should **not decode/encode slashes** and leave them as th
For installing at relative path, `/npm`, on the server
-````
+```
AllowEncodedSlashes NoDecode
ProxyPass /npm http://127.0.0.1:4873 nocanon
ProxyPassReverse /npm http://127.0.0.1:4873
-````
+```
For installing at root path, `/`, on the server
-````
+
+```
ServerName your.domain.com
ServerAdmin hello@your.domain.com
@@ -33,13 +33,13 @@ For installing at root path, `/`, on the server
ProxyPass / http://127.0.0.1:4873/ nocanon
ProxyPassReverse / http://127.0.0.1:4873/
-````
+```
### Configuration with SSL {#configuration-with-ssl}
Apache virtual server configuration.
-````apache
+```apache
ServerName npm.your.domain.com
@@ -55,42 +55,41 @@ Apache virtual server configuration.
RequestHeader set X-Forwarded-Proto "https"
-````
+```
## Invalid checksum
Sometimes the gzip compression can mess with the request when running `npm install` and result in error messages like this:
-````
+```
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar zlib: incorrect data check
-````
+```
A possible fix for this, can be by disabling gzip compression for the virtual host, by adding this to your config:
-````
+```
SetEnv no-gzip 1
-````
+```
Resulting in a config like so:
-````
+```
AllowEncodedSlashes NoDecode
SetEnv no-gzip 1
ProxyPass /npm http://127.0.0.1:4873 nocanon
ProxyPassReverse /npm http://127.0.0.1:4873
-````
+```
You should only add it to your virtual host config, if you are experiencing the issue.
-
# Nginx
The following snippet is a full `docker` example can be tested in our [Docker examples repository](https://github.com/verdaccio/verdaccio/tree/5.x/docker-examples/reverse_proxy/nginx).
-````nginx
+```nginx
upstream verdaccio_v4 {
server verdaccio_relative_path_v4:4873;
keepalive 8;
@@ -139,11 +138,11 @@ server {
proxy_redirect off;
}
}
-````
+```
## SSL example {#ssl-example}
-````nginx
+```nginx
server {
listen 80;
return 302 https://$host$request_uri;
@@ -181,7 +180,7 @@ server {
proxy_redirect off;
}
}
-````
+```
## Run behind reverse proxy with different domain and port {#run-behind-reverse-proxy-with-different-domain-and-port}
@@ -208,6 +207,7 @@ location / {
proxy_set_header X-Forwarded-Proto $scheme;
}
```
+
For this case, `url_prefix` should **NOT** set in Verdaccio config
---
@@ -222,6 +222,7 @@ location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Forwarded-Proto $scheme;
}
```
+
For this case, `url_prefix` should set to `/verdaccio/`
> Note: There is a slash after the install path (`https://your-domain:port/verdaccio/`)!
@@ -230,7 +231,6 @@ For this case, `url_prefix` should set to `/verdaccio/`
> Since `verdaccio@5.0.0`
-
The new `VERDACCIO_PUBLIC_URL` is intended to be used behind proxies, this variable will be used for:
- Used as base path to serve UI resources as (js, favicon, etc)
diff --git a/website/versioned_docs/version-5.x/security-policy.md b/website/versioned_docs/version-5.x/security-policy.md
index cb7636c1a..0f13d3c0b 100644
--- a/website/versioned_docs/version-5.x/security-policy.md
+++ b/website/versioned_docs/version-5.x/security-policy.md
@@ -1,6 +1,6 @@
---
id: security-policy
-title: "Security Policy"
+title: 'Security Policy'
---
-Follow our security policy on [GitHub](https://github.com/verdaccio/verdaccio/security/policy)
\ No newline at end of file
+Follow our security policy on [GitHub](https://github.com/verdaccio/verdaccio/security/policy)
diff --git a/website/versioned_docs/version-5.x/server.md b/website/versioned_docs/version-5.x/server.md
index 6902f5d31..4718ba630 100644
--- a/website/versioned_docs/version-5.x/server.md
+++ b/website/versioned_docs/version-5.x/server.md
@@ -1,6 +1,6 @@
---
id: server-configuration
-title: "Server Configuration"
+title: 'Server Configuration'
---
This is mostly basic Linux server configuration stuff but I felt it important to document and share the steps I took to get Verdaccio running permanently on my server. You will need root (or sudo) permissions for the following steps.
@@ -31,6 +31,7 @@ The `cd` command sends you to the home directory of the Verdaccio user. Make sur
## Listening on all addresses {#listening-on-all-addresses}
If you want to listen to every external address set the listen directive in the config to:
+
```yaml
# you can specify listen address (or simply a port)
listen: 0.0.0.0:4873
@@ -85,7 +86,9 @@ $ which verdaccio
## Using systemd {#using-systemd}
Instead of `forever` you can use `systemd` for starting Verdaccio and keeping it running. Verdaccio installation has systemd unit, you only need to copy it:
+
```bash
$ sudo cp /usr/lib/node_modules/verdaccio/systemd/verdaccio.service /lib/systemd/system/ && sudo systemctl daemon-reload
```
+
This unit assumes you have configuration in `/etc/verdaccio/config.yaml` and store data in `/var/lib/verdaccio`, so either move your files to those locations or edit the unit.
diff --git a/website/versioned_docs/version-5.x/setup-npm.md b/website/versioned_docs/version-5.x/setup-npm.md
index 7a08c01df..a83ab7579 100644
--- a/website/versioned_docs/version-5.x/setup-npm.md
+++ b/website/versioned_docs/version-5.x/setup-npm.md
@@ -1,6 +1,6 @@
---
id: setup-npm
-title: "npm"
+title: 'npm'
---
# npm {#npm}
@@ -14,14 +14,17 @@ To set the registry for all your local projects in any terminal window run:
```bash
npm set registry http://localhost:4873/
```
+
This will set the registry for your operational system user and you can find it on the file `~/.npmrc`.
## Using registry for a specific project {#specific}
To set this value for a specific project open its root folder on a terminal window and run:
+
```bash
npm set registry http://localhost:4873/ --location project
```
+
This will set the registry in a `.npmrc` file in your project root directory.
or by specific scope eg: `@my-scope/auth`:
@@ -64,11 +67,13 @@ npm adduser --registry http://localhost:4873
after version `npm@9` the commands works separately:
- `login` does not create users.
+
```bash
npm login --registry http://localhost:4873
```
- `adduser` does not login users.
+
```bash
npm adduser --registry http://localhost:4873
```
diff --git a/website/versioned_docs/version-5.x/setup-pnpm.md b/website/versioned_docs/version-5.x/setup-pnpm.md
index 16aefba02..8233bd4d1 100644
--- a/website/versioned_docs/version-5.x/setup-pnpm.md
+++ b/website/versioned_docs/version-5.x/setup-pnpm.md
@@ -1,13 +1,13 @@
---
id: setup-pnpm
-title: "pnpm"
+title: 'pnpm'
---
### pnpm {#pnpm}
> This includes 6.x or higher series.
-`pnpm` recognize by default the configuration at `.npmrc` and also the `--registry` value.
+`pnpm` recognize by default the configuration at `.npmrc` and also the `--registry` value.
This means that you can follow the same commands described in [npm](setup-npm.md) replacing `npm` by `pnpm`.
## Troubleshooting
diff --git a/website/versioned_docs/version-5.x/setup-yarn.md b/website/versioned_docs/version-5.x/setup-yarn.md
index 8e8c62d2b..848c4bbab 100644
--- a/website/versioned_docs/version-5.x/setup-yarn.md
+++ b/website/versioned_docs/version-5.x/setup-yarn.md
@@ -1,6 +1,6 @@
---
id: setup-yarn
-title: "yarn"
+title: 'yarn'
---
# yarn {#yarn}
@@ -18,7 +18,7 @@ To set up a registry, create a file and define a registry.
registry "http://localhost:4873"
```
-`yarn@1.x` by default does not send the token on every request unless is being opt-in manually, this might causes `403 error` if you have protected the access of your packages.
+`yarn@1.x` by default does not send the token on every request unless is being opt-in manually, this might causes `403 error` if you have protected the access of your packages.
To change this behaviour enable `always-auth` in your configuration :
@@ -26,7 +26,7 @@ To change this behaviour enable `always-auth` in your configuration :
always-auth=true
```
-or running
+or running
```
npm config set always-auth true
diff --git a/website/versioned_docs/version-5.x/ssl.md b/website/versioned_docs/version-5.x/ssl.md
index 862e2aa1f..c7dca027e 100644
--- a/website/versioned_docs/version-5.x/ssl.md
+++ b/website/versioned_docs/version-5.x/ssl.md
@@ -1,53 +1,53 @@
---
id: ssl
-title: "Set up the SSL Certificates"
+title: 'Set up the SSL Certificates'
---
Follow these instructions to configure an SSL certificate to serve an npm registry over HTTPS.
+- Update the listen property in your `~/.config/verdaccio/config.yaml`:
-* Update the listen property in your `~/.config/verdaccio/config.yaml`:
-
-````
+```
listen: 'https://your.domain.com/'
-````
+```
Once you've updated the listen property and try to run verdaccio again, it will ask for certificates.
-* Generate your certificates
+- Generate your certificates
-````
+```
$ openssl genrsa -out /Users/user/.config/verdaccio/verdaccio-key.pem 2048
$ openssl req -new -sha256 -key /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-csr.pem
$ openssl x509 -req -in /Users/user/.config/verdaccio/verdaccio-csr.pem -signkey /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-cert.pem
- ````
+```
-* Edit your config file `/Users/user/.config/verdaccio/config.yaml` and add the following section:
+- Edit your config file `/Users/user/.config/verdaccio/config.yaml` and add the following section:
-````
+```
https:
key: /Users/user/.config/verdaccio/verdaccio-key.pem
cert: /Users/user/.config/verdaccio/verdaccio-cert.pem
ca: /Users/user/.config/verdaccio/verdaccio-csr.pem
-````
+```
Alternatively, if you have a certificate with the `server.pfx` format, you can add the following configuration section: (The passphrase is optional and only needed if your certificate is encrypted.)
-````
+```
https:
pfx: /Users/user/.config/verdaccio/server.pfx
passphrase: 'secret'
-````
+```
You can find more info on the `key`, `cert`, `ca`, `pfx`, and `passphrase` arguments in the [Node documentation](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)
-* Run `verdaccio` in your command line.
+- Run `verdaccio` in your command line.
-* Open the browser and visit `https://your.domain.com:port/`
+- Open the browser and visit `https://your.domain.com:port/`
These instructions are mostly valid under OSX and Linux; on Windows the paths will vary, but the steps are the same.
## Docker
+
If you are using the Docker image, you have to set the `VERDACCIO_PROTOCOL` environment variable to `https`, as the `listen` argument is provided in the [Dockerfile](https://github.com/verdaccio/verdaccio/blob/master/Dockerfile#L43) and thus ignored from your config file.
You can also set the `VERDACCIO_PORT` environment variable if you are using a port other than `4873`.
diff --git a/website/versioned_docs/version-5.x/uplinks.md b/website/versioned_docs/version-5.x/uplinks.md
index efe16812b..e354193f5 100644
--- a/website/versioned_docs/version-5.x/uplinks.md
+++ b/website/versioned_docs/version-5.x/uplinks.md
@@ -1,9 +1,9 @@
---
id: uplinks
-title: "Uplinks"
+title: 'Uplinks'
---
-An *uplink* is a link with an external registry that provides access to external packages.
+An _uplink_ is a link with an external registry that provides access to external packages.
![Uplinks](https://user-images.githubusercontent.com/558752/52976233-fb0e3980-33c8-11e9-8eea-5415e6018144.png)
@@ -12,7 +12,7 @@ An *uplink* is a link with an external registry that provides access to external
```yaml
uplinks:
npmjs:
- url: https://registry.npmjs.org/
+ url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
@@ -21,23 +21,24 @@ uplinks:
baduplink:
url: http://localhost:55666/
```
+
### Configuration {#configuration}
You can define mutiple uplinks and each of them must have an unique name (key). They can have the following properties:
-Property | Type | Required | Example | Support | Description | Default
---- | --- | --- | --- | --- | --- | ---
-url | string | Yes | https://registry.npmjs.org/ | all | The registry url | npmjs
-ca | string | No | ~./ssl/client.crt' | all | SSL path certificate | No default
-timeout | string | No | 100ms | all | set new timeout for the request | 30s
-maxage | string | No |10m | all | the time threshold to the cache is valid | 2m
-fail_timeout | string | No |10m | all | defines max time when a request becomes a failure | 5m
-max_fails | number | No |2 | all | limit maximun failure request | 2
-cache | boolean | No |[true,false] | >= 2.1 | cache all remote tarballs in storage | true
-auth | list | No | [see below](uplinks.md#auth-property) | >= 2.5 | assigns the header 'Authorization' [more info](http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules) | disabled
-headers | list | No | authorization: "Bearer SecretJWToken==" | all | list of custom headers for the uplink | disabled
-strict_ssl | boolean | No | [true,false] | >= 3.0 | If true, requires SSL certificates be valid. | true
-agent_options | object | No | maxSockets: 10 | >= 4.0.2 | options for the HTTP or HTTPS Agent responsible for managing uplink connection persistence and reuse [more info](https://nodejs.org/api/http.html#http_class_http_agent) | No default
+| Property | Type | Required | Example | Support | Description | Default |
+| ------------- | ------- | -------- | --------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- |
+| url | string | Yes | https://registry.npmjs.org/ | all | The registry url | npmjs |
+| ca | string | No | ~./ssl/client.crt' | all | SSL path certificate | No default |
+| timeout | string | No | 100ms | all | set new timeout for the request | 30s |
+| maxage | string | No | 10m | all | the time threshold to the cache is valid | 2m |
+| fail_timeout | string | No | 10m | all | defines max time when a request becomes a failure | 5m |
+| max_fails | number | No | 2 | all | limit maximun failure request | 2 |
+| cache | boolean | No | [true,false] | >= 2.1 | cache all remote tarballs in storage | true |
+| auth | list | No | [see below](uplinks.md#auth-property) | >= 2.5 | assigns the header 'Authorization' [more info](http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules) | disabled |
+| headers | list | No | authorization: "Bearer SecretJWToken==" | all | list of custom headers for the uplink | disabled |
+| strict_ssl | boolean | No | [true,false] | >= 3.0 | If true, requires SSL certificates be valid. | true |
+| agent_options | object | No | maxSockets: 10 | >= 4.0.2 | options for the HTTP or HTTPS Agent responsible for managing uplink connection persistence and reuse [more info](https://nodejs.org/api/http.html#http_class_http_agent) | No default |
#### Auth property {#auth-property}
@@ -73,15 +74,15 @@ uplinks:
url: https://private-registry.domain.com/registry
auth:
type: bearer
- token: "token"
+ token: 'token'
```
> Note: `token` has priority over `token_env`
### You Must know {#you-must-know}
-* Uplinks must be registries compatible with the `npm` endpoints. Eg: *verdaccio*, `sinopia@1.4.0`, *npmjs registry*, *yarn registry*, *JFrog*, *Nexus* and more.
-* Setting `cache` to false will help to save space in your hard drive. This will avoid store `tarballs` but [it will keep metadata in folders](https://github.com/verdaccio/verdaccio/issues/391).
-* Multiple uplinks might slow down the lookup of your packages. For each request an npm client makes, verdaccio makes 1 call to each configured uplink.
-* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)
-* When using the [Helm Chart](https://github.com/verdaccio/charts), you can use `secretEnvVars` to inject sensitive environment variables, which can be used to configure private uplink auth.
+- Uplinks must be registries compatible with the `npm` endpoints. Eg: _verdaccio_, `sinopia@1.4.0`, _npmjs registry_, _yarn registry_, _JFrog_, _Nexus_ and more.
+- Setting `cache` to false will help to save space in your hard drive. This will avoid store `tarballs` but [it will keep metadata in folders](https://github.com/verdaccio/verdaccio/issues/391).
+- Multiple uplinks might slow down the lookup of your packages. For each request an npm client makes, verdaccio makes 1 call to each configured uplink.
+- The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)
+- When using the [Helm Chart](https://github.com/verdaccio/charts), you can use `secretEnvVars` to inject sensitive environment variables, which can be used to configure private uplink auth.
diff --git a/website/versioned_docs/version-5.x/web.md b/website/versioned_docs/version-5.x/web.md
index 262241fc0..b2f57ced7 100644
--- a/website/versioned_docs/version-5.x/web.md
+++ b/website/versioned_docs/version-5.x/web.md
@@ -1,6 +1,6 @@
---
id: webui
-title: "Web User Interface"
+title: 'Web User Interface'
---
![Uplinks](https://user-images.githubusercontent.com/558752/52916111-fa4ba980-32db-11e9-8a64-f4e06eb920b3.png)
@@ -12,9 +12,9 @@ web:
enable: true
title: Verdaccio
logo: http://somedomain/somelogo.png
- primary_color: "#4b5e40"
+ primary_color: '#4b5e40'
gravatar: true | false
- scope: "@scope"
+ scope: '@scope'
sort_packages: asc | desc
darkMode: false
favicon: http://somedomain/favicon.ico | /path/favicon.ico
@@ -65,33 +65,32 @@ i18n:
### Configuration {#configuration}
-| Property | Type | Required | Example | Support | Description |
-| ------------- | ---------- | -------- | ------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ |
-| enable | boolean | No | true/false | all | allow to display the web interface |
-| title | string | No | Verdaccio | all | HTML head title description (if is not define set "Verdaccio" by default). |
-| gravatar | boolean | No | true | `>v4` | Gravatars will be generated under the hood if this property is enabled |
-| sort_packages | [asc,desc] | No | asc | `>v4` | By default private packages are sorted by ascending |
-| logo | string | No | `/local/path/to/my/logo.png` `http://my.logo.domain/logo.png` | all | a URI where logo is located (header logo) |
-| primary_color | string | No | "#4b5e40" | `>4` | The primary color to use throughout the UI (header, etc) |
-| scope | string | No | @myscope | `>v3.x` | If you're using this registry for a specific module scope, specify that scope to set it in the webui instructions header |
-| darkMode | boolean | No | false | `>=v4.6.0` | This mode is an special theme for those want to live in the dark side |
-| favicon | string | No | false | `>=v5.0.1` | Display a custom favicon, can be local resource or valid url |
-| rateLimit | object | No | use `userRateLimit` configuration | `>=v5.4.0` | Increase or decrease rate limit, by default is 5k request every 2 minutes, only limit web api endpoints, the CSS, JS, etcc are ingnored |
-| pkgManagers | npm, pnpm or yarn | No | npm | `>=v5.5.0` | Allow customise which package managers on the side bar and registry information dialog are visible |
-| login | boolean | No | true or false | `>=v5.5.0` | Allow disable login on the UI (also include web endpoints). |
-| scriptsBodyAfter | string[] | No | any list of strings | `>=5.0.0` | inject scripts after the tag |
-| metaScripts | string[] | No | any list of strings | `>=5.0.0` | inject scripts inside |
-| scriptsbodyBefore | string[] | No | any list of strings | `>=5.0.0` | inject scripts before the |
-| html_cache | boolean | No | true | `>=v5.9.0` | whether the html cache is enabled, default true |
-| showInfo | boolean | No | true | `>=v5.10.0` | display the info button on the header |
-| showSettings | boolean | No | true | `>=v5.10.0` | display the settings button on the header |
-| showThemeSwitch | boolean | No | true | `>=v5.10.0` | display the theme switch button on the header |
-| showFooter | boolean | No | true | `>=v5.10.0` | allow hide footer |
-| showSearch | boolean | No | true | `>=v5.10.0` | allow hide search component |
-| showDownloadTarball | boolean | No | true | `>=v5.10.0` | allow hide download button on the sidebar |
-| showRaw | boolean | No | true | `>=v5.10.0` | allow hide manifest button on the sidebar (experimental feature) |
-
+| Property | Type | Required | Example | Support | Description |
+| ------------------- | ----------------- | -------- | ------------------------------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------- |
+| enable | boolean | No | true/false | all | allow to display the web interface |
+| title | string | No | Verdaccio | all | HTML head title description (if is not define set "Verdaccio" by default). |
+| gravatar | boolean | No | true | `>v4` | Gravatars will be generated under the hood if this property is enabled |
+| sort_packages | [asc,desc] | No | asc | `>v4` | By default private packages are sorted by ascending |
+| logo | string | No | `/local/path/to/my/logo.png` `http://my.logo.domain/logo.png` | all | a URI where logo is located (header logo) |
+| primary_color | string | No | "#4b5e40" | `>4` | The primary color to use throughout the UI (header, etc) |
+| scope | string | No | @myscope | `>v3.x` | If you're using this registry for a specific module scope, specify that scope to set it in the webui instructions header |
+| darkMode | boolean | No | false | `>=v4.6.0` | This mode is an special theme for those want to live in the dark side |
+| favicon | string | No | false | `>=v5.0.1` | Display a custom favicon, can be local resource or valid url |
+| rateLimit | object | No | use `userRateLimit` configuration | `>=v5.4.0` | Increase or decrease rate limit, by default is 5k request every 2 minutes, only limit web api endpoints, the CSS, JS, etcc are ingnored |
+| pkgManagers | npm, pnpm or yarn | No | npm | `>=v5.5.0` | Allow customise which package managers on the side bar and registry information dialog are visible |
+| login | boolean | No | true or false | `>=v5.5.0` | Allow disable login on the UI (also include web endpoints). |
+| scriptsBodyAfter | string[] | No | any list of strings | `>=5.0.0` | inject scripts after the tag |
+| metaScripts | string[] | No | any list of strings | `>=5.0.0` | inject scripts inside |
+| scriptsbodyBefore | string[] | No | any list of strings | `>=5.0.0` | inject scripts before the |
+| html_cache | boolean | No | true | `>=v5.9.0` | whether the html cache is enabled, default true |
+| showInfo | boolean | No | true | `>=v5.10.0` | display the info button on the header |
+| showSettings | boolean | No | true | `>=v5.10.0` | display the settings button on the header |
+| showThemeSwitch | boolean | No | true | `>=v5.10.0` | display the theme switch button on the header |
+| showFooter | boolean | No | true | `>=v5.10.0` | allow hide footer |
+| showSearch | boolean | No | true | `>=v5.10.0` | allow hide search component |
+| showDownloadTarball | boolean | No | true | `>=v5.10.0` | allow hide download button on the sidebar |
+| showRaw | boolean | No | true | `>=v5.10.0` | allow hide manifest button on the sidebar (experimental feature) |
> The recommended logo size is `40x40` pixels.
-> The `darkMode` can be enabled via UI and is persisted in the browser local storage. If you combine `showThemeSwitch: false` with `darkMode` users will be forced to use an specific theme. Furthermore, also void `primary_color` and dark cannot be customized.
+> The `darkMode` can be enabled via UI and is persisted in the browser local storage. If you combine `showThemeSwitch: false` with `darkMode` users will be forced to use an specific theme. Furthermore, also void `primary_color` and dark cannot be customized.
diff --git a/website/versioned_docs/version-5.x/what-is-verdaccio.md b/website/versioned_docs/version-5.x/what-is-verdaccio.md
index 8d51cb1e1..221b41e21 100644
--- a/website/versioned_docs/version-5.x/what-is-verdaccio.md
+++ b/website/versioned_docs/version-5.x/what-is-verdaccio.md
@@ -1,6 +1,6 @@
---
id: what-is-verdaccio
-title: "What is Verdaccio?"
+title: 'What is Verdaccio?'
---
Verdaccio is a **lightweight private npm proxy registry** built in **Node.js**
@@ -12,9 +12,9 @@ recommended by the Open Web Application Security Project ([OWASP](https://owasp.
## What's a registry? {#whats-a-registry}
-* A registry is a repository for packages, that implements the **CommonJS Compliant Package Registry specification** for reading package's information.
-* Provide a compatible API with npm clients **(yarn/npm/pnpm)**.
-* Semantic Versioning compatible **(semver)**.
+- A registry is a repository for packages, that implements the **CommonJS Compliant Package Registry specification** for reading package's information.
+- Provide a compatible API with npm clients **(yarn/npm/pnpm)**.
+- Semantic Versioning compatible **(semver)**.
```bash
$> verdaccio
@@ -58,11 +58,11 @@ Verdaccio cache all dependencies on demand and speed up installations in local o
## In a Nutshell {#in-a-nutshell}
-* It's a web app based on Node.js
-* It's a private npm registry
-* It's a local network proxy
-* It's a Pluggable application
-* It's fairly easy to install and to use
-* We offer Docker and Kubernetes support
-* It is 100% compatible with yarn, npm and pnpm
-* Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
+- It's a web app based on Node.js
+- It's a private npm registry
+- It's a local network proxy
+- It's a Pluggable application
+- It's fairly easy to install and to use
+- We offer Docker and Kubernetes support
+- It is 100% compatible with yarn, npm and pnpm
+- Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
diff --git a/website/versioned_docs/version-5.x/who-is-using.md b/website/versioned_docs/version-5.x/who-is-using.md
index 781585f37..de76f75ec 100644
--- a/website/versioned_docs/version-5.x/who-is-using.md
+++ b/website/versioned_docs/version-5.x/who-is-using.md
@@ -1,35 +1,32 @@
---
id: who-is-using
-title: "Who is using Verdaccio?"
+title: 'Who is using Verdaccio?'
---
### As a Business {#as-a-business}
-*If you are using Verdaccio in your business and want to share your experience, let us know. We will be happy to listen to you.*
-
-* [SheetJS](https://sheetjs.com/)
-* [Satispay](https://www.satispay.com/)
+_If you are using Verdaccio in your business and want to share your experience, let us know. We will be happy to listen to you._
+- [SheetJS](https://sheetjs.com/)
+- [Satispay](https://www.satispay.com/)
### Open Source Projects {#open-source-projects}
> **Feel free to suggest other OSS are using Verdaccio.**
-* [pnpm](https://pnpm.js.org/)
-* [Storybook](https://storybook.js.org/)
-* [Mozilla Neutrino](https://neutrinojs.org/)
-* [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests)
-* [Gatsby](https://github.com/gatsbyjs/gatsby)
-* [Apollo GraphQL](https://github.com/apollographql)
-* [Uppy](https://github.com/transloadit/uppy)
-* [Aurelia Framework](https://github.com/aurelia/framework)
-* [bit](https://github.com/teambit/bit)
-* [Wix Yoshi](https://github.com/wix/yoshi)
-* [The AWS Cloud Development Kit](https://github.com/awslabs/aws-cdk)
-* [Hyperledger Caliper](https://github.com/hyperledger/caliper)
+- [pnpm](https://pnpm.js.org/)
+- [Storybook](https://storybook.js.org/)
+- [Mozilla Neutrino](https://neutrinojs.org/)
+- [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests)
+- [Gatsby](https://github.com/gatsbyjs/gatsby)
+- [Apollo GraphQL](https://github.com/apollographql)
+- [Uppy](https://github.com/transloadit/uppy)
+- [Aurelia Framework](https://github.com/aurelia/framework)
+- [bit](https://github.com/teambit/bit)
+- [Wix Yoshi](https://github.com/wix/yoshi)
+- [The AWS Cloud Development Kit](https://github.com/awslabs/aws-cdk)
+- [Hyperledger Caliper](https://github.com/hyperledger/caliper)
#### Readme Recommendations {#readme-recommendations}
-* [react-native-cli](https://github.com/react-native-community/react-native-cli/blob/master/CONTRIBUTING.md)
-
-
+- [react-native-cli](https://github.com/react-native-community/react-native-cli/blob/master/CONTRIBUTING.md)
diff --git a/website/versioned_docs/version-5.x/windows.md b/website/versioned_docs/version-5.x/windows.md
index 42b259400..0bd9f9339 100644
--- a/website/versioned_docs/version-5.x/windows.md
+++ b/website/versioned_docs/version-5.x/windows.md
@@ -1,15 +1,15 @@
---
id: windows
-title: "Installing As a Windows Service"
+title: 'Installing As a Windows Service'
---
Loosely based upon the instructions found [here](http://asysadmin.tumblr.com/post/32941224574/running-nginx-on-windows-as-a-service). I crafted the following and it provided me with a fully working verdaccio service installation:
1. Create a directory for verdaccio
- * mkdir `c:\verdaccio`
- * cd `c:\verdaccio`
+ - mkdir `c:\verdaccio`
+ - cd `c:\verdaccio`
2. Install verdaccio locally (I ran into npm issues with global installs)
- * npm install verdaccio
+ - npm install verdaccio
3. Create your `config.yaml` file in this location `(c:\verdaccio\config.yaml)`
4. Windows Service Setup
@@ -17,41 +17,39 @@ Loosely based upon the instructions found [here](http://asysadmin.tumblr.com/pos
ALTERNATIVE METHOD: (WinSW package was missing when I tried to download it)
-* Download [NSSM](https://www.nssm.cc/download/) and extract
+- Download [NSSM](https://www.nssm.cc/download/) and extract
-* Add the path that contains nssm.exe to the PATH
+- Add the path that contains nssm.exe to the PATH
-* Open an administrative command
+- Open an administrative command
-* Run nssm install verdaccio At a minimum you must fill in the Application tab Path,
-Startup directory and Arguments fields. Assuming an install with node in the system path and a
-location of c:\verdaccio the below values will work:
- * Path: `node`
- * Startup directory: `c:\verdaccio`
- * Arguments: `c:\verdaccio\node_modules\verdaccio\build\lib\cli.js -c c:\verdaccio\config.yaml`
+- Run nssm install verdaccio At a minimum you must fill in the Application tab Path,
+ Startup directory and Arguments fields. Assuming an install with node in the system path and a
+ location of c:\verdaccio the below values will work:
+ _ Path: `node`
+ _ Startup directory: `c:\verdaccio` \* Arguments: `c:\verdaccio\node_modules\verdaccio\build\lib\cli.js -c c:\verdaccio\config.yaml`
- You can adjust other service settings under other tabs as desired. When you are done, click Install service button
+ You can adjust other service settings under other tabs as desired. When you are done, click Install service button
- * Start the service sc start verdaccio
+- Start the service sc start verdaccio
## Using WinSW {#using-winsw}
-* As of 2015-10-27, WinSW is no longer available at the below location. Please follow the Using NSSM instructions above.
-* Download [WinSW](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
- * Place the executable (e.g. `winsw-1.9-bin.exe`) into this folder (`c:\verdaccio`) and rename it to `verdaccio-winsw.exe`
-* Create a configuration file in `c:\verdaccio`, named `verdaccio-winsw.xml`
-with the following configuration `xml verdaccio verdaccio verdaccio node c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml roll c:\verdaccio\ `.
-* Install your service
- * `cd c:\verdaccio`
- * `verdaccio-winsw.exe install`
-* Start your service
- * `verdaccio-winsw.exe start`
+- As of 2015-10-27, WinSW is no longer available at the below location. Please follow the Using NSSM instructions above.
+- Download [WinSW](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
+ - Place the executable (e.g. `winsw-1.9-bin.exe`) into this folder (`c:\verdaccio`) and rename it to `verdaccio-winsw.exe`
+- Create a configuration file in `c:\verdaccio`, named `verdaccio-winsw.xml`
+ with the following configuration `xml verdaccio verdaccio verdaccio node c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml roll c:\verdaccio\ `.
+- Install your service
+ - `cd c:\verdaccio`
+ - `verdaccio-winsw.exe install`
+- Start your service
+ - `verdaccio-winsw.exe start`
Some of the above config is more verbose than I had expected, it appears as though 'workingdirectory'
is ignored, but other than that, this works for me and allows my verdaccio instance to
persist between restarts of the server, and also restart itself should there be any crashes of the verdaccio process.
-
## Repositories {#repositories}
-* [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)
+- [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)
diff --git a/website/versioned_sidebars/version-5.x-sidebars.json b/website/versioned_sidebars/version-5.x-sidebars.json
index f3cc27bca..16a97d096 100644
--- a/website/versioned_sidebars/version-5.x-sidebars.json
+++ b/website/versioned_sidebars/version-5.x-sidebars.json
@@ -10,12 +10,7 @@
{
"type": "category",
"label": "Setting up Verdaccio",
- "items": [
- "cli-registry",
- "setup-npm",
- "setup-yarn",
- "setup-pnpm"
- ]
+ "items": ["cli-registry", "setup-npm", "setup-yarn", "setup-pnpm"]
},
"configuration",
"who-is-using",
@@ -30,11 +25,7 @@
{
"type": "category",
"label": "Uses Cases",
- "items": [
- "caching",
- "github-actions",
- "linking-remote-registry"
- ]
+ "items": ["caching", "github-actions", "linking-remote-registry"]
},
"articles"
]
@@ -42,25 +33,12 @@
{
"type": "category",
"label": "Features",
- "items": [
- "uplinks",
- "packages",
- "authentication",
- "notifications",
- "logger",
- "webui"
- ]
+ "items": ["uplinks", "packages", "authentication", "notifications", "logger", "webui"]
},
{
"type": "category",
"label": "Server",
- "items": [
- "server-configuration",
- "reverse-proxy",
- "ssl",
- "windows",
- "iss-server"
- ]
+ "items": ["server-configuration", "reverse-proxy", "ssl", "windows", "iss-server"]
},
{
"type": "category",
@@ -68,15 +46,15 @@
"items": [
"plugins",
"dev-plugins",
+ {
+ "type": "link",
+ "label": "Search Plugins",
+ "href": "/dev/plugins-search"
+ },
{
"type": "category",
"label": "Dev Guides",
- "items": [
- "plugin-generator",
- "plugin-auth",
- "plugin-middleware",
- "plugin-storage"
- ]
+ "items": ["plugin-generator", "plugin-auth", "plugin-middleware", "plugin-storage"]
},
"node-api"
]
@@ -90,27 +68,19 @@
{
"type": "category",
"label": "Cloud",
- "items": [
- "amazon"
- ]
+ "items": ["amazon"]
},
{
"type": "category",
"label": "Tools",
- "items": [
- "ansible",
- "puppet",
- "chef"
- ]
+ "items": ["ansible", "puppet", "chef"]
}
]
},
{
"type": "category",
"label": "Guides",
- "items": [
- "aws"
- ]
+ "items": ["aws"]
}
]
}
diff --git a/website/versions.json b/website/versions.json
index b2e70a688..e49e09acc 100644
--- a/website/versions.json
+++ b/website/versions.json
@@ -1,3 +1 @@
-[
- "5.x"
-]
+["5.x"]