mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-16 21:56:25 -05:00
chore: website scaffolding (#1843)
* chore: upload gatsby website * chore: update header * chore: add background header * chore: add ci for website * Update ci-website.yml * chore: update patch mach ci * chore: update ci settings * chore: update docker version
This commit is contained in:
parent
9946ea8bea
commit
3ad519f0c2
257 changed files with 15704 additions and 10 deletions
39
.github/workflows/ci-website.yml
vendored
Normal file
39
.github/workflows/ci-website.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
name: CI Website
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/ci-website.yml
|
||||
- 'website/**'
|
||||
jobs:
|
||||
ci:
|
||||
name: Node ${{ matrix.node_version }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node_version: [14]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Use Node ${{ matrix.node_version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node_version: ${{ matrix.node_version }}
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
yarn --frozen-lockfile
|
||||
yarn bootstrap
|
||||
- name: Lint website
|
||||
run: |
|
||||
cd website
|
||||
yarn lint
|
||||
- name: Build website
|
||||
run: |
|
||||
cd website
|
||||
yarn build
|
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -20,7 +20,7 @@ jobs:
|
|||
with:
|
||||
node_version: ${{ matrix.node_version }}
|
||||
- name: Install
|
||||
run: yarn
|
||||
run: yarn --frozen-lockfile
|
||||
- name: Bootstrap Lerna
|
||||
run: yarn bootstrap
|
||||
- name: Lint
|
||||
|
|
15
.github/workflows/docker-publish-pre-check.yml
vendored
15
.github/workflows/docker-publish-pre-check.yml
vendored
|
@ -1,6 +1,19 @@
|
|||
name: Docker & Publish Pre-check
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'packages/**'
|
||||
- 'docker-bin/**'
|
||||
- 'package.json'
|
||||
- 'lerna.json'
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/docker-publish-pre-check.yml
|
||||
- 'packages/**'
|
||||
- 'docker-bin/**'
|
||||
- 'package.json'
|
||||
- 'lerna.json'
|
||||
|
||||
jobs:
|
||||
testDocker:
|
||||
|
|
11
.github/workflows/docker-publish.yml
vendored
11
.github/workflows/docker-publish.yml
vendored
|
@ -1,6 +1,13 @@
|
|||
name: Publish docker image
|
||||
name: Docker publish to GitHub registry
|
||||
|
||||
on: [push]
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- .github/workflows/docker-publish.yml
|
||||
- 'packages/**'
|
||||
- 'docker-bin/**'
|
||||
- 'package.json'
|
||||
- 'lerna.json'
|
||||
|
||||
jobs:
|
||||
testDocker:
|
||||
|
|
2
.github/workflows/registry.yml
vendored
2
.github/workflows/registry.yml
vendored
|
@ -2,7 +2,7 @@ name: Test local registry for js vulnerabilities
|
|||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 */4 1 * *'
|
||||
- cron: '0 4 * * 4'
|
||||
jobs:
|
||||
security:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
10
.github/workflows/release-canary.yml
vendored
10
.github/workflows/release-canary.yml
vendored
|
@ -1,6 +1,12 @@
|
|||
name: Canary Release to Verdaccio
|
||||
|
||||
on: [push]
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/release-canary.yml
|
||||
- 'packages/**'
|
||||
- 'package.json'
|
||||
- 'lerna.json'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
|
@ -13,7 +19,7 @@ jobs:
|
|||
with:
|
||||
node_version: 13
|
||||
- name: Install
|
||||
run: yarn
|
||||
run: yarn --frozen-lockfile
|
||||
- name: Clean
|
||||
run: yarn clean
|
||||
- name: Lint
|
||||
|
|
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -25,3 +25,9 @@ coverage/
|
|||
# Compiled script
|
||||
packages/partials
|
||||
tsconfig.tsbuildinfo
|
||||
|
||||
|
||||
# website
|
||||
|
||||
website/public
|
||||
website/.cache
|
||||
|
|
1
index.js
1
index.js
|
@ -1 +0,0 @@
|
|||
export {default as startVerdaccio} from './build/index';
|
|
@ -10,7 +10,8 @@
|
|||
"homepage": "https://verdaccio.org",
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
"packages/*",
|
||||
"website"
|
||||
],
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
|
@ -74,7 +75,10 @@
|
|||
"release:publish-prerelease": "lerna publish from-git --pre-dist-tag next",
|
||||
"lint": "eslint \"packages/**/@(src|tests)/**\"",
|
||||
"test": "lerna run test --concurrency 1",
|
||||
"test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests"
|
||||
"test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests",
|
||||
"website:lint": "cd website && yarn lint",
|
||||
"website:develop": "cd website && yarn develop",
|
||||
"website:build": "cd website && yarn build"
|
||||
},
|
||||
"license": "MIT",
|
||||
"commitlint": {
|
||||
|
|
12
website/.babelrc
Normal file
12
website/.babelrc
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"presets": [
|
||||
[
|
||||
"babel-preset-gatsby",
|
||||
{
|
||||
"targets": {
|
||||
"browsers": [">0.25%", "not dead"]
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
11
website/.eslintignore
Normal file
11
website/.eslintignore
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Config files
|
||||
/gatsby-*.js
|
||||
|
||||
# Builded files
|
||||
/.cache/
|
||||
/public/
|
||||
/src/dictionaries/
|
||||
/crowdin/
|
||||
|
||||
# Node.js modules
|
||||
/node_modules/
|
40
website/.eslintrc
Normal file
40
website/.eslintrc
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"extends": [
|
||||
"@verdaccio",
|
||||
"plugin:react/recommended",
|
||||
"plugin:jest/recommended",
|
||||
"plugin:prettier/recommended",
|
||||
"plugin:verdaccio/recommended",
|
||||
"plugin:jsx-a11y/recommended",
|
||||
"plugin:import/typescript"
|
||||
],
|
||||
"plugins": [
|
||||
"react",
|
||||
"jest",
|
||||
"prettier",
|
||||
"verdaccio",
|
||||
"jsx-a11y",
|
||||
"react-hooks",
|
||||
"import"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"allowImportExportEverywhere": true
|
||||
},
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"rules": {
|
||||
"react/prop-types": 0
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
},
|
||||
"import/resolver": {
|
||||
"node": {
|
||||
"extensions": [".js", ".jsx", ".ts", ".tsx"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
website/.lisanrc
Normal file
7
website/.lisanrc
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"compile": {
|
||||
"inputDir": "crowdin/master/website/translations",
|
||||
"outputDir": "src/dictionaries",
|
||||
"returnArray": true
|
||||
}
|
||||
}
|
8
website/.prettierignore
Normal file
8
website/.prettierignore
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Builded files
|
||||
/.cache/
|
||||
/public/
|
||||
/crowdin/
|
||||
/src/dictionaries/
|
||||
|
||||
# Node.js modules
|
||||
/node_modules/
|
12
website/.prettierrc.json
Normal file
12
website/.prettierrc.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"endOfLine": "auto",
|
||||
"useTabs": false,
|
||||
"printWidth": 180,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"bracketSpacing": true,
|
||||
"jsxBracketSameLine": true,
|
||||
"trailingComma": "es5",
|
||||
"semi": true,
|
||||
"parser": "typescript"
|
||||
}
|
19
website/Dockerfile
Normal file
19
website/Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
|||
FROM node:alpine
|
||||
|
||||
# Also exposing VSCode debug ports
|
||||
EXPOSE 8000 9929 9230
|
||||
|
||||
RUN \
|
||||
apk add --no-cache python make g++ && \
|
||||
apk add vips-dev fftw-dev --update-cache \
|
||||
--repository http://dl-3.alpinelinux.org/alpine/edge/community \
|
||||
--repository http://dl-3.alpinelinux.org/alpine/edge/main \
|
||||
&& rm -fR /var/cache/apk/*
|
||||
|
||||
RUN npm install -g gatsby-cli
|
||||
|
||||
WORKDIR /app
|
||||
COPY ./package.json .
|
||||
RUN yarn install && yarn cache clean
|
||||
COPY . .
|
||||
CMD ["yarn", "develop", "-H", "0.0.0.0" ]
|
21
website/LICENSE
Normal file
21
website/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 Ramzan Chasygov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
29
website/README.md
Normal file
29
website/README.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
## Verdaccio Website
|
||||
|
||||
Website build with Gatsby.js
|
||||
|
||||
### Development
|
||||
|
||||
```
|
||||
nvm install
|
||||
yarn install
|
||||
```
|
||||
|
||||
Run locally
|
||||
|
||||
```
|
||||
yarn develop
|
||||
```
|
||||
|
||||
Run [http://localhost:8000/](http://localhost:8000/)
|
||||
GraphQL [http://localhost:8000/___graphql](http://localhost:8000/___graphql)
|
||||
|
||||
or build locally
|
||||
|
||||
```
|
||||
yarn clean && yarn build && yarn serve
|
||||
```
|
||||
|
||||
#### Deployment
|
||||
|
||||
Website is deployed on push on master at [https://alpha.verdaccio.dev/](https://alpha.verdaccio.dev/)
|
1
website/crowdin/README.md
Normal file
1
website/crowdin/README.md
Normal file
|
@ -0,0 +1 @@
|
|||
this folder is not meant to be commited, just for testing purpose
|
562
website/crowdin/master/website/i18n/cs-CZ.json
Normal file
562
website/crowdin/master/website/i18n/cs-CZ.json
Normal file
|
@ -0,0 +1,562 @@
|
|||
{
|
||||
"_comment": "Tento soubor je automaticky generován pomocí write-translations.js",
|
||||
"localized-strings": {
|
||||
"next": "Další",
|
||||
"previous": "Předchozí",
|
||||
"tagline": "Jednoduchý soukromý npm proxy registr",
|
||||
"docs": {
|
||||
"amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"articles": {
|
||||
"title": "Články"
|
||||
},
|
||||
"authentification": {
|
||||
"title": "Autentizace"
|
||||
},
|
||||
"azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"best": {
|
||||
"title": "Osvědčené postupy"
|
||||
},
|
||||
"build": {
|
||||
"title": "build"
|
||||
},
|
||||
"caching": {
|
||||
"title": "Strategie ukládání do mezipaměti"
|
||||
},
|
||||
"chef": {
|
||||
"title": "Chef Cookbook"
|
||||
},
|
||||
"ci": {
|
||||
"title": "Continuous Integration"
|
||||
},
|
||||
"cli": {
|
||||
"title": "Nástroj příkazové řádky"
|
||||
},
|
||||
"configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"e2e": {
|
||||
"title": "End to End testing"
|
||||
},
|
||||
"github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"iss-server": {
|
||||
"title": "Instalace na IIS serveru"
|
||||
},
|
||||
"installation": {
|
||||
"title": "Installation"
|
||||
},
|
||||
"kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"logger": {
|
||||
"title": "Logger"
|
||||
},
|
||||
"logo": {
|
||||
"title": "Logotyp"
|
||||
},
|
||||
"node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Upozornění"
|
||||
},
|
||||
"packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"protect-your-dependencies": {
|
||||
"title": "Protecting packages"
|
||||
},
|
||||
"puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"repositories": {
|
||||
"title": "Source Code"
|
||||
},
|
||||
"reverse-proxy": {
|
||||
"title": "Reverse Proxy Setup"
|
||||
},
|
||||
"security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"server-configuration": {
|
||||
"title": "Server Configuration"
|
||||
},
|
||||
"ssl": {
|
||||
"title": "Nastavení SSL certifikátu"
|
||||
},
|
||||
"talks": {
|
||||
"title": "Rozhovory"
|
||||
},
|
||||
"test": {
|
||||
"title": "test"
|
||||
},
|
||||
"uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"what-is-verdaccio": {
|
||||
"title": "Co je Verdaccio?"
|
||||
},
|
||||
"who-is-using": {
|
||||
"title": "Kdo používá Verdaccio?"
|
||||
},
|
||||
"windows": {
|
||||
"title": "Instalovat jako Windows službu"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-authentification": {
|
||||
"title": "Autentizace"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-build": {
|
||||
"title": "Build the source code"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-chef": {
|
||||
"title": "Chef Cookbook"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ci": {
|
||||
"title": "Continuous Integration"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-cli": {
|
||||
"title": "Nástroj příkazové řádky"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-contributing": {
|
||||
"title": "Contributing Verdaccio"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-iss-server": {
|
||||
"title": "Instalace na IIS serveru"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-installation": {
|
||||
"title": "Installation"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logger": {
|
||||
"title": "Logger"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logo": {
|
||||
"title": "Verdaccio Logotype"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-notifications": {
|
||||
"title": "Upozornění"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-protect-your-dependencies": {
|
||||
"title": "Protecting packages"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-repositories": {
|
||||
"title": "Source Code"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-reverse-proxy": {
|
||||
"title": "Reverse Proxy Setup"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-server-configuration": {
|
||||
"title": "Server Configuration"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ssl": {
|
||||
"title": "Nastavení SSL certifikátu"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-test": {
|
||||
"title": "Unit Testing"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-use-cases": {
|
||||
"title": "Use Cases"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-what-is-verdaccio": {
|
||||
"title": "Co je Verdaccio?"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-windows": {
|
||||
"title": "Instalovat jako Windows službu"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-cli": {
|
||||
"title": "Nástroj příkazové řádky"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-what-is-verdaccio": {
|
||||
"title": "Co je Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-best": {
|
||||
"title": "Osvědčené postupy"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-caching": {
|
||||
"title": "Strategie ukládání do mezipaměti"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-e2e": {
|
||||
"title": "End to end testing"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-iss-server": {
|
||||
"title": "Instalace na IIS serveru"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-linking-registries": {
|
||||
"title": "Linking Regiestries"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-logo": {
|
||||
"title": "Verdaccio Logotype"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-notifications": {
|
||||
"title": "Upozornění"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-scopes": {
|
||||
"title": "Understanding Scopes"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-what-is-verdaccio": {
|
||||
"title": "Co je Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-articles": {
|
||||
"title": "Články"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-authentification": {
|
||||
"title": "Autentizace"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-best": {
|
||||
"title": "Osvědčené postupy"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-caching": {
|
||||
"title": "Strategie ukládání do mezipaměti"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-e2e": {
|
||||
"title": "End to End testing"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-installation": {
|
||||
"title": "Installation"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-talks": {
|
||||
"title": "Rozhovory"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-who-is-using": {
|
||||
"title": "Kdo používá Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-protect-your-dependencies": {
|
||||
"title": "Protecting packages"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-talks": {
|
||||
"title": "Rozhovory"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0-beta.0/version-4.0.0-beta.0-who-is-using": {
|
||||
"title": "Kdo používá Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-articles": {
|
||||
"title": "Články"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-best": {
|
||||
"title": "Osvědčené postupy"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-caching": {
|
||||
"title": "Strategie ukládání do mezipaměti"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ci": {
|
||||
"title": "Continuous Integration"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ssl": {
|
||||
"title": "Nastavení SSL certifikátu"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-who-is-using": {
|
||||
"title": "Kdo používá Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-installation": {
|
||||
"title": "Installation"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-articles": {
|
||||
"title": "Články"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-installation": {
|
||||
"title": "Installation"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-logo": {
|
||||
"title": "Logotyp"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-what-is-verdaccio": {
|
||||
"title": "Co je Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-configuration": {
|
||||
"title": "Konfigurační soubor"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-reverse-proxy": {
|
||||
"title": "Reverse Proxy Setup"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-cli": {
|
||||
"title": "Nástroj příkazové řádky"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-talks": {
|
||||
"title": "Rozhovory"
|
||||
},
|
||||
"version-4.0.1/version-4.0.1-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-caching": {
|
||||
"title": "Strategie ukládání do mezipaměti"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-notifications": {
|
||||
"title": "Upozornění"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-reverse-proxy": {
|
||||
"title": "Reverse Proxy Setup"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-ssl": {
|
||||
"title": "Nastavení SSL certifikátu"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-webui": {
|
||||
"title": "Webové uživatelské rozhraní"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-cli": {
|
||||
"title": "Nástroj příkazové řádky"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-dev-plugins": {
|
||||
"title": "Developing Plugins"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-packages": {
|
||||
"title": "Přístup k balíčkům"
|
||||
},
|
||||
"version-4.2.1/version-4.2.1-talks": {
|
||||
"title": "Rozhovory"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"Docs": "Dokumentace",
|
||||
"Blog": "Blog",
|
||||
"Twitter": "Twitter",
|
||||
"Help": "Pomoc",
|
||||
"GitHub": "GitHub",
|
||||
"Team": "Tým",
|
||||
"Donate": "Podpořit"
|
||||
},
|
||||
"categories": {
|
||||
"Introduction": "Úvod",
|
||||
"Features": "Vlastnosti",
|
||||
"Server": "Server",
|
||||
"Development": "Vývoj",
|
||||
"DevOps": "DevOps",
|
||||
"Guides": "Návody",
|
||||
"Configuration": "Konfigurace",
|
||||
"Plugins": "Plugins"
|
||||
}
|
||||
},
|
||||
"pages-strings": {
|
||||
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "Zjistěte více pomocí [dokumentace na těchto stránkách.](/docs/en/installation.html)",
|
||||
"Browse Docs|no description given": "Procházet dokumentaci",
|
||||
"Ask questions about the documentation and project|no description given": "Položit otázku o dokumentaci nebo projektu",
|
||||
"Join the community|no description given": "Přidejte se ke komunitě",
|
||||
"Find out what's new with this project|no description given": "Zjistěte, co je nového v tomto projektu",
|
||||
"Stay up to date|no description given": "Zůstaňte aktuální",
|
||||
"Need help?|no description given": "Potřebujete pomoci?",
|
||||
"This project is maintained by a dedicated group of people.|statement made to reader": "Tento projekt je spravován oddanou skupinou lidí.",
|
||||
"Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)|no description given": "Zjistěte více o Verdacciu pomocí [dokumentace na těchto stránkách.](/docs/en/installation.html)",
|
||||
"You can follow and contact us on|no description given": "Můžete nás sledovat a kontaktovat na",
|
||||
"and also you can chat with the Verdaccio community at|no description given": "a také můžete chatovat s Verdaccio komunitou na",
|
||||
"If the documentation is not enough help, you can try browsing into our|no description given": "Pokud v dokumentaci není informace, kterou hledáte, můžete se zkusit podívat na naše",
|
||||
"This project is maintained by the Verdaccio community.|no description given": "Tento projekt je spravován komunitou Verdaccio.",
|
||||
"Get Started|no description given": "Začínáme",
|
||||
"Contribute|no description given": "Přispět",
|
||||
"That’s it ! Enjoy your private package manager.|no description given": "To je vše! Užijte si svůj soukromý manažer balíčků.",
|
||||
"Many great developers are already enjoying Verdaccio, join the community!|no description given": "Mnoho skvělých vývojářů se již těší z Verdaccio, připojte se ke komunitě!",
|
||||
"**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.|no description given": "**npm**, **yarn** a **pnpm** jsou součástí každého vývojového pracovního postupu, snažíme se dohnat nejnovější aktualizace.",
|
||||
"The most popular npm clients are supported|no description given": "Všechny nejoblíbenější npm klienti jsou podporováni",
|
||||
"We have an official **Docker** image ready to use|no description given": "Máme oficiální **Docker** obraz připravený k použití",
|
||||
"and **Kubernetes Helm** support for easy deployment|no description given": "a podporu **Kubernetes Help* pro jednoduché nasazení",
|
||||
"Making the DevOps work easy|no description given": "Usnadňujeme práci pro DevOps",
|
||||
"Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.|no description given": "Verdaccio je založený na doplňcích, s možnostmi ověřování, middlewaru a ukládání. Stačí si jeden vybrat nebo si vytvořit svůj vlastní.",
|
||||
"Plugin Support|no description given": "Podpora doplňků",
|
||||
"Who's Using This?|no description given": "Kdo ho využívá?",
|
||||
"This project is sponsored by these awesome users|no description given": "Tento projekt je sponzorován těmito úžasnými uživateli",
|
||||
"and used by many more, including|no description given": "a používán mnoha dalšími, včetně",
|
||||
"More|no description given": "Více",
|
||||
"Users|no description given": "Uživatelé",
|
||||
"Verdaccio is sponsored by these awesome folks...|no description given": "Verdaccio je sponzorováno těmito úžasnými lidičkami...",
|
||||
"and used by many others, including:|no description given": "a používán mnoha dalšími, včetně:",
|
||||
"Are you using this project? Do not be shy and add your company/project logo.|no description given": "Používáte tento projekt? Nestyďte se a přidejte logo své firmy / projektu.",
|
||||
"Add your company|no description given": "Přidejte vaši firmu",
|
||||
"Help Translate|recruit community translators for your project": "Pomozte s překladem",
|
||||
"Edit this Doc|recruitment message asking to edit the doc source": "Upravit",
|
||||
"Translate this Doc|recruitment message asking to translate the docs": "Přeložte"
|
||||
}
|
||||
}
|
562
website/crowdin/master/website/i18n/es-ES.json
Normal file
562
website/crowdin/master/website/i18n/es-ES.json
Normal file
|
@ -0,0 +1,562 @@
|
|||
{
|
||||
"_comment": "Este archivo es auto generado por write-translations.js",
|
||||
"localized-strings": {
|
||||
"next": "Siguiente",
|
||||
"previous": "Anterior",
|
||||
"tagline": "Verdaccio · A lightweight private npm proxy registry",
|
||||
"docs": {
|
||||
"amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"authentification": {
|
||||
"title": "Autenticación"
|
||||
},
|
||||
"azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"build": {
|
||||
"title": "build"
|
||||
},
|
||||
"caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"chef": {
|
||||
"title": "Libro de Cocina del Chef"
|
||||
},
|
||||
"ci": {
|
||||
"title": "Integración Continua"
|
||||
},
|
||||
"cli": {
|
||||
"title": "Herramienta de Linea de Comando"
|
||||
},
|
||||
"configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"e2e": {
|
||||
"title": "Pruebas End to End"
|
||||
},
|
||||
"github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"iss-server": {
|
||||
"title": "Instalación en servidor IIS"
|
||||
},
|
||||
"installation": {
|
||||
"title": "Instalación"
|
||||
},
|
||||
"kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"logger": {
|
||||
"title": "Registrador"
|
||||
},
|
||||
"logo": {
|
||||
"title": "Logotype"
|
||||
},
|
||||
"node-api": {
|
||||
"title": "Nodo API"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notificaciones"
|
||||
},
|
||||
"packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"protect-your-dependencies": {
|
||||
"title": "Protegiendo paquetes"
|
||||
},
|
||||
"puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"repositories": {
|
||||
"title": "Código Fuente"
|
||||
},
|
||||
"reverse-proxy": {
|
||||
"title": "Configuración de Proxy Inverso"
|
||||
},
|
||||
"security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"server-configuration": {
|
||||
"title": "Configuración del Servidor"
|
||||
},
|
||||
"ssl": {
|
||||
"title": "Configurar los Certificados SSL"
|
||||
},
|
||||
"talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"test": {
|
||||
"title": "test"
|
||||
},
|
||||
"uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"what-is-verdaccio": {
|
||||
"title": "Qué es Verdaccio?"
|
||||
},
|
||||
"who-is-using": {
|
||||
"title": "Quien usa Verdaccio?"
|
||||
},
|
||||
"windows": {
|
||||
"title": "Instalación como un Servicio de Windows"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-authentification": {
|
||||
"title": "Autenticación"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-build": {
|
||||
"title": "Construye el proyecto"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-chef": {
|
||||
"title": "Libro de Cocina del Chef"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ci": {
|
||||
"title": "Integración Continua"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-cli": {
|
||||
"title": "Herramienta de Linea de Comando"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-contributing": {
|
||||
"title": "Contribuyendo en Verdaccio"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-iss-server": {
|
||||
"title": "Instalación en servidor IIS"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-installation": {
|
||||
"title": "Instalación"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logger": {
|
||||
"title": "Registrador"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logo": {
|
||||
"title": "Logotipo de Verdaccio"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-node-api": {
|
||||
"title": "Nodo API"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-notifications": {
|
||||
"title": "Notificaciones"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-protect-your-dependencies": {
|
||||
"title": "Protegiendo paquetes"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-repositories": {
|
||||
"title": "Código Fuente"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-reverse-proxy": {
|
||||
"title": "Configuración de Proxy Inverso"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-server-configuration": {
|
||||
"title": "Configuración del Servidor"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ssl": {
|
||||
"title": "Configurar los Certificados SSL"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-test": {
|
||||
"title": "Tests Unitarios"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-use-cases": {
|
||||
"title": "Casos de Usos"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-what-is-verdaccio": {
|
||||
"title": "Qué es Verdaccio?"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-windows": {
|
||||
"title": "Instalación como un Servicio de Windows"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-cli": {
|
||||
"title": "Herramienta de Linea de Comando"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-what-is-verdaccio": {
|
||||
"title": "Qué es Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-e2e": {
|
||||
"title": "End to end testing"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-iss-server": {
|
||||
"title": "Instalación en servidor IIS"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-linking-registries": {
|
||||
"title": "Linking Regiestries"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-logo": {
|
||||
"title": "Logotipo de Verdaccio"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-node-api": {
|
||||
"title": "Nodo API"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-notifications": {
|
||||
"title": "Notificaciones"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-scopes": {
|
||||
"title": "Understanding Scopes"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-what-is-verdaccio": {
|
||||
"title": "Qué es Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-authentification": {
|
||||
"title": "Autenticación"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-e2e": {
|
||||
"title": "Pruebas End to End"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-installation": {
|
||||
"title": "Instalación"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-who-is-using": {
|
||||
"title": "Quien usa Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-protect-your-dependencies": {
|
||||
"title": "Protegiendo paquetes"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0-beta.0/version-4.0.0-beta.0-who-is-using": {
|
||||
"title": "Quien usa Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ci": {
|
||||
"title": "Integración Continua"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ssl": {
|
||||
"title": "Configurar los Certificados SSL"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-who-is-using": {
|
||||
"title": "Quien usa Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-installation": {
|
||||
"title": "Instalación"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-installation": {
|
||||
"title": "Instalación"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-logo": {
|
||||
"title": "Logotype"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-what-is-verdaccio": {
|
||||
"title": "Qué es Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-configuration": {
|
||||
"title": "Archivo de Configuración"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-reverse-proxy": {
|
||||
"title": "Configuración de Proxy Inverso"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-cli": {
|
||||
"title": "Herramienta de Linea de Comando"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-plugins": {
|
||||
"title": "Plugins"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.1/version-4.0.1-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-notifications": {
|
||||
"title": "Notificaciones"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-reverse-proxy": {
|
||||
"title": "Configuración de Proxy Inverso"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-ssl": {
|
||||
"title": "Configurar los Certificados SSL"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-uplinks": {
|
||||
"title": "Uplinks"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-webui": {
|
||||
"title": "Interfaz Web de Usuario"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-cli": {
|
||||
"title": "Herramienta de Linea de Comando"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-dev-plugins": {
|
||||
"title": "Extensiones en Desarrollo"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-packages": {
|
||||
"title": "Acceso a Paquetes"
|
||||
},
|
||||
"version-4.2.1/version-4.2.1-talks": {
|
||||
"title": "Talks"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"Docs": "Docs",
|
||||
"Blog": "Blog",
|
||||
"Twitter": "Twitter",
|
||||
"Help": "Help",
|
||||
"GitHub": "GitHub",
|
||||
"Team": "Team",
|
||||
"Donate": "Donate"
|
||||
},
|
||||
"categories": {
|
||||
"Introduction": "Introduction",
|
||||
"Features": "Features",
|
||||
"Server": "Server",
|
||||
"Development": "Development",
|
||||
"DevOps": "DevOps",
|
||||
"Guides": "Guides",
|
||||
"Configuration": "Configuración",
|
||||
"Plugins": "Plugins"
|
||||
}
|
||||
},
|
||||
"pages-strings": {
|
||||
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "Aprende mas leyendo la [documentación en este sitio.](/docs/es-Es/installation.html)",
|
||||
"Browse Docs|no description given": "Navegar Documentación",
|
||||
"Ask questions about the documentation and project|no description given": "Haz preguntas sobre la documentación y el proyecto",
|
||||
"Join the community|no description given": "Únete a la comunidad",
|
||||
"Find out what's new with this project|no description given": "Entérate que hay de nuevo en este proyecto",
|
||||
"Stay up to date|no description given": "Mantente actualizado",
|
||||
"Need help?|no description given": "Necesitas ayuda?",
|
||||
"This project is maintained by a dedicated group of people.|statement made to reader": "Este proyecto es mantenido por un grupo de personas dedicadas.",
|
||||
"Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)|no description given": "Aprenda mucho mas sobre Verdaccio usando la [documentación en este sitio.](/docs/en/installation.html)",
|
||||
"You can follow and contact us on|no description given": "Puedes seguirnos o contactarnos en",
|
||||
"and also you can chat with the Verdaccio community at|no description given": "y también puedes hablar con nuestra comunidad en",
|
||||
"If the documentation is not enough help, you can try browsing into our|no description given": "Si la documentación no ofrece demasiada ayuda, puedes tratar de navegar en nuestra",
|
||||
"This project is maintained by the Verdaccio community.|no description given": "Este proyecto es mantenido por la comunidad de Verdaccio.",
|
||||
"Get Started|no description given": "Empezar",
|
||||
"Contribute|no description given": "Contribuye",
|
||||
"That’s it ! Enjoy your private package manager.|no description given": "Eso es todo ! Disfruta tu registro privado.",
|
||||
"Many great developers are already enjoying Verdaccio, join the community!|no description given": "Muchos grandes desarrolladores ya están disfrutando de Verdaccio, ¡Únete a la comunidad!",
|
||||
"**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.|no description given": "**npm**, **yarn** y **pnpm** son parte del ambiente de desarrollo e intentamos mantenernos al día con las últimas actualizaciones.",
|
||||
"The most popular npm clients are supported|no description given": "Los clientes *npm* mas populares son compatibles",
|
||||
"We have an official **Docker** image ready to use|no description given": "Ofrecemos una imagen oficial en **Docker** lista para usar",
|
||||
"and **Kubernetes Helm** support for easy deployment|no description given": "y soporte de **Kubernetes Helm** para fácil despliegue",
|
||||
"Making the DevOps work easy|no description given": "Facilitando el trabajo de los DevOps",
|
||||
"Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.|no description given": "Verdaccio esta basado en extensiones, autenticación, soporte para *middleware* y almacenamiento. Solo elige uno o crea el tuyo propio.",
|
||||
"Plugin Support|no description given": "Soporte de Extensiones",
|
||||
"Who's Using This?|no description given": "Quién está usando esto?",
|
||||
"This project is sponsored by these awesome users|no description given": "This project is sponsored by these awesome users",
|
||||
"and used by many more, including|no description given": "and used by many more, including",
|
||||
"More|no description given": "Más",
|
||||
"Users|no description given": "Usuarios",
|
||||
"Verdaccio is sponsored by these awesome folks...|no description given": "Verdaccio is sponsored by these awesome folks...",
|
||||
"and used by many others, including:|no description given": "and used by many others, including:",
|
||||
"Are you using this project? Do not be shy and add your company/project logo.|no description given": "Estas usando este proyecto? No tengas vergüenza y agrega el logotipo de tu compañia/proyecto.",
|
||||
"Add your company|no description given": "Agrega tu compañia",
|
||||
"Help Translate|recruit community translators for your project": "Ayuda con traducciones",
|
||||
"Edit this Doc|recruitment message asking to edit the doc source": "Editar",
|
||||
"Translate this Doc|recruitment message asking to translate the docs": "Traducir"
|
||||
}
|
||||
}
|
562
website/crowdin/master/website/i18n/zh-CN.json
Normal file
562
website/crowdin/master/website/i18n/zh-CN.json
Normal file
|
@ -0,0 +1,562 @@
|
|||
{
|
||||
"_comment": "此文件由 write-translations.js 自动生成",
|
||||
"localized-strings": {
|
||||
"next": "下一个",
|
||||
"previous": "上一个",
|
||||
"tagline": "Verdaccio · 一个轻量的私有npm proxy registry",
|
||||
"docs": {
|
||||
"amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"authentification": {
|
||||
"title": "认证"
|
||||
},
|
||||
"azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"build": {
|
||||
"title": "创建"
|
||||
},
|
||||
"caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"chef": {
|
||||
"title": "Chef Cookbook"
|
||||
},
|
||||
"ci": {
|
||||
"title": "持续集成"
|
||||
},
|
||||
"cli": {
|
||||
"title": "命令行工具"
|
||||
},
|
||||
"configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"e2e": {
|
||||
"title": "End to End testing"
|
||||
},
|
||||
"github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"iss-server": {
|
||||
"title": "IIS server上进行安装"
|
||||
},
|
||||
"installation": {
|
||||
"title": "安装"
|
||||
},
|
||||
"kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"logger": {
|
||||
"title": "记录器"
|
||||
},
|
||||
"logo": {
|
||||
"title": "Logotype"
|
||||
},
|
||||
"node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "通知"
|
||||
},
|
||||
"packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"plugins": {
|
||||
"title": "插件"
|
||||
},
|
||||
"protect-your-dependencies": {
|
||||
"title": "保护包"
|
||||
},
|
||||
"puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"repositories": {
|
||||
"title": "源代码"
|
||||
},
|
||||
"reverse-proxy": {
|
||||
"title": "逆向代理服务器设置"
|
||||
},
|
||||
"security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"server-configuration": {
|
||||
"title": "服务器配置"
|
||||
},
|
||||
"ssl": {
|
||||
"title": "设置SSL 证书"
|
||||
},
|
||||
"talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"test": {
|
||||
"title": "test"
|
||||
},
|
||||
"uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"what-is-verdaccio": {
|
||||
"title": "Verdaccio是什么?"
|
||||
},
|
||||
"who-is-using": {
|
||||
"title": "谁在使用 Verdaccio?"
|
||||
},
|
||||
"windows": {
|
||||
"title": "作为 Windows 服务安装"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ansible": {
|
||||
"title": "Ansible"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-authentification": {
|
||||
"title": "认证"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-build": {
|
||||
"title": "创建源代码"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-chef": {
|
||||
"title": "Chef Cookbook"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ci": {
|
||||
"title": "持续集成"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-cli": {
|
||||
"title": "命令行工具"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-contributing": {
|
||||
"title": "参与Verdaccio贡献"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-iss-server": {
|
||||
"title": "IIS server上进行安装"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-installation": {
|
||||
"title": "安装"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logger": {
|
||||
"title": "记录器"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-logo": {
|
||||
"title": "Verdaccio 标识"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-notifications": {
|
||||
"title": "通知"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-plugins": {
|
||||
"title": "插件"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-protect-your-dependencies": {
|
||||
"title": "保护包"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-puppet": {
|
||||
"title": "Puppet"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-repositories": {
|
||||
"title": "源代码"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-reverse-proxy": {
|
||||
"title": "逆向代理服务器设置"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-server-configuration": {
|
||||
"title": "服务器配置"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-ssl": {
|
||||
"title": "设置SSL 证书"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-test": {
|
||||
"title": "单元测试"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-use-cases": {
|
||||
"title": "使用案例"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-what-is-verdaccio": {
|
||||
"title": "Verdaccio是什么?"
|
||||
},
|
||||
"version-3.8.6/version-3.8.6-windows": {
|
||||
"title": "作为 Windows 服务安装"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-cli": {
|
||||
"title": "命令行工具"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-4.0.0-alpha.3/version-4.0.0-alpha.3-what-is-verdaccio": {
|
||||
"title": "Verdaccio是什么?"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-azure": {
|
||||
"title": "Windows Azure"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-e2e": {
|
||||
"title": "End to end testing"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-google-cloud": {
|
||||
"title": "Google Cloud"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-iss-server": {
|
||||
"title": "IIS server上进行安装"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-linking-registries": {
|
||||
"title": "Linking Regiestries"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-logo": {
|
||||
"title": "Verdaccio 标识"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-node-api": {
|
||||
"title": "Node API"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-notifications": {
|
||||
"title": "通知"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-scopes": {
|
||||
"title": "Understanding Scopes"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.0.0-alpha.4/version-4.0.0-alpha.4-what-is-verdaccio": {
|
||||
"title": "Verdaccio是什么?"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-authentification": {
|
||||
"title": "认证"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-e2e": {
|
||||
"title": "End to End testing"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-installation": {
|
||||
"title": "安装"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.0.0-alpha.5/version-4.0.0-alpha.5-who-is-using": {
|
||||
"title": "谁在使用 Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-amazon": {
|
||||
"title": "Amazon Web Services"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-protect-your-dependencies": {
|
||||
"title": "保护包"
|
||||
},
|
||||
"version-4.0.0-alpha.6/version-4.0.0-alpha.6-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.0-alpha.7/version-4.0.0-alpha.7-plugins": {
|
||||
"title": "插件"
|
||||
},
|
||||
"version-4.0.0-beta.0/version-4.0.0-beta.0-who-is-using": {
|
||||
"title": "谁在使用 Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-best": {
|
||||
"title": "Best Practices"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ci": {
|
||||
"title": "持续集成"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-plugins": {
|
||||
"title": "插件"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-ssl": {
|
||||
"title": "设置SSL 证书"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.0.0-beta.10/version-4.0.0-beta.10-who-is-using": {
|
||||
"title": "谁在使用 Verdaccio?"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-installation": {
|
||||
"title": "安装"
|
||||
},
|
||||
"version-4.0.0-beta.2/version-4.0.0-beta.2-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-articles": {
|
||||
"title": "Articles"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-installation": {
|
||||
"title": "安装"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-logo": {
|
||||
"title": "Logotype"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.0.0-beta.5/version-4.0.0-beta.5-what-is-verdaccio": {
|
||||
"title": "Verdaccio是什么?"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-configuration": {
|
||||
"title": "配置文件"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0-beta.8/version-4.0.0-beta.8-reverse-proxy": {
|
||||
"title": "逆向代理服务器设置"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-cli": {
|
||||
"title": "命令行工具"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-plugins": {
|
||||
"title": "插件"
|
||||
},
|
||||
"version-4.0.0/version-4.0.0-talks": {
|
||||
"title": "Talks"
|
||||
},
|
||||
"version-4.0.1/version-4.0.1-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-caching": {
|
||||
"title": "Caching strategies"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-github-actions": {
|
||||
"title": "Github Actions"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-kubernetes": {
|
||||
"title": "Kubernetes"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-linking-remote-registry": {
|
||||
"title": "Linking a Remote Registry"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-notifications": {
|
||||
"title": "通知"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-reverse-proxy": {
|
||||
"title": "逆向代理服务器设置"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-ssl": {
|
||||
"title": "设置SSL 证书"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-uplinks": {
|
||||
"title": "上行链路"
|
||||
},
|
||||
"version-4.0.2/version-4.0.2-webui": {
|
||||
"title": "Web 用户界面"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-cli": {
|
||||
"title": "命令行工具"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-docker": {
|
||||
"title": "Docker"
|
||||
},
|
||||
"version-4.1.0/version-4.1.0-security-policy": {
|
||||
"title": "Security Policy"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-dev-plugins": {
|
||||
"title": "插件开发"
|
||||
},
|
||||
"version-4.2.0/version-4.2.0-packages": {
|
||||
"title": "包的访问"
|
||||
},
|
||||
"version-4.2.1/version-4.2.1-talks": {
|
||||
"title": "Talks"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"Docs": "Docs",
|
||||
"Blog": "Blog",
|
||||
"Twitter": "Twitter",
|
||||
"Help": "Help",
|
||||
"GitHub": "GitHub",
|
||||
"Team": "Team",
|
||||
"Donate": "Donate"
|
||||
},
|
||||
"categories": {
|
||||
"Introduction": "Introduction",
|
||||
"Features": "Features",
|
||||
"Server": "Server",
|
||||
"Development": "Development",
|
||||
"DevOps": "DevOps",
|
||||
"Guides": "Guides",
|
||||
"Configuration": "配置",
|
||||
"Plugins": "插件"
|
||||
}
|
||||
},
|
||||
"pages-strings": {
|
||||
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "通过 [站内文档](/docs/en/installation.html) 了解更多信息",
|
||||
"Browse Docs|no description given": "浏览文档",
|
||||
"Ask questions about the documentation and project|no description given": "询问有关于文档或项目的问题",
|
||||
"Join the community|no description given": "加入社区",
|
||||
"Find out what's new with this project|no description given": "了解项目中新增的内容",
|
||||
"Stay up to date|no description given": "保持最新版本",
|
||||
"Need help?|no description given": "需要帮助?",
|
||||
"This project is maintained by a dedicated group of people.|statement made to reader": "这个项目有专业的组织维护。",
|
||||
"Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)|no description given": "通过 [站内文档](/docs/en/installation.html) 了解更多信息",
|
||||
"You can follow and contact us on|no description given": "您可在这里以关注并联系我们",
|
||||
"and also you can chat with the Verdaccio community at|no description given": "你也可以在这里与 Verdaccio 社区交流",
|
||||
"If the documentation is not enough help, you can try browsing into our|no description given": "如果此文档无法帮忙,您可以试着浏览我们的",
|
||||
"This project is maintained by the Verdaccio community.|no description given": "这个项目由 Verdaccio 社区维护。",
|
||||
"Get Started|no description given": "开始",
|
||||
"Contribute|no description given": "贡献",
|
||||
"That’s it ! Enjoy your private package manager.|no description given": "就这么简单! 开始使用你的 私有 npm 仓库吧。",
|
||||
"Many great developers are already enjoying Verdaccio, join the community!|no description given": "很多好的开发人员已经开始享受使用Verdaccio, 请加入社区!",
|
||||
"**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.|no description given": "**npm**, **yarn** 和**pnpm**是任何开发流程的一部分,我们试图在最新版本中赶上。",
|
||||
"The most popular npm clients are supported|no description given": "支持所有主流的 npm 客户端",
|
||||
"We have an official **Docker** image ready to use|no description given": "我们有官方的 **Docker** 镜像可供使用",
|
||||
"and **Kubernetes Helm** support for easy deployment|no description given": "和 ** Kubernetes Helm** 支持, 便于部署",
|
||||
"Making the DevOps work easy|no description given": "使 DevOps 工作轻松",
|
||||
"Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.|no description given": "Verdaccio 是基于插件的,支持身份验证、中间件和存储插件。只需选择一个现有的即可使用或开发一个属于您自己的。",
|
||||
"Plugin Support|no description given": "插件支持",
|
||||
"Who's Using This?|no description given": "谁在用这个?",
|
||||
"This project is sponsored by these awesome users|no description given": "This project is sponsored by these awesome users",
|
||||
"and used by many more, including|no description given": "and used by many more, including",
|
||||
"More|no description given": "更多",
|
||||
"Users|no description given": "用户",
|
||||
"Verdaccio is sponsored by these awesome folks...|no description given": "Verdaccio is sponsored by these awesome folks...",
|
||||
"and used by many others, including:|no description given": "and used by many others, including:",
|
||||
"Are you using this project? Do not be shy and add your company/project logo.|no description given": "您是否正在使用此项目?不要害羞, 请添加您的公司/项目Logo到这里。",
|
||||
"Add your company|no description given": "添加你的公司",
|
||||
"Help Translate|recruit community translators for your project": "帮助翻译",
|
||||
"Edit this Doc|recruitment message asking to edit the doc source": "编辑",
|
||||
"Translate this Doc|recruitment message asking to translate the docs": "翻译"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
id: amazon
|
||||
title: "Amazon Web Services"
|
||||
---
|
||||
|
||||
Tento dokument popisuje několik postupů jak nasadit Verdaccio v AWS cloud.
|
||||
|
||||
## EC2
|
||||
|
||||
[CloudFormation šablona pro nasazení tohoto stacku.](https://github.com/verdaccio/verdaccio/blob/master/contrib/aws/cloudformation-ec2-efs.yaml)
|
||||
|
||||
Architektura:
|
||||
|
||||
Clients
|
||||
|
|
||||
| (HTTPS)
|
||||
v
|
||||
Application Load Balancer
|
||||
|
|
||||
| (HTTP)
|
||||
v
|
||||
EC2 Auto Scaling Group (Amazon Linux 2)
|
||||
Docker image (Verdaccio)
|
||||
|
|
||||
| (NFS)
|
||||
v
|
||||
Elastic File System
|
||||
|
||||
|
||||
Poznámky k architektuře: * Pro maximální výkon nasaďte tento stack do regionu, který je nejblíže Vašim klientům. * Automatické škálování používáme primárně pro sebeléčení. Systémové požadavky Verdaccia jsou dost nízké, takže je nepravděpodobné, že budete potřebovat více instancí pro zpracování provozu. * Protože Amazon Linux 2 neobsahuje Node, spouštíme raději Verdaccio jako Docker obraz nežli jako nativní aplikaci v instanci. Toto je rychlejší a bezpečnější než spoléhání se na zdroje balíčků třetích stran pro Node. * Elastic File System je levný a stavový a funguje napříč AZ. Alternativa může bých [doplněk pro úložiště S3 od třetí strany](https://github.com/remitly/verdaccio-s3-storage). * Pro zálohování použijte AWS Backup
|
||||
|
||||
Odhadovaná cena malé instance za měsíc (v us-east-1): * ALB (1 LCU průměr): $22.265/měsíc * EC2 (t3.nano): $3.796/měsíc * EBS (8gb): $0.80/měsíc * EFS (5gb): $1.5/měsíc * Přenos dat: (10gb): $0.9/měsíc * **CELKEM:** Pod $30/měsíc
|
||||
|
||||
## ECS
|
||||
|
||||
Verdaccio lze nasadit jako task v [ECS Volume](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) pro trvalé uložení.
|
||||
|
||||
Poznámka: Fargate nepodporuje trvalé svazky, takže budete muset použít doplněk pro úložiště S3.
|
||||
|
||||
## EKS
|
||||
|
||||
Dokumentaci naleznete na stránkách pro [Kubernetes](kubernetes) a [Docker](docker).
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
id: ansible
|
||||
title: "Ansible"
|
||||
---
|
||||
|
||||
V naší organizaci máme řešení na míru pro `verdaccio`.
|
||||
|
||||
<https://github.com/verdaccio/ansible-verdaccio>
|
||||
|
||||
#### Další možnosti
|
||||
|
||||
* Ansible role pro uživatele Gentoo: [jirutka/ansible-role-sinopia](https://github.com/jirutka/ansible-role-sinopia).
|
||||
* Ansible role pro uživatele Ubuntu: [jagregory/sinopia-ansible](https://github.com/jagregory/sinopia-ansible).
|
||||
* ansible-verdaccio-role <https://github.com/refinery29/ansible-verdaccio-role>
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
id: články
|
||||
title: "Články"
|
||||
---
|
||||
|
||||
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!
|
||||
|
||||
> Všechny jazyky jsou povoleny
|
||||
|
||||
## Články hlavního týmu
|
||||
|
||||
* [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)
|
||||
|
||||
# Články / Blogy / Návody (podle jazyku)
|
||||
|
||||
### Remarkable Articles
|
||||
|
||||
* [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)
|
||||
|
||||
### Anglicky
|
||||
|
||||
* [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)
|
||||
|
||||
### Japonština
|
||||
|
||||
* [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)
|
||||
|
||||
### Čínsky
|
||||
|
||||
* [使用 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)
|
||||
|
||||
### Francouzsky
|
||||
|
||||
* [Installer un registre NPM](https://allons-y.io/wiki/installer-un-registre-npm)
|
||||
|
||||
### Španělsky
|
||||
|
||||
* [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/)
|
||||
|
||||
### Německy
|
||||
|
||||
* [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)
|
||||
|
||||
## Prezentace
|
||||
|
||||
* [Introduction to Verdaccio VueJS Meetup 2018](https://www.slideshare.net/juancarlospicado/introduction-to-verdaccio)
|
||||
* [Introduccion 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)
|
74
website/crowdin/master/website/translated_docs/cs-CZ/auth.md
Normal file
74
website/crowdin/master/website/translated_docs/cs-CZ/auth.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
id: autentizace
|
||||
title: "Autentizace"
|
||||
---
|
||||
|
||||
Ověření je svázené s [doplňkem](plugins.md) pro ověření, který používáte. Omezení balíčků je též zpracování v [Přístupu k balíčkům](packages.md).
|
||||
|
||||
Ověření klienta provádí sám klient `npm`. Jakmile se přihlásíte do aplikace:
|
||||
|
||||
```bash
|
||||
npm adduser --registry http://localhost:4873
|
||||
```
|
||||
|
||||
Token je vygenerovaný v konfiguračním souboru `npm` hostovaném ve Vaší domovské složce uživatele. Pro více informací o `.npmrc` si přečtěte [oficiální dokumentaci](https://docs.npmjs.com/files/npmrc).
|
||||
|
||||
```bash
|
||||
cat .npmrc
|
||||
registry=http://localhost:5555/
|
||||
//localhost:5555/:_authToken="secretVerdaccioToken"
|
||||
//registry.npmjs.org/:_authToken=secretNpmjsToken
|
||||
```
|
||||
|
||||
#### Anonymní publikování
|
||||
|
||||
`Verdaccio` Vám umožňuje nastavit anonymní publikování. Abyste toho dosáhli, budete muset správně nastavit svůj [přístup k balíčkům](packages.md).
|
||||
|
||||
Např.:
|
||||
|
||||
```yaml
|
||||
'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**.
|
||||
|
||||
## Principy skupin
|
||||
|
||||
### Význam `$all` a `$anonymous`
|
||||
|
||||
Jak víte, *Verdaccio* používá ve výchozím nastavení `htpasswd`. Tento doplňek neimplementuje metody `allow_access`, `allow_publish` a `allow_unpublish`. Tím pádem bude *Verdaccio* řešit tyto případy následujícím způsobem:
|
||||
|
||||
* Pokud nejste přihlášení (jste anonymní), `$all` a `$anonymous` znamenají to samé.
|
||||
* Pokud jste přihlášení, `$anonymous` nebude součástí Vaší skupiny a `$all` bude odpovídat jakémukoliv přihlášenému uživateli. Nová skupina `$authenticated` bude přidána do seznamu.
|
||||
|
||||
Nastavení `$all` **bude odpovídat všem uživatelům, přihlášeným i nepřihlášeným**.
|
||||
|
||||
**Výše popsané chování se vztahuje pouze na výchozí doplněk pro ověřovaní**. Pokud používáte vlastní doplněk a tento doplněk implementuje použití `allow_access`, `allow_publish` nebo `allow_unpublish`, řešení přístupu závisí na plugin samotném. Verdaccio nastaví pouze výchozí skupiny.
|
||||
|
||||
Rekapitulace:
|
||||
|
||||
* **logged**: `$all`, `$authenticated`, + skupiny přidané doplňkem
|
||||
* **anonymous (odhlášený)**: `$all` a `$anonymous`.
|
||||
|
||||
## Default htpasswd
|
||||
|
||||
Pro zjednodušení instalace, `verdaccio` používá doplněk založený na `htpasswd`. Od verze v3.0.x je používán `verdaccio-htpasswd` jako výchozí doplněk.
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
# Maximální množství uživatelů, kteří se mohou registrovat, výchozí nastaveno na "+inf".
|
||||
# Můžete nastavit -1 pro zablokování registrací.
|
||||
#max_users: 1000
|
||||
```
|
||||
|
||||
| Vlastnost | Typ | Požadované | Příklad | Podpora | Popis |
|
||||
| --------- | ------- | ---------- | ---------- | ------- | --------------------------------------------------- |
|
||||
| file | řetězec | Ano | ./htpasswd | všechny | soubor, který obsahuje šifrované přihlašovací údaje |
|
||||
| max_users | číslo | Ne | 1000 | všechny | nastavit limit uživatelů |
|
||||
|
||||
In case to decide do not allow user to login, you can set `max_users: -1`.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: azure
|
||||
title: "Windows Azure"
|
||||
---
|
||||
|
||||
dsadsa
|
|
@ -0,0 +1,122 @@
|
|||
---
|
||||
id: osvědčené
|
||||
title: "Osvědčené postupy"
|
||||
---
|
||||
|
||||
Následující příručka obsahuje seznam nejlepších praktických postupů, které obvykle doporučujeme všem uživatelům. Neberte tuto příručku jako povinnou, vyberte si podle svých potřeb.
|
||||
|
||||
**Své osvědčené postupy můžete sdílet s komunitou Verdaccio**.
|
||||
|
||||
## Soukromý registr
|
||||
|
||||
You can add users and manage which users can access which packages.
|
||||
|
||||
Doporučujeme, abyste definovali předponu pro vaše soukromé balíčky, například `local-*` nebo `@my-company/*`, takže všechny vaše soukromé balíčky budou vypadat takto: `local-foo`. This way you can clearly separate public packages from private ones.
|
||||
|
||||
yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'local-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
|
||||
Vždy si pamatujte, že **pořadí přístupu k balíčkům je důležité**, balíčky jsou vždy porovnávány shora dolů.
|
||||
|
||||
### Using public packages from npmjs.org
|
||||
|
||||
If some package doesn't exist in the storage, server will try to fetch it from npmjs.org. If npmjs.org is down, it serves packages from cache pretending that no other packages exist. **Verdaccio stáhne pouze to, co je potřeba (= co požadují klienti)**, a tyto informace budou ukládány do mezipaměti, takže pokud se klient zeptá podruhé na stejnou věc, může být doručena bez požadavku na npmjs.org.
|
||||
|
||||
**Příklad:**
|
||||
|
||||
Pokud jste jednou úspěšně požádali o `express@4.0.1` z tohoto serveru, můžete to provést znovu (se všemi závislostmi) kdykoliv, i když je npmjs.org vypnutý. Ale např. `express@4.0. ` nebude staženo, dokud ho někdo nepotřebuje. A pokud je npmjs.org offline, tento server by oznámil, že je publikován pouze `express@4.0.1` (= pouze to, co je v mezipaměti), ale nic jiného.
|
||||
|
||||
### Override public packages
|
||||
|
||||
Chcete-li použít upravenou verzi nějakého veřejného balíčku `foo`, můžete jej publikovat pouze na místní server, takže když spustíte `npm install foo`, **bude stažena Vámi vytvořená verze**.
|
||||
|
||||
There's two options here:
|
||||
|
||||
1. Chcete vytvořit samostatý **fork** a zastavit synchronizaci s veřejnou verzí.
|
||||
|
||||
If you want to do that, you should modify your configuration file so verdaccio won't make requests regarding this package to npmjs anymore. Přidejte do `config.yaml` samostatnou položku pro tento balíček a odeberte `npmjs` ze seznamu `proxy` a restartujte server.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
# zakomentujte nebo ponechte prázdné
|
||||
# proxy:
|
||||
```
|
||||
|
||||
Když svůj balíček publikujete lokálně, **měli byste pravděpodobně začít s řetězcem verzí vyšším, než je stávající **, takže nebude v konfliktu s existujícím balíčkem ve vyrovnávací paměti.
|
||||
|
||||
2. You want to temporarily use your version, but return to public one as soon as it's updated.
|
||||
|
||||
Chcete-li se vyhnout konfliktům verzí, **měli byste použít vlastní příponu předběžného vydání další verze opravy**. Pokud má například veřejný balíček verzi 0.1.2, můžete nahrát `0.1.3-moje-docasna-oprava`.
|
||||
|
||||
```bash
|
||||
npm version 0.1.3-moje-docasna-oprava
|
||||
npm --publish --tag fix --registry http://localhost:4873
|
||||
```
|
||||
|
||||
Tímto způsobem bude váš balíček používán, dokud jeho původní správce nezmění svůj veřejný balíček na `0.1.3`.
|
||||
|
||||
## Bezpečnost
|
||||
|
||||
The security starts in your environment, for such thing we totally recommend read **[10 npm Security Best Practices](https://snyk.io/blog/ten-npm-security-best-practices/)** and follow the recommendation.
|
||||
|
||||
### Přístup k balíčkům
|
||||
|
||||
Ve výchozím nastavení jsou všechny balíčky, které publikujete ve Verdaccio, přístupné všem uživatelům. Doporučujeme chránit registr před externími neoprávněnými uživateli aktualizací vlastnost `access` na `$authenticated`.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
'@*/*':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
Tímto způsobem, ** nikdo nebude mít zálohu vašeho registru, pokud není autorizován a soukromé balíčky nebudou zobrazeny v uživatelském rozhraní **.
|
||||
|
||||
## Server
|
||||
|
||||
### Zabezpečená připojení
|
||||
|
||||
Používání ** HTTPS ** je běžným doporučením, z tohoto důvodu doporučujeme přečíst si sekci [SSL](ssl.md), abyste mohli Verdaccio zabezpečit nebo používat HTTPS[reverse proxy](reverse-proxy.md) nad Verdaccio.
|
||||
|
||||
### Platnost tokenů
|
||||
|
||||
Ve `verdaccio@3.x` nemají tokeny datum vypršení platnosti. Z tohoto důvodu jsme přidali v další verzi "verdaccio@4.x" funkci JWT [PR#896](https://github.com/verdaccio/verdaccio/pull/896)
|
||||
|
||||
```yaml
|
||||
security:
|
||||
api:
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 15d
|
||||
notBefore: 0
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d
|
||||
```
|
||||
|
||||
**Použití této konfigurace přepíše současný systém a budete moci řídit, jak dlouho bude token platný**.
|
||||
|
||||
Použití JWT také zlepšuje výkon s autentizačními pluginy, starý systém bude provádět rozbalování a ověřování pověření v každém požadavku, zatímco JWT bude spoléhat na podpis tokenu, který se vyhne režii pro plugin.
|
||||
|
||||
Mimo jiné, v **npmjs token nikdy nevyprší**.
|
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
id: mezipaměť
|
||||
title: "Strategie ukládání do mezipaměti"
|
||||
---
|
||||
|
||||
Verdaccio standardně ukládá všechny balíčky do složky `/storage`. Můžete se však rozhodnout, zda chcete použít jinou strategii. Pomocí doplňků můžete použít cloud nebo libovolnou databázi.
|
||||
|
||||
## Scénáře ukládání do mezipaměti
|
||||
|
||||
* Build a Node.js project on **Continous 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. Jako obvykle, nástroje CI vymažou mezipaměť po každém sestavení a proces začne znovu a znovu. To je ztráta šířky pásma a snižuje externí komunikaci. **Verdaccio můžete použít pro ukládání do mezipaměti a metadat v naší interní síti a zrychlit build time.**
|
||||
* **Latence a připojení**, ne všechny země mají vysokorychlostní připojení. Z tohoto důvodu jsou balíčky lokálně ve vaší síti velmi užitečné. Buď pokud cestujete nebo máte slabé spojení, roaming nebo země se silnými bránami firewall, které by mohly ovlivnit uživatelský komfort (např. poškození tarballs).
|
||||
* **Režim offline**, v současné době používají všichni správci balíčků své vlastní interní mezipaměti, ale běžné je, že různé projekty mohou používat různé nástroje, což znamená zamykání souborů a podobně. Tyto nástroje nejsou schopny sdílet mezipaměť, jedinečné řešení je centralizované a spoléhá se na registr proxy, mezipaměť Verdaccio všechny metadata a tarballs jsou staženy v závislosti na poptávce a následně sdílena ve všech projektech.
|
||||
* Vyhněte se tomu, aby jakýkoliv vzdálený registr náhle vrátil chybu *HTTP 404* pro tarballs, které byly dříve k dispozici aka ([problém s levým polem](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)).
|
||||
|
||||
# Strategie pro rychlejší build
|
||||
|
||||
> Hledáme další strategie, neváhejte se podělit o své zkušenosti v této oblasti
|
||||
|
||||
## Vyhněte se ukládání tarballs v mezipaměti
|
||||
|
||||
Pokud máte omezený úložný prostor, možná se budete muset vyhnout tarballs v mezipaměti, povolením `cache` false v každém uplinku se budou ukládat pouze soubory metadat.
|
||||
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
cache: false
|
||||
|
||||
|
||||
## Prodloužení doby vypršení mezipaměti
|
||||
|
||||
Verdaccio ve výchozím nastavení čeká 2 minuty na zrušení platnosti metadat mezipaměti před načtením nových informací ze vzdáleného registru.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
maxage: 30m
|
||||
```
|
||||
|
||||
Zvýšení hodnoty `maxage` v každém `uplink` způsobí snížení frekvence dotazování. This might be a valid strategy if you don't update dependencies so often.
|
||||
|
||||
## Použití paměti místo pevného disku
|
||||
|
||||
Sometimes caching packages is not a critical step, rather than route packages from different registries and achieving faster build times. There are two plugins that avoid write in a physical hard drive at all using the memory.
|
||||
|
||||
```bash
|
||||
npm install -g verdaccio-auth-memory
|
||||
npm install -g verdaccio-memory
|
||||
```
|
||||
|
||||
Konfigurace vypadá takto
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
auth-memory:
|
||||
users:
|
||||
foo:
|
||||
name: test
|
||||
password: test
|
||||
store:
|
||||
memory:
|
||||
limit: 1000
|
||||
```
|
||||
|
||||
Remember, once the server is restarted the data is being lost, we recommend this setup in cases where you do not need to persist at all.
|
15
website/crowdin/master/website/translated_docs/cs-CZ/chef.md
Normal file
15
website/crowdin/master/website/translated_docs/cs-CZ/chef.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
id: chef
|
||||
title: "Chef Cookbook"
|
||||
---
|
||||
|
||||
Použití Verdaccia s Chef Cookbook
|
||||
|
||||
Další informace:
|
||||
|
||||
* <https://github.com/verdaccio/verdaccio-cookbook>
|
||||
* <https://supermarket.chef.io/cookbooks/verdaccio>
|
||||
|
||||
> Hledáme přispěvatele do tohoto repozitáře, pokud máte zájem, informujte o tom autora prostřednictvím zprávy.
|
||||
|
||||
Autor: [Keli Grubb](https://github.com/kgrubb) && Barthelemy Vessemont.
|
10
website/crowdin/master/website/translated_docs/cs-CZ/ci.md
Normal file
10
website/crowdin/master/website/translated_docs/cs-CZ/ci.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
id: ci
|
||||
title: "Continuous Integration"
|
||||
---
|
||||
|
||||
Verdaccio can be used with continuous integration (CI) platforms to install or publish packages. When using NPM to install a private package in a CI environment for the first time, you may run into some issues. The `npm login` command is designed to be used interactively. This poses an issue in CI, scripts, etc. Below are some articles detailing how to use `npm login` on different CI platforms.
|
||||
|
||||
- [Travis CI](https://remysharp.com/2015/10/26/using-travis-with-private-npm-deps)
|
||||
- [Circle CI 1.0](https://circleci.com/docs/1.0/npm-login/) nebo [Circle CI 2.0](https://circleci.com/docs/2.0/deployment-integrations/#npm)
|
||||
- [Gitlab CI](https://www.exclamationlabs.com/blog/continuous-deployment-to-npm-using-gitlab-ci/)
|
34
website/crowdin/master/website/translated_docs/cs-CZ/cli.md
Normal file
34
website/crowdin/master/website/translated_docs/cs-CZ/cli.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
id: cli
|
||||
title: "Nástroj příkazové řádky"
|
||||
---
|
||||
|
||||
Chcete-li spustit aplikaci, použijte Verdaccio CLI.
|
||||
|
||||
## Příkazy
|
||||
|
||||
```bash
|
||||
verdaccio --listen 4000 --config ~./config.yaml
|
||||
```
|
||||
|
||||
| Příkaz | Výchozí hodnota | Příklad | Popis |
|
||||
| ------------------ | ------------------------------ | -------------- | ------------------------------------ |
|
||||
| --listen \ **-l** | 4873 | -p 7000 | http port |
|
||||
| --config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | konfigurační soubor |
|
||||
| --info \ **-i** | | | vypíše informace o místním prostředí |
|
||||
|
||||
## Výchozí umístění konfiguračního souboru
|
||||
|
||||
To locate the home directory, we rely on **$XDG_DATA_HOME** as a first choice and Windows environment we look for [APPDATA environment variable](https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/).
|
||||
|
||||
## Formát konfiguračního souboru
|
||||
|
||||
Konfigurační soubor by měl být YAML, JSON nebo NodeJS modul. Formát YAML je rozpoznán pomocí přípony názvu souboru (yaml nebo yml, nezáleží na velikosti).
|
||||
|
||||
## Výchozí místo úložiště
|
||||
|
||||
We use **$XDG_DATA_HOME** environment variable as 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. Pokud používáte vlastní úložiště, toto umístění je irelevantní.
|
||||
|
||||
## Výchozí umístění databázového souboru
|
||||
|
||||
Výchozí umístění databázového souboru v úložišti. Počínaje verzí 4.0.0, pro nové instalace Verdaccia bude název souboru databáze **.verdaccio-db.json**. Při aktualizaci existujícího serveru Verdaccia zůstane název souboru **.sinopia-db.json**.
|
252
website/crowdin/master/website/translated_docs/cs-CZ/config.md
Normal file
252
website/crowdin/master/website/translated_docs/cs-CZ/config.md
Normal file
|
@ -0,0 +1,252 @@
|
|||
---
|
||||
id: konfigurace
|
||||
title: "Konfigurační soubor"
|
||||
---
|
||||
|
||||
Tento soubor je základní kámen verdaccia, kde můžete upravit výchozí chování, povolit doplňky a rozšířit funkčnost.
|
||||
|
||||
Výchozí konfigurační soubor `config.yaml` je vytvořen při prvním spuštění `verdaccia`.
|
||||
|
||||
## Výchozí konfigurace
|
||||
|
||||
Výchozí konfigurace má podporu pro balíčky **s rozsahem** a umožňuje každému uživateli přístup ke všem balíčkům, ale pouze **ověřeným uživatelům k publikování**.
|
||||
|
||||
```yaml
|
||||
storage: ./storage
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
packages:
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
'**':
|
||||
proxy: npmjs
|
||||
logs:
|
||||
- {type: stdout, format: pretty, level: http}
|
||||
```
|
||||
|
||||
## Sekce
|
||||
|
||||
Následující sekce vysvětlují co jaká vlastnost znamená a jaké má volby.
|
||||
|
||||
### Úložiště
|
||||
|
||||
Je umístění výchozího úložiště. **Ve výchozím nastavení je Verdaccio uloženo na lokálním úložišti.**.
|
||||
|
||||
```yaml
|
||||
storage: ./storage
|
||||
```
|
||||
|
||||
### Plugins
|
||||
|
||||
Je umístění složky s doplňky. Užitečné pro nasazení s Docker/Kubernetes.
|
||||
|
||||
```yaml
|
||||
plugins: ./plugins
|
||||
```
|
||||
|
||||
### Autentizace
|
||||
|
||||
Ověření se nastavuje zde, výchozí ověření je na základě `htpasswd` a je vestavěné. Toto chování můžete zmenit v [doplňky](plugins.md). Pro více informací o této sekci si přečtěte [ověřovací stránka](auth.md).
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
max_users: 1000
|
||||
```
|
||||
|
||||
### Bezpečnost
|
||||
|
||||
<small>Od: <code>verdaccio@4.0.0</code> <a href="https://github.com/verdaccio/verdaccio/pull/168">#168</a></small>
|
||||
|
||||
Blok zabezpečení umožňuje přizpůsobit podpis tokenu. Chcete-li povolit nový [JWT (json webový token)](https://jwt.io/) podpis, je nutné přidat blok `jwt` do sekce `api`, `web` používá jako výchozí `jwt`.
|
||||
|
||||
Konfigurace je rozdělena do dvou sekcí, `api` a `web`. Pro použití JWT v `api` musí být definován, jinak bude používat starší podpis tokenu (`aes192`). Pro JWT můžete přizpůsobit [ověření](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback) [podpisu](https://github.com/auth0/node-jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback) a tokenu vlastními parametry.
|
||||
|
||||
security:
|
||||
api:
|
||||
legacy: true
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 29d
|
||||
verify:
|
||||
someProp: [value]
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d # Výchozí hodnota 7 dní
|
||||
verify:
|
||||
someProp: [value]
|
||||
|
||||
|
||||
> Doporučujeme přejít na JWT, protože starší podpis (`aes192`) je zastaralý a v budoucích verzích zmizí.
|
||||
|
||||
### Server
|
||||
|
||||
Sada vlastností ke změně chování serverové aplikace, konkrétně rozhraní API (Express.js).
|
||||
|
||||
> Můžete nastavit, jak dlouho má server držet aktivní příchozí spojení v sekundách pro HTTP/1.1. Hodnota 0 způsobuje, že se http server chová podobně jako Node.js před verzí 8.0.0, která neměla časový limit pro zachování. Možné řešení: Prostřednictvím dané konfigurace můžete vyřešit následující problém https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
|
||||
|
||||
```yaml
|
||||
server:
|
||||
keepAliveTimeout: 60
|
||||
```
|
||||
|
||||
### Web UI
|
||||
|
||||
Tato vlastnost umožňuje změnit vzhled webového uživatelského rozhraní. Další informace o této části naleznete na stránce [web ui](web.md).
|
||||
|
||||
```yaml
|
||||
web:
|
||||
enable: true
|
||||
title: Verdaccio
|
||||
logo: logo.png
|
||||
scope:
|
||||
```
|
||||
|
||||
### Uplinks
|
||||
|
||||
Uplinks is the ability of the system to fetch packages from remote registries when those packages are not available locally. For more information about this section read the [uplinks page](uplinks.md).
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
```
|
||||
|
||||
### Packages
|
||||
|
||||
Balíčky umožňují uživateli kontrolovat, jak budou balíčky zpřístupněny. Další informace o této sekci naleznete na [stránce balíků](packages.md).
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
## Pokročilá Nastavení
|
||||
|
||||
### Offline Publish
|
||||
|
||||
By default `verdaccio` does not allow to publish when the client is offline, that behavior can be overridden by setting this to *true*.
|
||||
|
||||
```yaml
|
||||
publish:
|
||||
allow_offline: false
|
||||
```
|
||||
|
||||
<small>Since: <code>verdaccio@2.3.6</code> due <a href="https://github.com/verdaccio/verdaccio/pull/223">#223</a></small>
|
||||
|
||||
### URL Prefix
|
||||
|
||||
```yaml
|
||||
url_prefix: /verdaccio/
|
||||
```
|
||||
|
||||
> We recommend use a subdirectory `/verdaccio/` instead a URI.
|
||||
|
||||
### Max Body Size
|
||||
|
||||
By default the maximum body size for a JSON document is `10mb`, if you run in errors as `"request entity too large"` you may increase this value.
|
||||
|
||||
```yaml
|
||||
max_body_size: 10mb
|
||||
```
|
||||
|
||||
### Listen Port
|
||||
|
||||
`verdaccio` runs by default in the port `4873`. Changing the port can be done via [cli](cli.md) or in the configuration file, the following options are valid.
|
||||
|
||||
```yaml
|
||||
listen:
|
||||
# - localhost:4873 # default value
|
||||
# - http://localhost:4873 # same thing
|
||||
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
|
||||
# - https://example.org:4873 # if you want to use https
|
||||
# - "[::1]:4873" # ipv6
|
||||
# - unix:/tmp/verdaccio.sock # unix socket
|
||||
```
|
||||
|
||||
### HTTPS
|
||||
|
||||
To enable `https` in `verdaccio` it's enough to set the `listen` flag with the protocol *https://*. For more information about this section read the [ssl page](ssl.md).
|
||||
|
||||
```yaml
|
||||
https:
|
||||
key: ./path/verdaccio-key.pem
|
||||
cert: ./path/verdaccio-cert.pem
|
||||
ca: ./path/verdaccio-csr.pem
|
||||
```
|
||||
|
||||
### Proxy
|
||||
|
||||
Proxies are special-purpose HTTP servers designed to transfer data from remote servers to local clients.
|
||||
|
||||
#### http_proxy a https_proxy
|
||||
|
||||
If you have a proxy in your network you can set a `X-Forwarded-For` header using the following properties.
|
||||
|
||||
```yaml
|
||||
http_proxy: http://something.local/
|
||||
https_proxy: https://something.local/
|
||||
```
|
||||
|
||||
#### no_proxy
|
||||
|
||||
This variable should contain a comma-separated list of domain extensions proxy should not be used for.
|
||||
|
||||
```yaml
|
||||
no_proxy: localhost,127.0.0.1
|
||||
```
|
||||
|
||||
### Upozornění
|
||||
|
||||
Enabling notifications to third-party tools is fairly easy via web hooks. For more information about this section read the [notifications page](notifications.md).
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
method: POST
|
||||
headers: [{'Content-Type': 'application/json'}]
|
||||
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
|
||||
content: '{"color":"green","message":"Publikován nový balíček: * {{ name }}*","notify":true,"message_format":"text"}'
|
||||
```
|
||||
|
||||
> For more detailed configuration settings, please [check the source code](https://github.com/verdaccio/verdaccio/tree/master/conf).
|
||||
|
||||
### Audit
|
||||
|
||||
<small>Since: <code>verdaccio@3.0.0</code></small>
|
||||
|
||||
`npm audit` is a new command released with [npm 6.x](https://github.com/npm/npm/releases/tag/v6.1.0). Verdaccio includes a built-in middleware plugin to handle this command.
|
||||
|
||||
> If you have a new installation it comes by default, otherwise you need to add the following props to your config file
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
### Experiments
|
||||
|
||||
This release includes a new property named `experiments` that can be placed in the `config.yaml` and is completely optional.
|
||||
|
||||
We want to be able to ship new things without affecting production environments. This flag allows us to add new features and get feedback from the community that wants to use them.
|
||||
|
||||
The features that are under this flag might not be stable or might be removed in future releases.
|
||||
|
||||
Here one example:
|
||||
|
||||
```yaml
|
||||
experiments:
|
||||
token: false
|
||||
```
|
||||
|
||||
> To disable the experiments warning in the console, you must comment out the whole `experiments` section.
|
|
@ -0,0 +1,240 @@
|
|||
---
|
||||
id: dev-plugins
|
||||
title: "Developing Plugins"
|
||||
---
|
||||
|
||||
There are many ways to extend `verdaccio`, the kind of plugins supported are:
|
||||
|
||||
* Authentication plugins
|
||||
* Middleware plugins (since `v2.7.0`)
|
||||
* Storage plugins since (`v3.x`)
|
||||
|
||||
> We recommend developing plugins using our [flow type definitions](https://github.com/verdaccio/flow-types).
|
||||
|
||||
## Authentication Plugin
|
||||
|
||||
Basically we have to return an object with a single method called `authenticate` that will recieve 3 arguments (`user, password, callback`).
|
||||
|
||||
### API
|
||||
|
||||
```flow
|
||||
interface IPluginAuth extends IPlugin {
|
||||
login_url?: string;
|
||||
authenticate(user: string, password: string, cb: Callback): void;
|
||||
adduser(user: string, password: string, cb: Callback): void;
|
||||
allow_access(user: RemoteUser, pkg: $Subtype<PackageAccess>, cb: Callback): void;
|
||||
apiJWTmiddleware(user: RemoteUser, pkg: $Subtype<PackageAccess>, cb: Callback): void;
|
||||
allow_publish(helpers): void;
|
||||
}
|
||||
```
|
||||
|
||||
> Only `adduser`, `allow_access`, `apiJWTmiddleware` and `allow_publish` are optional, verdaccio provide a fallback in all those cases.
|
||||
|
||||
#### apiJWTmiddleware method
|
||||
|
||||
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).
|
||||
|
||||
#### Callback
|
||||
|
||||
Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
|
||||
|
||||
###### OnError
|
||||
|
||||
Either something bad happened or auth was unsuccessful.
|
||||
|
||||
```flow
|
||||
callback(null, false)
|
||||
```
|
||||
|
||||
###### OnSuccess
|
||||
|
||||
The auth was successful.
|
||||
|
||||
`groups` is an array of strings where the user is part of.
|
||||
|
||||
callback(null, groups);
|
||||
|
||||
|
||||
### Příklad
|
||||
|
||||
```javascript
|
||||
function Auth(config, stuff) {
|
||||
var self = Object.create(Auth.prototype);
|
||||
self._users = {};
|
||||
|
||||
// config for this module
|
||||
self._config = config;
|
||||
|
||||
// verdaccio logger
|
||||
self._logger = stuff.logger;
|
||||
|
||||
// pass verdaccio logger to ldapauth
|
||||
self._config.client_options.log = stuff.logger;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
Auth.prototype.authenticate = function (user, password, callback) {
|
||||
var LdapClient = new LdapAuth(self._config.client_options);
|
||||
....
|
||||
LdapClient.authenticate(user, password, function (err, ldapUser) {
|
||||
...
|
||||
var groups;
|
||||
...
|
||||
callback(null, groups);
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = Auth;
|
||||
```
|
||||
|
||||
And the configuration will looks like:
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
```
|
||||
|
||||
Where `htpasswd` is the sufix of the plugin name. eg: `verdaccio-htpasswd` and the rest of the body would be the plugin configuration params.
|
||||
|
||||
## Middleware Plugin
|
||||
|
||||
Middleware plugins have the capability to modify the API layer, either adding new endpoints or intercepting requests.
|
||||
|
||||
```flow
|
||||
interface verdaccio$IPluginMiddleware extends verdaccio$IPlugin {
|
||||
register_middlewares(app: any, auth: IBasicAuth, storage: IStorageManager): void;
|
||||
}
|
||||
```
|
||||
|
||||
### register_middlewares
|
||||
|
||||
The method provide full access to the authentification and storage via `auth` and `storage`. `app` is the express application that allows you to add new endpoints.
|
||||
|
||||
> A pretty good example of middleware plugin is the [sinopia-github-oauth](https://github.com/soundtrackyourbrand/sinopia-github-oauth) and [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit).
|
||||
|
||||
### API
|
||||
|
||||
```js
|
||||
function register_middlewares(expressApp, authInstance, storageInstance) {
|
||||
/* more stuff */
|
||||
}
|
||||
```
|
||||
|
||||
To register a middleware we need an object with a single method called `register_middlewares` that will recieve 3 arguments (`expressApp, auth, storage`). *Auth* is the authentification instance and *storage* is also the main Storage instance that will give you have access to all to the storage actions.
|
||||
|
||||
## Doplněk Úložiště
|
||||
|
||||
Verdaccio by default uses a file system storage plugin [local-storage](https://github.com/verdaccio/local-storage), but, since `verdaccio@3.x` you can plug in a custom storage replacing the default behaviour.
|
||||
|
||||
### API
|
||||
|
||||
The storage API is a bit more complex, you will need to create a class that return a `IPluginStorage` implementation. Please see details bellow.
|
||||
|
||||
```flow
|
||||
class LocalDatabase<IPluginStorage>{
|
||||
constructor(config: $Subtype<verdaccio$Config>, logger: verdaccio$Logger): ILocalData;
|
||||
}
|
||||
|
||||
interface IPluginStorage {
|
||||
logger: verdaccio$Logger;
|
||||
config: $Subtype<verdaccio$Config>;
|
||||
add(name: string, callback: verdaccio$Callback): void;
|
||||
remove(name: string, callback: verdaccio$Callback): void;
|
||||
get(callback: verdaccio$Callback): void;
|
||||
getSecret(): Promise<string>;
|
||||
setSecret(secret: string): Promise<any>;
|
||||
getPackageStorage(packageInfo: string): verdaccio$IPackageStorage;
|
||||
search(onPackage: verdaccio$Callback, onEnd: verdaccio$Callback, validateName: Function): void;
|
||||
}
|
||||
|
||||
interface IPackageStorageManager {
|
||||
path: string;
|
||||
logger: verdaccio$Logger;
|
||||
writeTarball(name: string): verdaccio$IUploadTarball;
|
||||
readTarball(name: string): verdaccio$IReadTarball;
|
||||
readPackage(fileName: string, callback: verdaccio$Callback): void;
|
||||
createPackage(name: string, value: verdaccio$Package, cb: verdaccio$Callback): void;
|
||||
deletePackage(fileName: string, callback: verdaccio$Callback): void;
|
||||
removePackage(callback: verdaccio$Callback): void;
|
||||
updatePackage(pkgFileName: string,
|
||||
updateHandler: verdaccio$Callback,
|
||||
onWrite: verdaccio$Callback,
|
||||
transformPackage: Function,
|
||||
onEnd: verdaccio$Callback): void;
|
||||
savePackage(fileName: string, json: verdaccio$Package, callback: verdaccio$Callback): void;
|
||||
}
|
||||
|
||||
class verdaccio$IUploadTarball extends stream$PassThrough {
|
||||
abort: Function;
|
||||
done: Function;
|
||||
_transform: Function;
|
||||
abort(): void;
|
||||
done(): void;
|
||||
}
|
||||
|
||||
class verdaccio$IReadTarball extends stream$PassThrough {
|
||||
abort: Function;
|
||||
abort(): void;
|
||||
}
|
||||
```
|
||||
|
||||
> The Storage API is still experimental and might change in the next minor versions. For further information about Storage API please follow the [types definitions in our official repository](https://github.com/verdaccio/flow-types).
|
||||
|
||||
### Storage Examples
|
||||
|
||||
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)
|
||||
* [local-storage](https://github.com/verdaccio/local-storage)
|
||||
* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud)
|
||||
* [verdaccio-s3-storage](https://github.com/Remitly/verdaccio-s3-storage/tree/s3)
|
||||
|
||||
> Are you willing to contribute with new Storage Plugins? [Click here.](https://github.com/verdaccio/verdaccio/issues/103#issuecomment-357478295)
|
||||
|
||||
## 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.
|
||||
|
||||
### API
|
||||
|
||||
```javascript
|
||||
const path = require('path');
|
||||
|
||||
module.exports = (...arguments) => {
|
||||
return path.join(__dirname, 'static');
|
||||
};
|
||||
```
|
||||
|
||||
It is imporant that the name of the plugin **must start with `verdaccio-theme-` prefix**.
|
||||
|
||||
### Theme Example
|
||||
|
||||
* [@verdaccio/ui-theme](https://github.com/verdaccio/ui): The default Verdaccio theme based in React.js.
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
### API
|
||||
|
||||
The method `filter_metadata` will allow you to filter metadata that comes from any uplink, it is `Promise` based and has to return the same metadata modified.
|
||||
|
||||
> Do not remove properties from the metadata, try to do not mutate rather return a new object.
|
||||
|
||||
interface IPluginStorageFilter<T> extends IPlugin<T> {
|
||||
filter_metadata(packageInfo: Package): Promise<Package>;
|
||||
}
|
201
website/crowdin/master/website/translated_docs/cs-CZ/docker.md
Normal file
201
website/crowdin/master/website/translated_docs/cs-CZ/docker.md
Normal file
|
@ -0,0 +1,201 @@
|
|||
---
|
||||
id: docker
|
||||
title: Docker
|
||||
---
|
||||
|
||||
![alt Docker Pulls Count](https://dockeri.co/image/verdaccio/verdaccio "Docker Pulls Count")
|
||||
|
||||
To pull the latest pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio
|
||||
```
|
||||
|
||||
![Docker pull](assets/docker_verdaccio.gif)
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Označené verze
|
||||
|
||||
Since version `v2.x` you can pull docker images by [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), as follows:
|
||||
|
||||
For a major version:
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4
|
||||
```
|
||||
|
||||
For a minor version:
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4.0
|
||||
```
|
||||
|
||||
For a specific (patch) version:
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4.0.0
|
||||
```
|
||||
|
||||
> If you are interested on a list of tags, [please visit the Docker Hub website](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
|
||||
|
||||
## Running Verdaccio using Docker
|
||||
|
||||
To run the docker container:
|
||||
|
||||
```bash
|
||||
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
|
||||
```
|
||||
|
||||
The last argument defines which image to use. The above line will pull the latest prebuilt image from dockerhub, if you haven't done that already.
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
|
||||
-p 4873:4873 \
|
||||
-v $V_PATH/conf:/verdaccio/conf \
|
||||
-v $V_PATH/storage:/verdaccio/storage \
|
||||
-v $V_PATH/plugins:/verdaccio/plugins \
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
> 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 /opt/verdaccio` otherwise you will get permission errors at runtime. [Use docker volume](https://docs.docker.com/storage/volumes/) is recommended over using bind mount.
|
||||
|
||||
Verdaccio 4 provides a new set of environment variables to modify either permissions, port or http protocol. Here the complete list:
|
||||
|
||||
| Vlastnost | default | Popis |
|
||||
| --------------------- | ---------------------- | -------------------------------------------------- |
|
||||
| VERDACCIO_APPDIR | `/opt/verdaccio-build` | 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 |
|
||||
|
||||
### Plugins
|
||||
|
||||
Plugins can be installed in a separate directory and mounted using Docker or Kubernetes, however make sure you build plugins with native dependencies using the same base image as the Verdaccio Dockerfile.
|
||||
|
||||
```docker
|
||||
FROM verdaccio/verdaccio
|
||||
|
||||
USER root
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN npm i && npm install verdaccio-s3-storage
|
||||
|
||||
USER verdaccio
|
||||
```
|
||||
|
||||
### Docker and custom port configuration
|
||||
|
||||
Any `host:port` configured in `conf/config.yaml` under `listen` **is currently ignored when using docker**.
|
||||
|
||||
If you want to reach Verdaccio docker instance under different port, lets say `5000` in your `docker run` command add the environment variable `VERDACCIO_PORT=5000` and then expose the port `-p 5000:5000`.
|
||||
|
||||
```bash
|
||||
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
|
||||
-e "VERDACCIO_PORT=8080" -p 8080:8080 \
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
Of course the numbers you give to `-p` paremeter need to match.
|
||||
|
||||
### Použití HTTPS s Dockerem
|
||||
|
||||
You can configure the protocol verdaccio is going to listen on, similarly to the port configuration. You have to overwrite the default value("http") of the `PROTOCOL` environment variable to "https", after you specified the certificates in the config.yaml.
|
||||
|
||||
```bash
|
||||
docker run -it --rm --name verdaccio \
|
||||
--env "VERDACCIO_PROTOCOL=https" -p 4873:4873
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
### Using docker-compose
|
||||
|
||||
1. Get the latest version of [docker-compose](https://github.com/docker/compose).
|
||||
2. Build and run the container:
|
||||
|
||||
```bash
|
||||
$ 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"
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=4873
|
||||
ports:
|
||||
- "4873:4873"
|
||||
volumes:
|
||||
- "./storage:/verdaccio/storage"
|
||||
- "./config:/verdaccio/conf"
|
||||
- "./plugins:/verdaccio/plugins"
|
||||
networks:
|
||||
node-network:
|
||||
driver: bridge
|
||||
```
|
||||
|
||||
Docker will generate a named volume in which to store persistent application data. You can use `docker inspect` or `docker volume inspect` to reveal the physical location of the volume and edit the configuration, such as:
|
||||
|
||||
```bash
|
||||
$ docker volume inspect verdaccio_verdaccio
|
||||
[
|
||||
{
|
||||
"Name": "verdaccio_verdaccio",
|
||||
"Driver": "local",
|
||||
"Mountpoint": "/var/lib/docker/volumes/verdaccio_verdaccio/_data",
|
||||
"Labels": null,
|
||||
"Scope": "local"
|
||||
}
|
||||
]
|
||||
|
||||
```
|
||||
|
||||
## Vytvořte si vlastní Docker obraz
|
||||
|
||||
```bash
|
||||
docker build -t verdaccio .
|
||||
```
|
||||
|
||||
There is also an npm script for building the docker image, so you can also do:
|
||||
|
||||
```bash
|
||||
yarn run build:docker
|
||||
```
|
||||
|
||||
Note: The first build takes some minutes to build because it needs to run `npm install`, and it will take that long again whenever you change any file that is not listed in `.dockerignore`.
|
||||
|
||||
Please note that for any of the above docker commands you need to have docker installed on your machine and the docker executable should be available on your `$PATH`.
|
||||
|
||||
## Docker Examples
|
||||
|
||||
There is a separate repository that hosts multiple configurations to compose Docker images with `verdaccio`, for instance, as reverse proxy:
|
||||
|
||||
<https://github.com/verdaccio/docker-examples>
|
||||
|
||||
## Docker Custom Builds
|
||||
|
||||
> If you have made an image based on Verdaccio, feel free to add it to this list.
|
||||
|
||||
* [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.
|
68
website/crowdin/master/website/translated_docs/cs-CZ/e2e.md
Normal file
68
website/crowdin/master/website/translated_docs/cs-CZ/e2e.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
---
|
||||
id: e2e
|
||||
title: "End to End testing"
|
||||
---
|
||||
|
||||
Some projects organize packages in multi-packages repositories or [monorepos](https://github.com/babel/babel/blob/master/doc/design/monorepo.md). E2E testing is a topic that usually is only relevant for User Interfaces, but from a Node.js perspective, **publishing packages also need to be tested**.
|
||||
|
||||
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Solution: a local npm registry. <a href="https://t.co/kvcyVANVSK">https://t.co/kvcyVANVSK</a></p>— Dan Abramov (@dan_abramov) <a href="https://twitter.com/dan_abramov/status/951427674844680192?ref_src=twsrc%5Etfw">11 de enero de 2018</a></blockquote>
|
||||
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||
|
||||
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)
|
||||
|
||||
**Verdaccio** is a lightweight registry with zero-configuration that **fits perfectly in any E2E + CI workflow**.
|
||||
|
||||
## Implementation
|
||||
|
||||
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).
|
||||
|
||||
### Example using Bash
|
||||
|
||||
This is the most simple example using Verdaccio in a bash script (extracted from *create-react-app*).
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
local_registry="http://0.0.0.0:4873"
|
||||
|
||||
# start local registry
|
||||
tmp_registry_log=`mktemp`
|
||||
sh -c "mkdir -p $HOME/.config/verdaccio"
|
||||
sh -c "cp --verbose /config.yaml $HOME/.config/verdaccio/config.yaml"
|
||||
sh -c "nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &>$tmp_registry_log &"
|
||||
# wait for `verdaccio` to boot
|
||||
grep -q 'http address' <(tail -f $tmp_registry_log)
|
||||
# login so we can publish packages
|
||||
sh -c "npm-auth-to-token -u test -p test -e test@test.com -r $local_registry"
|
||||
# Run nmp command
|
||||
sh -c "npm --registry $local_registry publish"
|
||||
```
|
||||
|
||||
## Whom are using it for E2E?
|
||||
|
||||
* [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests) *(+64k ⭐️)*
|
||||
* [Storybook](https://github.com/storybooks/storybook) *(+34k ⭐️)*
|
||||
* [Gatsby](https://github.com/gatsbyjs/gatsby) *(+31k ⭐️) WIP* [#8791](https://github.com/gatsbyjs/gatsby/pull/8791) [#11525](https://github.com/gatsbyjs/gatsby/pull/11525)
|
||||
* [Uppy](https://github.com/transloadit/uppy) *(+15k ⭐️)*
|
||||
* [Aurelia Framework](https://github.com/aurelia) *(+10k ⭐️)*
|
||||
* [bit](https://github.com/teambit/bit) *(+6k ⭐️)*
|
||||
* [pnpm](https://github.com/pnpm/pnpm) *(+5k ⭐️)*
|
||||
* [Mozilla Neutrino](https://github.com/neutrinojs/neutrino) *(+3k ⭐️)*
|
||||
* [Embark](https://embark.status.im/) *(+3k ⭐️)*
|
||||
* [Hyperledger Composer](https://github.com/hyperledger/composer) *(+1.6k ⭐️)*
|
||||
* [Wix Yoshi](https://github.com/wix/yoshi)
|
||||
|
||||
## Future
|
||||
|
||||
Babel.js might be interested on integrate Verdaccio in their workflow, if you want to contribute, check [this ticket](https://github.com/babel/babel/issues/6134).
|
||||
|
||||
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Thinking of using verdaccio to test <a href="https://twitter.com/lernajs?ref_src=twsrc%5Etfw">@lernajs</a> v3 (+use this generally), as it's hard to know if a publish will be successful. Would like us to fix an issue where we would like to compile Babel using itself before it's published (as we self-host but from latest npm) as a smoke test</p>— Henry Zhu (@left_pad) <a href="https://twitter.com/left_pad/status/1045770889051164672?ref_src=twsrc%5Etfw">28 de septiembre de 2018</a></blockquote>
|
||||
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
id: 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.
|
||||
|
||||
![actions](/img/github-actions.png)
|
||||
|
||||
## Testing your packages
|
||||
|
||||
Verdaccio provides a custom action for easy integration in your flow, you only add the following to your `main.workflow` in the step you consider the better for your flow.
|
||||
|
||||
```gha
|
||||
action "Publish Verdaccio" {
|
||||
uses = "verdaccio/github-actions/publish@master"
|
||||
args = ["publish"]
|
||||
}
|
||||
```
|
||||
|
||||
The action will perform a `npm publish` and if the publishing finishes successfully will allow to continue to the next step, otherwise will fails. If there is any issue publishing a package you will notice using this action.
|
||||
|
||||
Within the image uses `verdaccio-auth-memory` and `verdaccio-memory` plugins to handle authentification and storage to speed up the process.
|
||||
|
||||
If you want to know more about the action, [visit our repository](https://github.com/verdaccio/github-actions) dedicated for GitHub Actions.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: google-cloud
|
||||
title: "Google Cloud"
|
||||
---
|
||||
|
||||
dsadsa
|
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
id: iss-server
|
||||
title: "Instalace na IIS serveru"
|
||||
---
|
||||
|
||||
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:
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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 for mentioned link works better
|
||||
|
||||
A default configuration file will be created `c:\verdaccio\verdaccio\config.yaml`
|
||||
|
||||
### package.json
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "iisnode-verdaccio",
|
||||
"version": "1.0.0",
|
||||
"description": "Hosts verdaccio in iisnode",
|
||||
"main": "start.js",
|
||||
"dependencies": {
|
||||
"verdaccio": "^3.11.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### start.js
|
||||
|
||||
```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
|
||||
|
||||
```bash
|
||||
process.argv.push('-l', 'unix:' + process.env.PORT);
|
||||
require('./node_modules/verdaccio/src/lib/cli.js');
|
||||
```
|
||||
|
||||
### web.config
|
||||
|
||||
```xml
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<modules>
|
||||
<remove name="WebDAVModule" />
|
||||
</modules>
|
||||
|
||||
<!-- indicates that the start.js file is a node.js application
|
||||
to be handled by the iisnode module -->
|
||||
<handlers>
|
||||
<remove name="WebDAV" />
|
||||
<add name="iisnode" path="start.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Execute" />
|
||||
<add name="WebDAV" path="*" verb="*" modules="WebDAVModule" resourceType="Unspecified" requireAccess="Execute" />
|
||||
</handlers>
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
|
||||
<!-- iisnode folder is where iisnode stores it's logs. These should
|
||||
never be rewritten -->
|
||||
<rule name="iisnode" stopProcessing="true">
|
||||
<match url="iisnode*" />
|
||||
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
|
||||
<action type="None" />
|
||||
</rule>
|
||||
|
||||
<!-- Rewrite all other urls in order for verdaccio to handle these -->
|
||||
<rule name="verdaccio">
|
||||
<match url="/*" />
|
||||
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
|
||||
<action type="Rewrite" url="start.js" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
|
||||
<!-- exclude node_modules directory and subdirectories from serving
|
||||
by IIS since these are implementation details of node.js applications -->
|
||||
<security>
|
||||
<requestFiltering>
|
||||
<hiddenSegments>
|
||||
<add segment="node_modules" />
|
||||
</hiddenSegments>
|
||||
</requestFiltering>
|
||||
</security>
|
||||
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
- **The web interface does not load when hosted with https as it tries to download scripts over http.**
|
||||
Make sure that you have correctly mentioned `url_prefix` in verdaccio config. Follow the [discussion](https://github.com/verdaccio/verdaccio/issues/622).
|
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
id: instalace
|
||||
title: "Installation"
|
||||
---
|
||||
|
||||
Verdaccio je multiplatformová webová aplikace. Chcete-li jej nainstalovat, potřebujete splnit několik předpokladů.
|
||||
|
||||
#### Předpoklady
|
||||
|
||||
1. Verze Node vyšší než
|
||||
- Pro verzi `verdaccio@3.x` je zapotřebí minimální verze Node `v6.12`.
|
||||
- For version `verdaccio@4.0.0-alpha.x` or `verdaccio@4.x` Node `8.x` (LTS "Carbon") is the minimum supported version.
|
||||
2. npm `>=4.x` or `yarn` > We highly recommend use the latest Node Package Managers clients `> npm@5.x | yarn@1.x | pnpm@2.x`
|
||||
3. The web interface supports the `Chrome, Firefox, Edge, and IE11` browsers.
|
||||
|
||||
> Verdaccio will support latest Node.js version according the [Node.js Release Working Group](https://github.com/nodejs/Release) recomendations.
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Instalace CLI
|
||||
|
||||
`verdaccio` must be installed globaly using either of the following methods:
|
||||
|
||||
Pomocí `npm`
|
||||
|
||||
```bash
|
||||
npm install -g verdaccio
|
||||
```
|
||||
|
||||
nebo pomocí `yarn`
|
||||
|
||||
```bash
|
||||
yarn global add verdaccio
|
||||
```
|
||||
|
||||
![install verdaccio](assets/install_verdaccio.gif)
|
||||
|
||||
## Základní použití
|
||||
|
||||
Po instalaci stačí provést CLI příkaz:
|
||||
|
||||
```bash
|
||||
$> verdaccio
|
||||
warn --- config file - /home/.config/verdaccio/config.yaml
|
||||
warn --- http address - http://localhost:4873/ - verdaccio/3.0.0
|
||||
```
|
||||
|
||||
For more information about the CLI, please [read the cli section](cli.md).
|
||||
|
||||
You can set the registry by using the following command.
|
||||
|
||||
```bash
|
||||
npm set registry http://localhost:4873/
|
||||
```
|
||||
|
||||
or you can pass a `--registry` flag when needed.
|
||||
|
||||
```bash
|
||||
npm install --registry http://localhost:4873
|
||||
```
|
||||
|
||||
## Docker Image
|
||||
|
||||
`verdaccio` has an official docker image you can use, and in most cases, the default configuration is good enough. For more information about how to install the official image, [read the docker section](docker.md).
|
||||
|
||||
## Cloudron
|
||||
|
||||
`verdaccio` is also available as a 1-click install on [Cloudron](https://cloudron.io)
|
||||
|
||||
[![Instalace](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)
|
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
id: kubernetes
|
||||
title: "Kubernetes"
|
||||
---
|
||||
|
||||
Instrukce, jak nasadit Verdaccio do Kuberneter clusteru najdete v repozitáři [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example). Nicméně doporučená metoda instalace Verdaccia do Kubernetes clusteru je pomocí [Helm](https://helm.sh). Helm je balíčkový správce pro [Kubernetes](https://kubernetes.io) což přináší mnoho výhod.
|
||||
|
||||
## Helm
|
||||
|
||||
### Nastavení Helm
|
||||
|
||||
Pokud jste ještě nepoužívali Help, budete muset nastavit ovladač pro Helm jménem Tiller:
|
||||
|
||||
```bash
|
||||
helm init
|
||||
```
|
||||
|
||||
### Instalace
|
||||
|
||||
Nasazení Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio) grafu. V tomto příkladu použijeme `npm` jako název releasu:
|
||||
|
||||
```bash
|
||||
helm install --name npm stable/verdaccio
|
||||
```
|
||||
|
||||
### Nasazení specifické verze
|
||||
|
||||
```bash
|
||||
helm install --name npm --set image.tag=2.6.5 stable/verdaccio
|
||||
```
|
||||
|
||||
### Aktualizace Verdaccia
|
||||
|
||||
```bash
|
||||
helm upgrade npm stable/verdaccio
|
||||
```
|
||||
|
||||
### Odinstalace
|
||||
|
||||
```bash
|
||||
helm del --purge npm
|
||||
```
|
||||
|
||||
**Poznámka:** tento příkaz odstraní všechny prostředky včetně balíčků, které jste dříve publikovali do registru.
|
||||
|
||||
### Vlastní konfigurace Verdaccia
|
||||
|
||||
Můžete upravit konfiguraci Verdaccia pomocí Kubernetes *configMap*.
|
||||
|
||||
#### Příprava
|
||||
|
||||
Copy the [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/docker.yaml) and adapt it for your use case:
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/verdaccio/verdaccio/master/conf/docker.yaml -O config.yaml
|
||||
```
|
||||
|
||||
**Poznámka:** Zkontrolujte, zda používáte správnou cestu pro ukládání, která slouží pro perzistenci dat:
|
||||
|
||||
```yaml
|
||||
storage: /verdaccio/storage/data
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/storage/htpasswd
|
||||
```
|
||||
|
||||
#### Nasazení configMap
|
||||
|
||||
Nasaďte `configMap` do clusteru
|
||||
|
||||
```bash
|
||||
kubectl create configmap verdaccio-config --from-file ./config.yaml
|
||||
```
|
||||
|
||||
#### Nasazení Verdaccia
|
||||
|
||||
Nyní můžete nasadit Verdaccio Helm graf a specifikovat, jakou konfiguraci použít:
|
||||
|
||||
```bash
|
||||
helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
|
||||
```
|
||||
|
||||
## Podpora Rancher
|
||||
|
||||
[Rancher](http://rancher.com/) je platforma pro kompletní správu kontejnerů která nabízí velice jednoduchou správu a používání kontejnerá na produkci.
|
||||
|
||||
* [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)
|
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
id: linking-remote-registry
|
||||
title: "Linking a Remote Registry"
|
||||
---
|
||||
|
||||
Verdaccio is a proxy and by default [links](uplinks.md) the public registry.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
```
|
||||
|
||||
You can link multiple registries, the following document will drive you through some helpful configurations.
|
||||
|
||||
## Using Associating Scope
|
||||
|
||||
The unique way to access multiple registries using the `.npmrc` is the scope feature as follows:
|
||||
|
||||
// .npmrc
|
||||
registry=https://registry.npmjs.org
|
||||
@mycompany:registry=http://localhost:4873
|
||||
|
||||
|
||||
This approach is valid, but comes with several disadvantages:
|
||||
|
||||
* It **only works with scopes**
|
||||
* Scope must match, **no Regular Expressions are allowed**
|
||||
* One scope **cannot fetch from multiple registries**
|
||||
* Tokens/passwords **must be defined within** `.npmrc` and checked in into the repo.
|
||||
|
||||
See a full example [here](https://stackoverflow.com/questions/54543979/npmrc-multiple-registries-for-the-same-scope/54550940#54550940).
|
||||
|
||||
## Linking a Registry
|
||||
|
||||
Linking a registry is fairly simple. First, define a new section in the `uplinks` section. Note, the order here is irrelevant.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private.registry.net/npm
|
||||
|
||||
... [truncated] ...
|
||||
|
||||
'webpack':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: private
|
||||
|
||||
```
|
||||
|
||||
Add a `proxy` section to define the selected registry you want to proxy.
|
||||
|
||||
## Linking Multiple Registries
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
server1:
|
||||
url: https://server1.registry.net/npm
|
||||
server2:
|
||||
url: https://server2.registry.net/npm
|
||||
|
||||
... [truncated] ...
|
||||
|
||||
'webpack':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: server1 server2
|
||||
```
|
||||
|
||||
Verdaccio supports multiple registries on the `proxy` field. The request will be resolved with the first in the list; if that fails, it will try with the next in the list and so on.
|
||||
|
||||
## Offline Registry
|
||||
|
||||
Having a full Offline Registry is completely possible. If you don't want any connectivity with external remotes you can do the following.
|
||||
|
||||
```yaml
|
||||
<br />auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
uplinks:
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: none
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
Remove all `proxy` fields within each section of `packages`. The registry will become full offline.
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
id: logger
|
||||
title: "Logger"
|
||||
---
|
||||
|
||||
Jako všechny webové aplikace má verdaccio přizpůsobitelný vestavěný logger. Můžete definovat různé typy výstupů.
|
||||
|
||||
```yaml
|
||||
logs:
|
||||
# výstup konzole
|
||||
- {type: stdout, format: pretty, level: http}
|
||||
# výstup souboru
|
||||
- {type: file, path: verdaccio.log, level: info}
|
||||
# Střídající výstup logu. Možnosti jsou předány přímo do bunyan. Navštivte: https://github.com/trentm/node-bunyan#stream-type-rotating-file
|
||||
- {type: rotating-file, format: json, path: /path/to/log.jsonl, level: http, options: {period: 1d}}
|
||||
```
|
||||
|
||||
Použijte `SIGUSR2` pro upozornění aplikace, že se vystřídal soubor logu a je třeba jej znovu otevřít. Poznámka: Střídající se výstup logu není podporován v režimu clusteru. [Navštivte zde](https://github.com/trentm/node-bunyan#stream-type-rotating-file)
|
||||
|
||||
### Konfigurace
|
||||
|
||||
| Vlastnost | Typ | Požadované | Příklad | Podpora | Popis |
|
||||
| --------- | ------- | ---------- | ---------------------------------------------- | ------- | ----------------------------------------------- |
|
||||
| typ | řetězec | Ne | [stdout, file] | všechny | definovat výstup |
|
||||
| cesta | řetězec | Ne | verdaccio.log | všechny | pokud je typ soubor, definujte umístění souboru |
|
||||
| formát | řetězec | Ne | [pretty, pretty-timestamped] | všechny | výstupní formát |
|
||||
| úroveň | řetězec | Ne | [fatal, error, warn, http, info, debug, trace] | všechny | úroveň podrobností |
|
58
website/crowdin/master/website/translated_docs/cs-CZ/logo.md
Normal file
58
website/crowdin/master/website/translated_docs/cs-CZ/logo.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
id: logo
|
||||
title: "Logotyp"
|
||||
---
|
||||
|
||||
Logotyp byl navrhnut **[Breno Rodrigues](https://github.com/rodriguesbreno)**, který vyhrál ([poslední fázi](https://github.com/verdaccio/verdaccio/issues/328)) [soutěže](https://github.com/verdaccio/verdaccio/issues/237) a daroval své dílo tomuto projektu.
|
||||
|
||||
> Všechna loga podléhají licenci [Creative Commons](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
|
||||
|
||||
Zvláštní poděkování patří *[@Lisapressmar](https://github.com/Lisapressmar)* za její příspěvek s více formáty a velikostmi obrázků.
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Symboly
|
||||
|
||||
**S textem**
|
||||
|
||||
![symbol malý s textem](assets/logo/symbol/png/logo-small-header-bottom.png)
|
||||
|
||||
![symbol střední s textem](assets/logo/symbol/png/logo-small-header-bottom@2x.png)
|
||||
|
||||
![symbol velký s textem](assets/logo/symbol/png/logo-small-header-bottom@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![symbol svg](assets/logo/symbol/svg/logo-small-header-bottom.svg)
|
||||
|
||||
**Bez textu**
|
||||
|
||||
![symbol malý](assets/logo/symbol/png/verdaccio-tiny.png)
|
||||
|
||||
![symbol střední](assets/logo/symbol/png/verdaccio-tiny@2x.png)
|
||||
|
||||
![symbol velký](assets/logo/symbol/png/verdaccio-tiny@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![svg formát bez textu](assets/logo/symbol/svg/verdaccio-tiny.svg)
|
||||
|
||||
### Černobílé
|
||||
|
||||
![symbol bw malý](assets/logo/symbol/png/verdaccio-blackwhite.png)
|
||||
|
||||
![symbol bw střední](assets/logo/symbol/png/verdaccio-blackwhite@2x.png)
|
||||
|
||||
![symbol bw velký](assets/logo/symbol/png/verdaccio-blackwhite@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![symbol bw svg](assets/logo/symbol/svg/verdaccio-blackwhite.svg)
|
||||
|
||||
## Banner
|
||||
|
||||
![banner malý](assets/logo/banner/png/verdaccio-banner.png)
|
||||
|
||||
![banner střední](assets/logo/banner/png/verdaccio-banner@2x.png)
|
||||
|
||||
![banner velký](assets/logo/banner/png/verdaccio-banner@3x.png)
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
id: node-api
|
||||
title: "Node API"
|
||||
---
|
||||
|
||||
Verdaccio lze vyvolat programově. API bylo zavedeno po verzi `verdaccio@3.0.0-alpha.10`.
|
||||
|
||||
## Použití
|
||||
|
||||
#### Programově
|
||||
|
||||
```js
|
||||
import startServer from 'verdaccio';
|
||||
|
||||
startServer(configJsonFormat, 6000, store, '1.0.0', 'verdaccio',
|
||||
(webServer, addrs, pkgName, pkgVersion) => {
|
||||
webServer.listen(addr.port || addr.path, addr.host, () => {
|
||||
console.log('verdaccio running');
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
## Další implementace
|
||||
|
||||
* [verdaccio-server](https://github.com/boringame/verdaccio-server) lokální proxy server npm
|
||||
|
||||
```js
|
||||
// js
|
||||
import * as verdaccioServer from "verdaccio-server";
|
||||
verdaccioServer.start();
|
||||
verdaccioServer.stop();
|
||||
verdaccioServer.list();
|
||||
verdaccioServer.stopAll();
|
||||
verdaccioServer.show();
|
||||
verdaccioServer.cli();
|
||||
// windows .net2
|
||||
verdaccioServer.serviceInstall();
|
||||
verdaccioServer.serviceUninstall();
|
||||
verdaccioServer.serviceStart();
|
||||
verdaccioServer.serviceStop();
|
||||
verdaccioServer.serviceRestart();
|
||||
```
|
|
@ -0,0 +1,159 @@
|
|||
---
|
||||
id: upozornění
|
||||
title: "Upozornění"
|
||||
---
|
||||
|
||||
Notify was built primarily to use with Slack's Incoming webhooks, but will also deliver a simple payload to any endpoint. Currently only active for `npm publish` command.
|
||||
|
||||
## Použití
|
||||
|
||||
Příklad pro **HipChat**, **Stride** a **Google Hangouts Chat**:
|
||||
|
||||
> Verdaccio supports any API, feel free to add more examples.
|
||||
|
||||
#### Jedno upozornění
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
method: POST
|
||||
headers: [{'Content-Type': 'application/json'}]
|
||||
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
|
||||
content: '{"color":"green","message":"Publikován nový balíček: * {{ name }}*","notify":true,"message_format":"text"}'
|
||||
```
|
||||
|
||||
#### Více oznámení
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
'example-google-chat':
|
||||
method: POST
|
||||
headers: [{'Content-Type': 'application/json'}]
|
||||
endpoint: https://chat.googleapis.com/v1/spaces/AAAAB_TcJYs/messages?key=myKey&token=myToken
|
||||
content: '{"text":"Publikován nový balíček: `{{ 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":"Publikován nový balíček: * {{ 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": "Publikován nový balíček: * {{ name }}* Jméno vydavatele: * {{ publisher.name }}"}]}]}}'
|
||||
```
|
||||
|
||||
## Šablona
|
||||
|
||||
Jako hlavní šablonovací engine používáme [Handlebars](https://handlebarsjs.com/).
|
||||
|
||||
### Format Examples
|
||||
|
||||
# iterate all versions
|
||||
{{ name }}{{#each versions}} v{{version}}{{/each}}
|
||||
|
||||
# publisher and `dist-tag` package published
|
||||
{{ publisher.name }} has published {{ publishedPackage }}
|
||||
|
||||
|
||||
### Properties
|
||||
|
||||
Seznam vlastností dostupných pomocí šablon
|
||||
|
||||
* Metadata
|
||||
* Vydavatel (kdo publikuje)
|
||||
* Balíček publikován (package@1.0.0)
|
||||
|
||||
### Metadata
|
||||
|
||||
Package metadata that the template has access
|
||||
|
||||
{
|
||||
"_id": "@test/pkg1",
|
||||
"name": "@test/pkg1",
|
||||
"description": "",
|
||||
"dist-tags": {
|
||||
"beta": "1.0.54"
|
||||
},
|
||||
"versions": {
|
||||
"1.0.54": {
|
||||
"name": "@test/pkg1",
|
||||
"version": "1.0.54",
|
||||
"description": "some description",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Author Name",
|
||||
"email": "author@domain.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"webpack": "4.12.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "@ test/pkg1@1.0.54",
|
||||
"_npmVersion": "6.1.0",
|
||||
"_nodeVersion": "9.9.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-JlXWpLtMUBAqvVZBvH7UVLhXkGE1ctmXbDjbH/l0zMuG7wVzQ7GshTYvD/b5C+G2vOL2oiIS1RtayA/kKkTwKw==",
|
||||
"shasum": "29c55c52c1e76e966e706165e5b9f22e32aa9f22",
|
||||
"tarball": "http://localhost:4873/@test/pkg1/-/@test/pkg1-1.0.54.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"readme": "# test",
|
||||
"_attachments": {
|
||||
"@test/pkg1-1.0.54.tgz": {
|
||||
"content_type": "application/octet-stream",
|
||||
"data": "H4sIAAAAAAAAE+y9Z5PjyJIgOJ ...",
|
||||
"length": 33112
|
||||
}
|
||||
},
|
||||
"time": {}
|
||||
}
|
||||
|
||||
|
||||
### Publisher
|
||||
|
||||
You can access to the package publisher information in the `content` of a webhook using the `publisher` object.
|
||||
|
||||
See below the `publisher` object type:
|
||||
|
||||
{
|
||||
name: string,
|
||||
groups: string[],
|
||||
real_groups: string[]
|
||||
}
|
||||
|
||||
|
||||
An example:
|
||||
|
||||
notify:
|
||||
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 }}*. Publisher name: * {{ publisher.name }} *.","notify":true,"message_format":"text"}'
|
||||
|
||||
|
||||
**Note:** it's not possible to get the publisher information if the `package.json` file already has the `publisher` property.
|
||||
|
||||
### Package Published
|
||||
|
||||
You can access to the package is being published with the keyword `{{publishedPackage}}` as follows.
|
||||
|
||||
{{ publisher.name }} has published {{ publishedPackage }}
|
||||
|
||||
|
||||
## Konfigurace
|
||||
|
||||
| Vlastnost | Typ | Požadované | Podpora | Výchozí hodnota | Popis |
|
||||
| ------------------- | ------------ | ---------- | ------- | --------------- | -------------------------------------------------------------------------------------------- |
|
||||
| method | řetězec | Ne | všechny | | HTTP verb |
|
||||
| packagePattern | řetězec | Ne | všechny | | Only run this notification if the package name matches the regular expression |
|
||||
| packagePatternFlags | řetězec | Ne | všechny | | Any flags to be used with the regular expression |
|
||||
| headers | array/object | Ano | všechny | | If this endpoint requires specific headers, set them here as an array of key: value objects. |
|
||||
| endpoint | řetězec | Ano | všechny | | set the URL endpoint for this call |
|
||||
| content | řetězec | Ano | všechny | | any [Handlebar](https://handlebarsjs.com/) expressions |
|
182
website/crowdin/master/website/translated_docs/cs-CZ/packages.md
Normal file
182
website/crowdin/master/website/translated_docs/cs-CZ/packages.md
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
id: balíčky
|
||||
title: "Přístup k balíčkům"
|
||||
---
|
||||
|
||||
It's a series of contraints that allow or restrict access to the local storage based in specific criteria.
|
||||
|
||||
The security constraints remain on the shoulders of the plugin being used, by default `verdaccio` uses the [htpasswd plugin](https://github.com/verdaccio/verdaccio-htpasswd). If you use a different plugin the behaviour might be different. The default plugin does not handle `allow_access` and `allow_publish` by itself, it uses an internal fallback in case the plugin is not ready for it.
|
||||
|
||||
For more information about permissions visit [the authentification section in the wiki](auth.md).
|
||||
|
||||
### Použití
|
||||
|
||||
```yalm
|
||||
packages:
|
||||
# scoped packages
|
||||
'@scope/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: server2
|
||||
|
||||
'private-*':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: uplink1
|
||||
|
||||
'**':
|
||||
# allow all users (including non-authenticated users) to read and
|
||||
# publish all packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: uplink2
|
||||
```
|
||||
|
||||
if none is specified, the default one remains
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
The list internal groups handled by `verdaccio` are:
|
||||
|
||||
```js
|
||||
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'
|
||||
```
|
||||
|
||||
All users recieve 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'
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'npmuser-*':
|
||||
access: npmuser
|
||||
publish: npmuser
|
||||
```
|
||||
|
||||
Restart `verdaccio` and in your console try to install `npmuser-core`.
|
||||
|
||||
```bash
|
||||
$ npm install npmuser-core
|
||||
npm install npmuser-core
|
||||
npm ERR! code E403
|
||||
npm ERR! 403 Forbidden: npmuser-core@latest
|
||||
|
||||
npm ERR! A complete log of this run can be found in:
|
||||
npm ERR! /Users/user/.npm/_logs/2017-07-02T12_20_14_834Z-debug.log
|
||||
```
|
||||
|
||||
You can change the existing behaviour using a different plugin authentication. `verdaccio` just checks whether the user that tried to access or publish a specific package belongs to the right group.
|
||||
|
||||
#### Set multiple groups
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
#### Blocking access to set of packages
|
||||
|
||||
If you want to block the access/publish to a specific group of packages. Just do not define `access` and `publish`.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'old-*':
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
#### 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*.
|
||||
|
||||
Let's see the following example:
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'jquery':
|
||||
access: $all
|
||||
publish: $all
|
||||
'my-company-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'@my-local-scope/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
#### 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 `unpublish` in your package access section, for instance:
|
||||
|
||||
```yalm
|
||||
packages:
|
||||
'jquery':
|
||||
access: $all
|
||||
publish: $all
|
||||
unpublish: root
|
||||
'my-company-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
unpublish:
|
||||
'@my-local-scope/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
# unpublish: property commented out
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
### Konfigurace
|
||||
|
||||
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).
|
||||
|
||||
| Vlastnost | Typ | Požadované | Příklad | Podpora | Popis |
|
||||
| --------- | ------- | ---------- | -------------- | -------------- | ------------------------------------------------------------------------- |
|
||||
| access | řetězec | Ne | $all | všechny | define groups allowed to access the package |
|
||||
| publish | řetězec | Ne | $authenticated | všechny | define groups allowed to publish |
|
||||
| proxy | řetězec | Ne | npmjs | všechny | limit look ups for specific uplink |
|
||||
| storage | řetězec | Ne | řetězec | `/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**).
|
||||
|
||||
If you want more information about how to use the **storage** property, please refer to this [comment](https://github.com/verdaccio/verdaccio/issues/1383#issuecomment-509933674).
|
168
website/crowdin/master/website/translated_docs/cs-CZ/plugins.md
Normal file
168
website/crowdin/master/website/translated_docs/cs-CZ/plugins.md
Normal file
|
@ -0,0 +1,168 @@
|
|||
---
|
||||
id: plugins
|
||||
title: "Plugins"
|
||||
---
|
||||
|
||||
Verdaccio is an plugabble aplication. It can be extended in many ways, either new authentication methods, adding endpoints or using a custom storage.
|
||||
|
||||
There are 4 types of plugins:
|
||||
|
||||
* Authentication
|
||||
* Middleware
|
||||
* Úložiště
|
||||
* UI Theme
|
||||
|
||||
> If you are interested to develop your own plugin, read the [development](dev-plugins.md) section.
|
||||
|
||||
## Použití
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
$> npm install --global verdaccio-activedirectory
|
||||
```
|
||||
|
||||
`verdaccio` as a sinopia fork it has backward compability with plugins that are compatible with `sinopia@1.4.0`. In such case the installation is the same.
|
||||
|
||||
$> npm install --global sinopia-memory
|
||||
|
||||
|
||||
### Konfigurace
|
||||
|
||||
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.
|
||||
|
||||
### Authentication Configuration
|
||||
|
||||
```yaml
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
#max_users: 1000
|
||||
```
|
||||
|
||||
and replacing them with (in case you decide to use a `ldap` plugin.
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
activedirectory:
|
||||
url: "ldap://10.0.100.1"
|
||||
baseDN: 'dc=sample,dc=local'
|
||||
domainSuffix: 'sample.local'
|
||||
```
|
||||
|
||||
#### Multiple Authentication plugins
|
||||
|
||||
This is tecnically possible, making the plugin order important, as the credentials will be resolved in order.
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
#max_users: 1000
|
||||
activedirectory:
|
||||
url: "ldap://10.0.100.1"
|
||||
baseDN: 'dc=sample,dc=local'
|
||||
domainSuffix: 'sample.local'
|
||||
```
|
||||
|
||||
### Middleware Configuration
|
||||
|
||||
This is an example how to set up a middleware plugin. All middleware plugins must be defined in the **middlewares** namespace.
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
> You might follow the [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) as base example.
|
||||
|
||||
### Storage Configuration
|
||||
|
||||
This is an example how to set up a storage plugin. All storage plugins must be defined in the **store** namespace.
|
||||
|
||||
```yaml
|
||||
store:
|
||||
memory:
|
||||
limit: 1000
|
||||
```
|
||||
|
||||
### Theme Configuration
|
||||
|
||||
Verdaccio allows to replace the User Interface with a custom one, we call it **theme**. By default, uses `@verdaccio/ui-theme` that comes built-in, but, you can use something different installing your own plugin.
|
||||
|
||||
```bash
|
||||
<br />$> 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 the time and pass through options if is need it.
|
||||
|
||||
```yaml
|
||||
theme:
|
||||
dark:
|
||||
option1: foo
|
||||
option2: bar
|
||||
```
|
||||
|
||||
## Legacy plugins
|
||||
|
||||
### Sinopia Plugins
|
||||
|
||||
> 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.
|
||||
|
||||
> 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*.
|
||||
|
||||
## Verdaccio Plugins
|
||||
|
||||
### Authorization 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.
|
||||
|
||||
### Middleware Plugins
|
||||
|
||||
* [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): verdacci 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
|
||||
|
||||
### Storage Plugins
|
||||
|
||||
* [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-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) Storage plugin to host packages **Google Cloud Storage**
|
||||
|
||||
## Caveats
|
||||
|
||||
> Not all these plugins are been tested continuously, some of them might not work at all. Please if you found any issue feel free to notify the owner of each plugin.
|
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
id: protect-your-dependencies
|
||||
title: "Protecting packages"
|
||||
---
|
||||
|
||||
`verdaccio` allows you protect publish, to achieve that you will need to set up correctly your [packages access](packages).
|
||||
|
||||
### Package configuration
|
||||
|
||||
Let's see for instance the following set up. You have a set of dependencies what are prefixed with `my-company-*` and you need to protect them from anonymous or another logged user without right credentials.
|
||||
|
||||
```yaml
|
||||
'my-company-*':
|
||||
access: admin teamA teamB teamC
|
||||
publish: admin teamA
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
With this configuration, basically we allow to groups **admin** and **teamA** to *publish* and **teamA** **teamB** **teamC** *access* to such dependencies.
|
||||
|
||||
### Use case: teamD try to access the dependency
|
||||
|
||||
So, if I am logged as **teamD**. I shouldn't be able to access all dependencies that match with `my-company-*` pattern.
|
||||
|
||||
```bash
|
||||
➜ npm whoami
|
||||
teamD
|
||||
```
|
||||
|
||||
I won't have access to such dependencies and also won't be visible via web for user **teamD**. If I try to access the following will happen.
|
||||
|
||||
```bash
|
||||
➜ npm install my-company-core
|
||||
npm ERR! code E403
|
||||
npm ERR! 403 Forbidden: webpack-1@latest
|
||||
```
|
||||
|
||||
or with `yarn`
|
||||
|
||||
```bash
|
||||
➜ yarn add my-company-core
|
||||
yarn add v0.24.6
|
||||
info No lockfile found.
|
||||
[1/4]
|
||||
error An unexpected error occurred: "http://localhost:5555/webpack-1: unregistered users are not allowed to access package my-company-core".
|
||||
```
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
id: puppet
|
||||
title: "Puppet"
|
||||
---
|
||||
|
||||
Instalace Verdaccia na Debian, Ubuntu, Fedoru a RedHat.
|
||||
|
||||
# Použití
|
||||
|
||||
Existují dvě varianty instalace verdaccia pomocí Puppet modulu:
|
||||
|
||||
* 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 explicitely 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. Scroll down for details about Master-Agent-mode variant.
|
||||
|
||||
Další informace:
|
||||
|
||||
<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).
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
id: repositories
|
||||
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).
|
|
@ -0,0 +1,177 @@
|
|||
---
|
||||
id: reverse-proxy
|
||||
title: "Reverse Proxy Setup"
|
||||
---
|
||||
|
||||
Using a reverse proxy is a common practice. The following configurations are the most recommended and used ones.
|
||||
|
||||
# Apache
|
||||
|
||||
Apache and `mod_proxy` should **not decode/encode slashes** and leave them as they are:
|
||||
|
||||
<VirtualHost *:80>
|
||||
AllowEncodedSlashes NoDecode
|
||||
ProxyPass /npm http://127.0.0.1:4873 nocanon
|
||||
ProxyPassReverse /npm http://127.0.0.1:4873
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
### Configuration with SSL
|
||||
|
||||
Apache virtual server configuration
|
||||
|
||||
apacheconfig
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost *:443>
|
||||
ServerName npm.your.domain.com
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/letsencrypt/live/npm.your.domain.com/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/npm.your.domain.com/privkey.pem
|
||||
SSLProxyEngine On
|
||||
ProxyRequests Off
|
||||
ProxyPreserveHost On
|
||||
AllowEncodedSlashes NoDecode
|
||||
ProxyPass / http://127.0.0.1:4873/ nocanon
|
||||
ProxyPassReverse / http://127.0.0.1:4873/
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
|
||||
|
||||
# Nginx
|
||||
|
||||
The following snippet is a full `docker` example can be tested in our [Docker examples repository](https://github.com/verdaccio/docker-examples/tree/master/reverse_proxy/nginx).
|
||||
|
||||
upstream verdaccio_v4 {
|
||||
server verdaccio_relative_path_v4:4873;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
upstream verdaccio_v4_root {
|
||||
server verdaccio_relative_path_v4_root:8000;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
upstream verdaccio_v3 {
|
||||
server verdaccio_relative_path_latest_v3:7771;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
access_log /var/log/nginx/verdaccio.log;
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4_root;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdacciov3/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
|
||||
proxy_pass http://verdaccio_v3/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## SSL example
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
return 302 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name localhost;
|
||||
|
||||
ssl_certificate /etc/nginx/cert.crt;
|
||||
ssl_certificate_key /etc/nginx/cert.key;
|
||||
|
||||
ssl on;
|
||||
ssl_session_cache builtin:1000 shared:SSL:10m;
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://verdaccio_v4_root;
|
||||
proxy_read_timeout 600;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4_root/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## Run behind reverse proxy with different domain and port
|
||||
|
||||
### Sub-directory
|
||||
|
||||
If the whole URL is being used for Verdaccio, you don't need to define a `url_prefix`, otherwise you would need something like this in your `config.yaml`.
|
||||
|
||||
```yaml
|
||||
url_prefix: /sub_directory/
|
||||
```
|
||||
|
||||
If you run verdaccio behind reverse proxy, you may noticed all resource file served as relaticve path, like `http://127.0.0.1:4873/-/static`
|
||||
|
||||
To resolve this issue, **you should send real domain and port to verdaccio with `Host` header**
|
||||
|
||||
Nginx configure should look like this:
|
||||
|
||||
```nginx
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:4873/;
|
||||
proxy_set_header Host $host:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
```
|
||||
|
||||
For this case, `url_prefix` should **NOT** set in verdaccio config
|
||||
|
||||
* * *
|
||||
|
||||
or a sub-directory installation:
|
||||
|
||||
```nginx
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_pass http://127.0.0.1:4873/$1;
|
||||
proxy_set_header Host $host:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
```
|
||||
|
||||
For this case, `url_prefix` should set to `/verdaccio/`
|
||||
|
||||
> Note: There is a Slash after install path (`https://your-domain:port/verdaccio/`)!
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: security-policy
|
||||
title: "Security Policy"
|
||||
---
|
||||
|
||||
Follow our security policy on [Github](https://github.com/verdaccio/verdaccio/security/policy)
|
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
id: 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.
|
||||
|
||||
## Running as a separate user
|
||||
|
||||
First create the verdaccio user:
|
||||
|
||||
```bash
|
||||
$ sudo adduser --system --gecos 'Verdaccio NPM mirror' --group --home /var/lib/verdaccio verdaccio
|
||||
```
|
||||
|
||||
Or, in case you do not have `adduser`:
|
||||
|
||||
```bash
|
||||
$ sudo useradd --system --comment 'Verdaccio NPM mirror' --create-home --home-dir /var/lib/verdaccio --shell /sbin/nologin verdaccio
|
||||
```
|
||||
|
||||
You create a shell as the verdaccio user using the following command:
|
||||
|
||||
```bash
|
||||
$ sudo su -s /bin/bash verdaccio
|
||||
$ cd
|
||||
```
|
||||
|
||||
The `cd` command sends you to the home directory of the verdaccio user. Make sure you run verdaccio at least once to generate the config file. Edit it according to your needs.
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
If you are running verdaccio in a Amazon EC2 Instance, [you will need set the listen in change your config file](https://github.com/verdaccio/verdaccio/issues/314#issuecomment-327852203) as is described above.
|
||||
|
||||
> Configure Apache or nginx? Please check out the [Reverse Proxy Setup](reverse-proxy.md)
|
||||
|
||||
## Keeping verdaccio running forever
|
||||
|
||||
You can use node package called ['forever'](https://github.com/nodejitsu/forever) to keep verdaccio running all the time.
|
||||
|
||||
First install `forever` globally:
|
||||
|
||||
```bash
|
||||
$ sudo npm install -g forever
|
||||
```
|
||||
|
||||
Make sure you've run verdaccio at least once to generate the config file and write down the created admin user. You can then use the following command to start verdaccio:
|
||||
|
||||
```bash
|
||||
$ forever start `which verdaccio`
|
||||
```
|
||||
|
||||
You can check the documentation for more information on how to use forever.
|
||||
|
||||
## Surviving server restarts
|
||||
|
||||
You can use `crontab` and `forever` together to start verdaccio after a server reboot. When you're logged in as the verdaccio user do the following:
|
||||
|
||||
```bash
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
This might ask you to choose an editor. Pick your favorite and proceed. Add the following entry to the file:
|
||||
|
||||
@reboot /usr/bin/forever start /usr/lib/node_modules/verdaccio/bin/verdaccio
|
||||
|
||||
|
||||
The locations may vary depending on your server setup. If you want to know where your files are you can use the 'which' command:
|
||||
|
||||
```bash
|
||||
$ which forever
|
||||
$ which verdaccio
|
||||
```
|
||||
|
||||
## 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.
|
46
website/crowdin/master/website/translated_docs/cs-CZ/ssl.md
Normal file
46
website/crowdin/master/website/translated_docs/cs-CZ/ssl.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
id: ssl
|
||||
title: "Nastavení SSL certifikátu"
|
||||
---
|
||||
|
||||
Follow these instructions to configure an SSL certificate to serve an NPM registry over HTTPS.
|
||||
|
||||
* Aktualizujte vlastnost `listen` ve vašem `~/.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.
|
||||
|
||||
* Vygenerovat certifikáty
|
||||
|
||||
$ 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:
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
<br />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)
|
||||
|
||||
* Spusťte `verdaccio` ve své příkazové rádce.
|
||||
|
||||
* 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`.
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
id: rozhovory
|
||||
title: "Rozhovory"
|
||||
---
|
||||
|
||||
Vyjmenováváme rozhovory o Verdaccio, pokud jste dali rozhovor nebo se chystáte dát rozhovor o Verdaccio nebo hodláte zmínit tento projekt, neváhejte jej sem přidat.
|
||||
|
||||
> Do not hesitate to share your content with the community, we encourage you to speak about Verdaccio. Pokud potřebujete pomoci s tím, jak začít, informace nebo zdroje, kontaktujte nás v našem [Chatu Discort](https://chat.verdaccio.org), pomůžeme vám.
|
||||
|
||||
## Nejnovější rozhovory <iframe width="960" height="540" src="https://www.youtube.com/embed/CnLA73E1BrE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen mark="crwd-mark"></iframe>
|
||||
|
||||
> Poslední sdílený rozhovor je zde vždy zvýrazněn. Pomůžeme vám sdílet váš hlas s komunitou.
|
||||
|
||||
* [Практический опыт работы с приватным хранилищем npm-пакетов (Verdaccio)](https://youtu.be/CnLA73E1BrE?t=10101) - [О Panda-Meetup](http://panda-meetup.ru/msk-frontend-meetup-2) - time (2:48:23)
|
||||
* [Madrid Node.js Meetup - Introducción a Verdaccio: gestión de paquetes privados, March 2019](https://www.todojs.com/introduccion-a-verdaccio/)
|
||||
* [Vienna.js Meetuo - Introduction to Verdaccio, January 2019](https://www.youtube.com/watch?v=hDIFKzmoCaA)
|
||||
* [#22 FloripaJS Brazil Meetup, February 2019](https://www.youtube.com/watch?v=iOp70_svQ_M&feature=youtu.be&t=7578)
|
||||
* [FrankenJS Angular & Beyond - Enterprise-Architectures for huge Angular Apps by Manfred Steyer](https://youtu.be/dWdJkqhQFXU?t=613)
|
||||
* [ngPoland 2017 - Manfred Steyer - Packages for Angular](https://youtu.be/3fMTdm7k_d0?t=662)
|
||||
* [Kamil Warpechowski: Jak zapanować nad wspólnym kodem w wielu projektach? [PL] - WarsawJS Meetup #44](https://www.youtube.com/watch?v=JIlQ468xfbU&feature=youtu.be&t=609)
|
||||
* [Architekturen für große Anwendungen im Angular-Umfeld - Manfred Steyer bei Frontend RheinMain @ AOE](https://youtu.be/eZ91bip6qm4?t=1010)
|
||||
* [reating Enterprise Web Applications with Node.js #WeAreDevelopers2018](https://youtu.be/RWE6aV7p0Wk?t=682)
|
||||
* [Architectures for Huge Angular Based Enterprise #WeAreDevelopers2018](https://youtu.be/q4XmAy6_ucw?t=551)
|
||||
* [BxJS Weekly Ep. 13 - June 2, 2018 (javascript news podcast)](https://youtu.be/Xo8CzYGKXTs?list=PL_gX69xPLi-mqs5BJe-xPnOPT6K1Y5_ZQ&t=2732)
|
||||
|
||||
## Budoucí rozhovory
|
||||
|
||||
* [Madrid Node.js Meetup 5h March 2019](https://www.meetup.com/es-ES/Node-js-Madrid/events/258299729/)
|
||||
|
||||
## Související videa
|
||||
|
||||
* [Local npm server](https://www.youtube.com/watch?v=vc2wMwcDKOE)
|
||||
* [Private NPM Registry (sinopia+docker)](https://www.youtube.com/watch?v=0TXTCrGaxKc)
|
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
id: uplinks
|
||||
title: "Uplinks"
|
||||
---
|
||||
|
||||
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)
|
||||
|
||||
### Použití
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
server2:
|
||||
url: http://mirror.local.net/
|
||||
timeout: 100ms
|
||||
server3:
|
||||
url: http://mirror2.local.net:9000/
|
||||
baduplink:
|
||||
url: http://localhost:55666/
|
||||
```
|
||||
|
||||
### Konfigurace
|
||||
|
||||
You can define mutiple uplinks and each of them must have an unique name (key). They can have the following properties:
|
||||
|
||||
| Vlastnost | Typ | Požadované | Příklad | Podpora | Popis | Výchozí hodnota |
|
||||
| ------------- | ------- | ---------- | --------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- |
|
||||
| url | řetězec | Ano | https://registry.npmjs.org/ | všechny | The registry url | npmjs |
|
||||
| ca | řetězec | Ne | ~./ssl/client.crt' | všechny | SSL path certificate | No default |
|
||||
| timeout | řetězec | Ne | 100ms | všechny | set new timeout for the request | 30s |
|
||||
| maxage | řetězec | Ne | 10m | všechny | the time threshold to the cache is valid | 2m |
|
||||
| fail_timeout | řetězec | Ne | 10m | všechny | defines max time when a request becomes a failure | 5m |
|
||||
| max_fails | číslo | Ne | 2 | všechny | limit maximun failure request | 2 |
|
||||
| cache | boolean | Ne | [true,false] | >= 2.1 | cache all remote tarballs in storage | true |
|
||||
| auth | list | Ne | [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 | Ne | authorization: "Bearer SecretJWToken==" | všechny | list of custom headers for the uplink | disabled |
|
||||
| strict_ssl | boolean | Ne | [true,false] | >= 3.0 | If true, requires SSL certificates be valid. | true |
|
||||
| agent_options | object | Ne | 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
|
||||
|
||||
The `auth` property allows you to use an auth token with an uplink. Using the default environment variable:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token_env: true # defaults to `process.env['NPM_TOKEN']`
|
||||
```
|
||||
|
||||
or via a specified environment variable:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token_env: FOO_TOKEN
|
||||
```
|
||||
|
||||
`token_env: FOO_TOKEN`internally will use `process.env['FOO_TOKEN']`
|
||||
|
||||
or by directly specifying a token:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token: "token"
|
||||
```
|
||||
|
||||
> Note: `token` has priority over `token_env`
|
||||
|
||||
### 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).
|
||||
* Exceed with multiple uplinks might slow down the lookup of your packages due for each request a npm client does, verdaccio does 1 call for each uplink.
|
||||
* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)
|
35
website/crowdin/master/website/translated_docs/cs-CZ/web.md
Normal file
35
website/crowdin/master/website/translated_docs/cs-CZ/web.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
id: webui
|
||||
title: "Webové uživatelské rozhraní"
|
||||
---
|
||||
|
||||
![Uplinks](https://user-images.githubusercontent.com/558752/52916111-fa4ba980-32db-11e9-8a64-f4e06eb920b3.png)
|
||||
|
||||
Verdaccio má webové uživatelské rozhraní pro zobrazení pouze soukromých balíčků a lze je přizpůsobit.
|
||||
|
||||
```yaml
|
||||
web:
|
||||
enable: true
|
||||
title: Verdaccio
|
||||
logo: logo.png
|
||||
primary_color: "#4b5e40"
|
||||
gravatar: true | false
|
||||
scope: "@scope"
|
||||
sort_packages: asc | desc
|
||||
```
|
||||
|
||||
Všechna omezení přístupu definovaná v [ochraně balíčků](protect-your-dependencies.md) se budou vztahovat také na webové rozhraní.
|
||||
|
||||
### Konfigurace
|
||||
|
||||
| Vlastnost | Typ | Požadované | Příklad | Podpora | Popis |
|
||||
| ------------- | ---------- | ---------- | ------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| enable | boolean | Ne | true/false | všechny | povolit zobrazení webového rozhraní |
|
||||
| title | řetězec | Ne | Verdaccio | všechny | Popis názvu hlavičky HTML |
|
||||
| gravatar | boolean | Ne | true | `>v4` | Gravatary budou vygenerovány pod kapotou, pokud je tato vlastnost povolena |
|
||||
| sort_packages | [asc,desc] | Ne | asc | `>v4` | Ve výchozím nastavení jsou soukromé balíčky seřazeny vzestupně |
|
||||
| logo | řetězec | Ne | `/local/path/to/my/logo.png` `http://my.logo.domain/logo.png` | všechny | uRI, kde se nachází logo (logo hlavičky) |
|
||||
| primary_color | řetězec | Ne | "#4b5e40" | `>4` | The primary color to use throughout the UI (header, etc) |
|
||||
| scope | řetězec | Ne | @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 |
|
||||
|
||||
> Doporučuje se, aby velikost loga měla velikost `40x40` pixelů.
|
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
id: co-je-verdaccio
|
||||
title: "Co je Verdaccio?"
|
||||
---
|
||||
|
||||
Verdaccio je **jednoduchý soukromý npm proxy registr** založená na **Node.js** <iframe width="560" height="315" src="https://www.youtube.com/embed/hDIFKzmoCaA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen mark="crwd-mark"></iframe>
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Co je registr
|
||||
|
||||
* A repository for packages that implements the **CommonJS Compliant Package Registry specification** for reading package info
|
||||
* Provide an API compatible with npm clients **(yarn/npm/pnpm)**
|
||||
* Follow the semantic Versioning compatible **(semver)**
|
||||
|
||||
$> verdaccio
|
||||
|
||||
|
||||
![registr](assets/verdaccio_server.gif)
|
||||
|
||||
## Pužívání Verdaccia
|
||||
|
||||
Using verdaccio with any node package manager client is quite straightforward.
|
||||
|
||||
![registr](assets/npm_install.gif)
|
||||
|
||||
You can use a custom registry either setting globally for all your projects
|
||||
|
||||
npm set registry http://localhost:4873
|
||||
|
||||
|
||||
nebo jako argument `--registry` v příkazové řádce v nmp (mírně odlišné v yarn)
|
||||
|
||||
npm install lodash --registry http://localhost:4873
|
||||
|
||||
|
||||
## Soukromí
|
||||
|
||||
Všechny balíčky které publikujete jsou soukromé a dostupné pouze na základě Vaší konfigurace.
|
||||
|
||||
## Proxy
|
||||
|
||||
Verdaccio ukládá do mezipaměti veškeré závislosti podle poptávky a zrychluje tím instalaci na lokálních a soukromých sítích.
|
||||
|
||||
## Verdaccio ve zkratce
|
||||
|
||||
* Webová aplikace založená na Node.js
|
||||
* Soukromý npm registr
|
||||
* Je to místní síťová proxy
|
||||
* It's a Pluggable application
|
||||
* Jednoduchá na instalaci a použití
|
||||
* Nabízíme podporu pro Docker a Kubernetes
|
||||
* 100% kompatibilní s yarn, npm a pnpm
|
||||
* Byl **forked** z `sinopia@1.4.0` a je 100% **zpětně kompatibilní**.
|
||||
* Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: kdo-používá
|
||||
title: "Kdo používá Verdaccio?"
|
||||
---
|
||||
|
||||
### K podnikání
|
||||
|
||||
*If you are using Verdaccio in your business and want to share your experience, let us know. Rádi si poslechneme váš názor.*
|
||||
|
||||
* [SheetJS](https://sheetjs.com/)
|
||||
* [Satispay](https://www.satispay.com/)
|
||||
|
||||
### Open Source Projekty
|
||||
|
||||
> **Nebojte se navrhnout jiné OSS používající 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)
|
||||
* [Uppy](https://github.com/transloadit/uppy)
|
||||
* [Aurelia Framework](https://github.com/aurelia)
|
||||
* [bit](https://github.com/teambit/bit)
|
||||
* [Hyperledger Composer](https://github.com/hyperledger/composer)
|
||||
* [Wix Yoshi](https://github.com/wix/yoshi)
|
||||
* [The AWS Cloud Development Kit](https://github.com/awslabs/aws-cdk)
|
||||
|
||||
#### Readme Recommendations
|
||||
|
||||
* [react-native-cli](https://github.com/react-native-community/react-native-cli/blob/master/CONTRIBUTING.md)
|
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
id: windows
|
||||
title: "Instalovat jako Windows službu"
|
||||
---
|
||||
|
||||
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`
|
||||
2. Install verdaccio locally (I ran into npm issues with global installs)
|
||||
* npm install verdaccio
|
||||
3. Create your `config.yaml` file in this location `(c:\verdaccio\config.yaml)`
|
||||
4. Windows Service Setup
|
||||
|
||||
## Using NSSM
|
||||
|
||||
ALTERNATIVE METHOD: (WinSW package was missing when I tried to download it)
|
||||
|
||||
* Download [NSSM](https://www.nssm.cc/download/) and extract
|
||||
|
||||
* Add the path that contains nssm.exe to the PATH
|
||||
|
||||
* 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`
|
||||
|
||||
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
|
||||
|
||||
## 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`
|
||||
|
||||
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.
|
||||
|
||||
## Repozitáře
|
||||
|
||||
* [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
id: amazon
|
||||
title: "Amazon Web Services"
|
||||
---
|
||||
|
||||
This document describes several approaches for deploying Verdaccio in the AWS cloud.
|
||||
|
||||
## EC2
|
||||
|
||||
[CloudFormation template for deploying this stack.](https://github.com/verdaccio/verdaccio/blob/master/contrib/aws/cloudformation-ec2-efs.yaml)
|
||||
|
||||
Architecture:
|
||||
|
||||
Clients
|
||||
|
|
||||
| (HTTPS)
|
||||
v
|
||||
Application Load Balancer
|
||||
|
|
||||
| (HTTP)
|
||||
v
|
||||
EC2 Auto Scaling Group (Amazon Linux 2)
|
||||
Docker image (Verdaccio)
|
||||
|
|
||||
| (NFS)
|
||||
v
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
## ECS
|
||||
|
||||
You can deploy Verdaccio as a task with an [ECS Volume](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) for persistent storage.
|
||||
|
||||
Note: Fargate doesn't support persistent volumes, so you have to use the S3 storage plugin.
|
||||
|
||||
## EKS
|
||||
|
||||
See the documentation pages on [Kubernetes](kubernetes) and [Docker](docker).
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
id: ansible
|
||||
title: "Ansible"
|
||||
---
|
||||
|
||||
Tenemos una solución hecha específicamente para `verdaccio` en nuestra organización.
|
||||
|
||||
<https://github.com/verdaccio/ansible-verdaccio>
|
||||
|
||||
#### Otras opciones
|
||||
|
||||
* Rol de Ansible para los usuarios de Gentoo: [jirutka/ansible-role-sinopia](https://github.com/jirutka/ansible-role-sinopia).
|
||||
* Rol de Ansible para los usuarios de Ubuntu: [jagregory/sinopia-ansible](https://github.com/jagregory/sinopia-ansible).
|
||||
* ansible-verdaccio-rol <https://github.com/refinery29/ansible-verdaccio-role>
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
id: 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!
|
||||
|
||||
> Any language is allowed
|
||||
|
||||
## Core Team 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)
|
||||
|
||||
# Articles / Blogs / Tutorials (by Language)
|
||||
|
||||
### Remarkable Articles
|
||||
|
||||
* [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)
|
||||
|
||||
### 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)
|
||||
|
||||
### 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)
|
||||
|
||||
### 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)
|
||||
|
||||
### French
|
||||
|
||||
* [Installer un registre NPM](https://allons-y.io/wiki/installer-un-registre-npm)
|
||||
|
||||
### 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/)
|
||||
|
||||
### 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)
|
||||
|
||||
## Slides
|
||||
|
||||
* [Introduction to Verdaccio VueJS Meetup 2018](https://www.slideshare.net/juancarlospicado/introduction-to-verdaccio)
|
||||
* [Introduccion 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)
|
74
website/crowdin/master/website/translated_docs/es-ES/auth.md
Normal file
74
website/crowdin/master/website/translated_docs/es-ES/auth.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
id: authentification
|
||||
title: "Autenticación"
|
||||
---
|
||||
|
||||
La autenticación esta atada al [plugin](plugins.md) de autenticación que estes usando. Las restricciones de paquetes es manejado por el [maneador de acceso de paquetes](packages.md).
|
||||
|
||||
El cliente de autenticación es manejado por el cliente `npm` en su mismo. Una vez has iniciado sesión en la aplicación:
|
||||
|
||||
```bash
|
||||
npm adduser --registry http://localhost:4873
|
||||
```
|
||||
|
||||
Un toquen es generado en el archivo de configuración de `npm` alojado en el folder de usuario de tu máquina. Para mas información sobre `.npmrc`lea [la documentación oficial](https://docs.npmjs.com/files/npmrc).
|
||||
|
||||
```bash
|
||||
cat .npmrc
|
||||
registry=http://localhost:5555/
|
||||
//localhost:5555/:_authToken="secretVerdaccioToken"
|
||||
//registry.npmjs.org/:_authToken=secretNpmjsToken
|
||||
```
|
||||
|
||||
#### Publicar anonimamente
|
||||
|
||||
`verdaccio` te permite habilitar publicar de manera anónima, para poder hacerlo necesitarás configurar correctamente tu [acceso a paquetes](packages.md).
|
||||
|
||||
Por ejemplo:
|
||||
|
||||
```yaml
|
||||
'my-company-*':
|
||||
access: $anonymous
|
||||
publish: $anonymous
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
Como se describe en [el ticket #212](https://github.com/verdaccio/verdaccio/issues/212#issuecomment-308578500) hasta la versión de `pm@5.3.0` y todas las versiones menores **no permitirán publicar sin un token**.
|
||||
|
||||
## Understanding Groups
|
||||
|
||||
### The meaning of `$all` and `$anonymous`
|
||||
|
||||
As you know *Verdaccio* uses the `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 the list.
|
||||
|
||||
As a takeaway, `$all` **will match all users, independently whether is logged or not**.
|
||||
|
||||
**The previous behavior only applies to the default authentication plugin**. If you are using a custom plugin and such plugin implements `allow_access`, `allow_publish` or `allow_unpublish`, the resolution of the access depends on the plugin itself. Verdaccio will only set the default groups.
|
||||
|
||||
Let's recap:
|
||||
|
||||
* **logged**: `$all`, `$authenticated`, + groups added by the plugin
|
||||
* **anonymous (logged out)**: `$all` and `$anonymous`.
|
||||
|
||||
## Htpasswd por defecto
|
||||
|
||||
In order to simplify the setup, `verdaccio` use a plugin based on `htpasswd`. Since version v3.0.x the `verdaccio-htpasswd` plugin is used by default.
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
# Maximum amount of users allowed to register, defaults to "+inf".
|
||||
# You can set this to -1 to disable registration.
|
||||
#max_users: 1000
|
||||
```
|
||||
|
||||
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción |
|
||||
| --------- | ------ | --------- | ---------- | ------- | ---------------------------------------------- |
|
||||
| file | string | Si | ./htpasswd | all | archivo que aloja las credenciales encriptadas |
|
||||
| max_users | number | No | 1000 | all | limita los usuarios que pueden registrarse |
|
||||
|
||||
En caso que decidas no permitir más nuevos registros, puedes definir `max_users: -1`.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: azure
|
||||
title: "Windows Azure"
|
||||
---
|
||||
|
||||
dsadsa
|
|
@ -0,0 +1,122 @@
|
|||
---
|
||||
id: best
|
||||
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 mandatory, you might pick some of them according your needs.
|
||||
|
||||
**Feel free to suggest your best practices with the Verdaccio community**.
|
||||
|
||||
## Private Registry
|
||||
|
||||
Puede agregar usuarios y administrar qué usuarios pueden acceder a cuáles paquetes.
|
||||
|
||||
It is recommended that you define a prefix for your private packages, for example `local-*` or scoped `@my-company/*`, so all your private things will look like this: `local-foo`. De esta manera puede separar claramente los paquetes públicos de los privados.
|
||||
|
||||
yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'local-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
|
||||
Always remember, **the order of packages access is important**, packages are mached always top to bottom.
|
||||
|
||||
### Uso de paquetes públicos desde npmjs.org
|
||||
|
||||
Si algún paquete no existe en el almacenamiento, el servidor intentará recuperarlo desde npmjs.org. Si npmjs.org está fuera de línea, este proporciona paquetes desde el caché que simulan que no existen otros paquetes. **Verdaccio will download only what's needed (= requested by clients)**, and this information will be cached, so if client will ask the same thing second time, it can be served without asking npmjs.org for it.
|
||||
|
||||
**Example:**
|
||||
|
||||
If you successfully request `express@4.0.1` from this server once, you'll able to do that again (with all it's dependencies) anytime even if npmjs.org is down. But say `express@4.0.0` will not be downloaded until it's actually needed by somebody. And if npmjs.org is offline, this server would say that only `express@4.0.1` (= only what's in the cache) is published, but nothing else.
|
||||
|
||||
### Anular paquetes públicos
|
||||
|
||||
If you want to use a modified version of some public package `foo`, you can just publish it to your local server, so when your type `npm install foo`, **it'll consider installing your version**.
|
||||
|
||||
Hay dos opciones aquí:
|
||||
|
||||
1. You want to create a separate **fork** and stop synchronizing with public version.
|
||||
|
||||
Si quiere hacer eso, debe modificar su archivo de configuración para que verdaccio nunca más realice solicitudes en cuanto a este paquete en npmjs. Add a separate entry for this package to `config.yaml` and remove `npmjs` from `proxy` list and restart the server.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
# comment it out or leave it empty
|
||||
# proxy:
|
||||
```
|
||||
|
||||
When you publish your package locally, **you should probably start with version string higher than existing one**, so it won't conflict with existing package in the cache.
|
||||
|
||||
2. Quiere utilizar temporalmente su versión, pero regresar a la pública tan pronto como se actualice.
|
||||
|
||||
In order to avoid version conflicts, **you should use a custom pre-release suffix of the next patch version**. For example, if a public package has version 0.1.2, you can upload `0.1.3-my-temp-fix`.
|
||||
|
||||
```bash
|
||||
npm version 0.1.3-my-temp-fix
|
||||
npm --publish --tag fix --registry http://localhost:4873
|
||||
```
|
||||
|
||||
This way your package will be used until its original maintainer updates his public package to `0.1.3`.
|
||||
|
||||
## Security
|
||||
|
||||
The security starts in your environment, for such thing we totally recommend read **[10 npm Security Best Practices](https://snyk.io/blog/ten-npm-security-best-practices/)** and follow the recommendation.
|
||||
|
||||
### Acceso a Paquetes
|
||||
|
||||
By default all packages are you publish in Verdaccio are accessible for all public, we totally recommend protect your registry from external non authorized users updating `access` property to `$authenticated`.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
'@*/*':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $authenticated
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
In that way, **nobody will take advance of your registry unless is authorized and private packages won't be displayed in the User Interface**.
|
||||
|
||||
## Server
|
||||
|
||||
### Secured Connections
|
||||
|
||||
Using **HTTPS** is a common recomendation, for such reason we recommend read the [SSL](ssl.md) section to make Verdaccio secure or using a HTTPS [reverse proxy](reverse-proxy.md) on top of Verdaccio.
|
||||
|
||||
### Expiring Tokens
|
||||
|
||||
In `verdaccio@3.x` the tokens have no expiration date. For such reason we introduced in the next `verdaccio@4.x` the JWT feature [PR#896](https://github.com/verdaccio/verdaccio/pull/896)
|
||||
|
||||
```yaml
|
||||
security:
|
||||
api:
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 15d
|
||||
notBefore: 0
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d
|
||||
```
|
||||
|
||||
**Using this configuration will override the current system and you will be able to control how long the token will live**.
|
||||
|
||||
Using JWT also improves the performance with authentication plugins, the old system will perform an unpackage and validating the credentials in each request, while JWT will rely on the token signature avoiding the overhead for the plugin.
|
||||
|
||||
As a side note, at **npmjs the token never expires**.
|
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
id: caching
|
||||
title: "Caching strategies"
|
||||
---
|
||||
|
||||
Verdaccio caches all packages by default into the `/storage` folder. But you can decide whether you want to follow a different strategy. Using of plugins you might use the cloud or any sort of database.
|
||||
|
||||
## Caching scenarios
|
||||
|
||||
* Build a Node.js project on **Continous 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
|
||||
|
||||
> We are looking for more strategies, feel free to share your experience in this field
|
||||
|
||||
## Avoid Caching tarballs
|
||||
|
||||
If you have a limited storage space, you might need to avoid cache tarballs, enabling `cache` false in each uplink will cache only metadata files.
|
||||
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
cache: false
|
||||
|
||||
|
||||
## Extending Cache Expiration Time
|
||||
|
||||
Verdaccio by default waits 2 minutes to invalidate the cache metadata before fetching new information from the remote registry.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
maxage: 30m
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
Sometimes caching packages is not a critical step, rather than route packages from different registries and achieving faster build times. There are two plugins that avoid write in a physical hard drive at all using the memory.
|
||||
|
||||
```bash
|
||||
npm install -g verdaccio-auth-memory
|
||||
npm install -g verdaccio-memory
|
||||
```
|
||||
|
||||
The configuration looks like this
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
auth-memory:
|
||||
users:
|
||||
foo:
|
||||
name: test
|
||||
password: test
|
||||
store:
|
||||
memory:
|
||||
limit: 1000
|
||||
```
|
||||
|
||||
Remember, once the server is restarted the data is being lost, we recommend this setup in cases where you do not need to persist at all.
|
15
website/crowdin/master/website/translated_docs/es-ES/chef.md
Normal file
15
website/crowdin/master/website/translated_docs/es-ES/chef.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
id: chef
|
||||
title: "Libro de Cocina del Chef"
|
||||
---
|
||||
|
||||
Usando el Libro de Cocina del Chef para Verdaccio
|
||||
|
||||
Para más información:
|
||||
|
||||
* <https://github.com/verdaccio/verdaccio-cookbook>
|
||||
* <https://supermarket.chef.io/cookbooks/verdaccio>
|
||||
|
||||
> Estamos buscando contribuyentes para este repositorio, si está interesado por favor notifique al autor via tickets.
|
||||
|
||||
Autor: [Keli Grubb](https://github.com/kgrubb) && Barthelemy Vessemont.
|
10
website/crowdin/master/website/translated_docs/es-ES/ci.md
Normal file
10
website/crowdin/master/website/translated_docs/es-ES/ci.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
id: ci
|
||||
title: "Integración Continua"
|
||||
---
|
||||
|
||||
Verdaccio puede ser usado en plataformas de integración continua (CI) para instalar o publicar paquetes. Si se utiliza NPM para instalar un paquete privado en un entorno de CI por primera vez, puedes encontrarte con algunos problemas. El comando `npm login` está diseñado para se usado interactivamente. Esto ocasiona un problema en CI, scripts, etc. Debajo hay algunos artículos detallando cómo usar `npm login` en diferentes plataformas de CI.
|
||||
|
||||
- [Travis CI](https://remysharp.com/2015/10/26/using-travis-with-private-npm-deps)
|
||||
- [Circle CI 1.0](https://circleci.com/docs/1.0/npm-login/) ó [Circle CI 2.0](https://circleci.com/docs/2.0/deployment-integrations/#npm)
|
||||
- [Gitlab CI](https://www.exclamationlabs.com/blog/continuous-deployment-to-npm-using-gitlab-ci/)
|
34
website/crowdin/master/website/translated_docs/es-ES/cli.md
Normal file
34
website/crowdin/master/website/translated_docs/es-ES/cli.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
id: cli
|
||||
title: "Herramienta de Linea de Comando"
|
||||
---
|
||||
|
||||
El CLI de verdaccio es la forma de iniciar la aplicación.
|
||||
|
||||
## Comandos
|
||||
|
||||
```bash
|
||||
verdaccio --listen 4000 --config ~./config.yaml
|
||||
```
|
||||
|
||||
| Comando | Por Defecto | Ejemplo | Descripción |
|
||||
| ------------------ | ------------------------------ | -------------- | ------------------------------------ |
|
||||
| --listen \ **-l** | 4873 | -p 7000 | puerto http |
|
||||
| --config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | el archivo de configuración |
|
||||
| --info \ **-i** | | | prints local environment information |
|
||||
|
||||
## Ubicación por defecto del archivo de configuración
|
||||
|
||||
Para localizar el directorio de inicio, verdaccio confia en **$XDG_DATA_HOME** como primera opción y en un ambiente Windows se usa [la variable de ambiente APPDATA](https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/).
|
||||
|
||||
## Config file format
|
||||
|
||||
Config file should be YAML, JSON or NodeJS module. YAML format is detected by parsing config file extension (yaml or yml, case insensitive).
|
||||
|
||||
## Ubicación del almacenamiento
|
||||
|
||||
Verdaccio usa la variable de ambiente **$XDG_DATA_HOME** por defecto para ubicar el almacenamiento por defecto, el cual [debería ser lo mismo ](https://askubuntu.com/questions/538526/is-home-local-share-the-default-value-for-xdg-data-home-in-ubuntu-14-04) que $HOME/.local/share. Si estas usando un almacenamiento personalizado, lo anterior es irrelevante.
|
||||
|
||||
## Default database file location
|
||||
|
||||
The default database file location is in the storage location. Starting with version 4.0.0, the database file name will be **.verdaccio-db.json** for a new installation of Verdaccio. When upgrading an existing Verdaccio server, the file name will remain **.sinopia-db.json**.
|
252
website/crowdin/master/website/translated_docs/es-ES/config.md
Normal file
252
website/crowdin/master/website/translated_docs/es-ES/config.md
Normal file
|
@ -0,0 +1,252 @@
|
|||
---
|
||||
id: configuration
|
||||
title: "Archivo de Configuración"
|
||||
---
|
||||
|
||||
Este archivo es la piedra angular de verdaccio donde puedes modificar su comportamiento por defecto, activar plugins y características externas.
|
||||
|
||||
A default configuration file `config.yaml` is created the very first time you run `verdaccio`.
|
||||
|
||||
## Configuración por Defecto
|
||||
|
||||
La configuración por defecto tiene soporte para paquetes con **enfoque** y permite a los usuarios acceder a todos los paquetes pero solo **a los usuarios autentificados a publicarlos**.
|
||||
|
||||
```yaml
|
||||
storage: ./storage
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
packages:
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
'**':
|
||||
proxy: npmjs
|
||||
logs:
|
||||
- {type: stdout, format: pretty, level: http}
|
||||
```
|
||||
|
||||
## Secciones
|
||||
|
||||
Las siguientes secciones explican que significa cada propiedad y todas sus diferentes opciones.
|
||||
|
||||
### Almacenamiento
|
||||
|
||||
Es la localización por defecto del almacenamiento. **Verdaccio esta basado por defecto en archivos locales de sistema**.
|
||||
|
||||
```yaml
|
||||
storage: ./storage
|
||||
```
|
||||
|
||||
### Extensiones
|
||||
|
||||
Es la localización del directorio de extensiones. Muy útil para despliegues basados en Docker/Kubernetes.
|
||||
|
||||
```yaml
|
||||
plugins: ./plugins
|
||||
```
|
||||
|
||||
### Autentificación
|
||||
|
||||
La configuración de autentificación es definida aquí, por defecto la autentificación esta basada en `htpasswd` y es por defecto. Puedes modificar el comportamiento via [extensiones](plugins.md). Para mas información sobre esta sección lee [la página de autentificación](auth.md).
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
max_users: 1000
|
||||
```
|
||||
|
||||
### Security
|
||||
|
||||
<small>Since: <code>verdaccio@4.0.0</code> <a href="https://github.com/verdaccio/verdaccio/pull/168">#168</a></small>
|
||||
|
||||
The security block allows you to customise the token signature. To enable [JWT (json web token)](https://jwt.io/) new signture you need to add the block `jwt` to `api` section, `web` uses by default `jwt`.
|
||||
|
||||
The configuration is separated in two sections, `api` and `web`. To use JWT on `api`, it has to be defined, otherwise will use the legacy token signature (`aes192`). For JWT you might customize the [signature](https://github.com/auth0/node-jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback) and the token [verification](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback) with your own properties.
|
||||
|
||||
security:
|
||||
api:
|
||||
legacy: true
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 29d
|
||||
verify:
|
||||
someProp: [value]
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d # 7 days by default
|
||||
verify:
|
||||
someProp: [value]
|
||||
|
||||
|
||||
> We highly recommend move to JWT since legacy signature (`aes192`) is deprecated and will disappear in future versions.
|
||||
|
||||
### Server
|
||||
|
||||
A set of properties to modify the behavior of the server application, specifically the API (Express.js).
|
||||
|
||||
> You can specify HTTP/1.1 server keep alive timeout in seconds for incomming connections. A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout. WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
|
||||
|
||||
```yaml
|
||||
server:
|
||||
keepAliveTimeout: 60
|
||||
```
|
||||
|
||||
### Web UI
|
||||
|
||||
This property allow you to modify the look and feel of the web UI. For more information about this section read the [web ui page](web.md).
|
||||
|
||||
```yaml
|
||||
web:
|
||||
enable: true
|
||||
title: Verdaccio
|
||||
logo: logo.png
|
||||
scope:
|
||||
```
|
||||
|
||||
### Uplinks
|
||||
|
||||
Uplinks is the ability of the system to fetch packages from remote registries when those packages are not available locally. For more information about this section read the [uplinks page](uplinks.md).
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
```
|
||||
|
||||
### Paquetes
|
||||
|
||||
Packages allow the user to control how the packages are gonna be accessed. For more information about this section read the [packages page](packages.md).
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
## Configuración Avanzada
|
||||
|
||||
### Offline Publish
|
||||
|
||||
By default `verdaccio` does not allow to publish when the client is offline, that behavior can be overridden by setting this to *true*.
|
||||
|
||||
```yaml
|
||||
publish:
|
||||
allow_offline: false
|
||||
```
|
||||
|
||||
<small>Since: <code>verdaccio@2.3.6</code> due <a href="https://github.com/verdaccio/verdaccio/pull/223">#223</a></small>
|
||||
|
||||
### URL Prefix
|
||||
|
||||
```yaml
|
||||
url_prefix: /verdaccio/
|
||||
```
|
||||
|
||||
> We recommend use a subdirectory `/verdaccio/` instead a URI.
|
||||
|
||||
### Max Body Size
|
||||
|
||||
By default the maximum body size for a JSON document is `10mb`, if you run in errors as `"request entity too large"` you may increase this value.
|
||||
|
||||
```yaml
|
||||
max_body_size: 10mb
|
||||
```
|
||||
|
||||
### Listen Port
|
||||
|
||||
`verdaccio` runs by default in the port `4873`. Changing the port can be done via [cli](cli.md) or in the configuration file, the following options are valid.
|
||||
|
||||
```yaml
|
||||
listen:
|
||||
# - localhost:4873 # default value
|
||||
# - http://localhost:4873 # same thing
|
||||
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
|
||||
# - https://example.org:4873 # if you want to use https
|
||||
# - "[::1]:4873" # ipv6
|
||||
# - unix:/tmp/verdaccio.sock # unix socket
|
||||
```
|
||||
|
||||
### HTTPS
|
||||
|
||||
To enable `https` in `verdaccio` it's enough to set the `listen` flag with the protocol *https://*. For more information about this section read the [ssl page](ssl.md).
|
||||
|
||||
```yaml
|
||||
https:
|
||||
key: ./path/verdaccio-key.pem
|
||||
cert: ./path/verdaccio-cert.pem
|
||||
ca: ./path/verdaccio-csr.pem
|
||||
```
|
||||
|
||||
### Proxy
|
||||
|
||||
Proxies are special-purpose HTTP servers designed to transfer data from remote servers to local clients.
|
||||
|
||||
#### http_proxy and https_proxy
|
||||
|
||||
If you have a proxy in your network you can set a `X-Forwarded-For` header using the following properties.
|
||||
|
||||
```yaml
|
||||
http_proxy: http://something.local/
|
||||
https_proxy: https://something.local/
|
||||
```
|
||||
|
||||
#### no_proxy
|
||||
|
||||
This variable should contain a comma-separated list of domain extensions proxy should not be used for.
|
||||
|
||||
```yaml
|
||||
no_proxy: localhost,127.0.0.1
|
||||
```
|
||||
|
||||
### Notificaciones
|
||||
|
||||
Enabling notifications to third-party tools is fairly easy via web hooks. For more information about this section read the [notifications page](notifications.md).
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
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"}'
|
||||
```
|
||||
|
||||
> For more detailed configuration settings, please [check the source code](https://github.com/verdaccio/verdaccio/tree/master/conf).
|
||||
|
||||
### Audit
|
||||
|
||||
<small>Since: <code>verdaccio@3.0.0</code></small>
|
||||
|
||||
`npm audit` is a new command released with [npm 6.x](https://github.com/npm/npm/releases/tag/v6.1.0). Verdaccio includes a built-in middleware plugin to handle this command.
|
||||
|
||||
> If you have a new installation it comes by default, otherwise you need to add the following props to your config file
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
### Experiments
|
||||
|
||||
This release includes a new property named `experiments` that can be placed in the `config.yaml` and is completely optional.
|
||||
|
||||
We want to be able to ship new things without affecting production environments. This flag allows us to add new features and get feedback from the community that wants to use them.
|
||||
|
||||
The features that are under this flag might not be stable or might be removed in future releases.
|
||||
|
||||
Here one example:
|
||||
|
||||
```yaml
|
||||
experiments:
|
||||
token: false
|
||||
```
|
||||
|
||||
> To disable the experiments warning in the console, you must comment out the whole `experiments` section.
|
|
@ -0,0 +1,240 @@
|
|||
---
|
||||
id: dev-plugins
|
||||
title: "Extensiones en Desarrollo"
|
||||
---
|
||||
|
||||
Existen muchas maneras de extender `verdaccio`, los tipos de extensiones soportados son:
|
||||
|
||||
* Extensiones de autenticación
|
||||
* Extensiones de Middleware (since `v2.7.0`)
|
||||
* Extensiones de Almacenamiento desde (`v3.x`)
|
||||
|
||||
> Nosotros reocmendados desarrollar extensiones usando nuestras [definiciones de tipado de Flow](https://github.com/verdaccio/flow-types).
|
||||
|
||||
## Extensión de Autenticación
|
||||
|
||||
Basicamente tenemos que retornar un objecto con un simple método llamado `authenticate`que recivirá 3 argumentos (`user, password, callback`).
|
||||
|
||||
### API
|
||||
|
||||
```flow
|
||||
interface IPluginAuth extends IPlugin {
|
||||
login_url?: string;
|
||||
authenticate(user: string, password: string, cb: Callback): void;
|
||||
adduser(user: string, password: string, cb: Callback): void;
|
||||
allow_access(user: RemoteUser, pkg: $Subtype<PackageAccess>, cb: Callback): void;
|
||||
apiJWTmiddleware(user: RemoteUser, pkg: $Subtype<PackageAccess>, cb: Callback): void;
|
||||
allow_publish(helpers): void;
|
||||
}
|
||||
```
|
||||
|
||||
> Only `adduser`, `allow_access`, `apiJWTmiddleware` and `allow_publish` are optional, verdaccio provide a fallback in all those cases.
|
||||
|
||||
#### apiJWTmiddleware method
|
||||
|
||||
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).
|
||||
|
||||
#### Callback
|
||||
|
||||
Una vez que la autenticación ha sido ejecutada habrá 2 argumentos que dara una respuesta a `verdaccio`.
|
||||
|
||||
###### OnError
|
||||
|
||||
O bien algo malo paso o la autenticación no fue satisfactoria.
|
||||
|
||||
```flow
|
||||
callback(null, false)
|
||||
```
|
||||
|
||||
###### OnSuccess
|
||||
|
||||
La autenticación fue satisfactoria.
|
||||
|
||||
`groups` es un array de cadenas de los cuales el usuario es parte.
|
||||
|
||||
callback(null, groups);
|
||||
|
||||
|
||||
### Ejemplo
|
||||
|
||||
```javascript
|
||||
function Auth(config, stuff) {
|
||||
var self = Object.create(Auth.prototype);
|
||||
self._users = {};
|
||||
|
||||
// config for this module
|
||||
self._config = config;
|
||||
|
||||
// verdaccio logger
|
||||
self._logger = stuff.logger;
|
||||
|
||||
// pass verdaccio logger to ldapauth
|
||||
self._config.client_options.log = stuff.logger;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
Auth.prototype.authenticate = function (user, password, callback) {
|
||||
var LdapClient = new LdapAuth(self._config.client_options);
|
||||
....
|
||||
LdapClient.authenticate(user, password, function (err, ldapUser) {
|
||||
...
|
||||
var groups;
|
||||
...
|
||||
callback(null, groups);
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = Auth;
|
||||
```
|
||||
|
||||
And the configuration will looks like:
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
```
|
||||
|
||||
Where `htpasswd` is the sufix of the plugin name. eg: `verdaccio-htpasswd` and the rest of the body would be the plugin configuration params.
|
||||
|
||||
## Extensión de Middleware
|
||||
|
||||
Middleware plugins have the capability to modify the API layer, either adding new endpoints or intercepting requests.
|
||||
|
||||
```flow
|
||||
interface verdaccio$IPluginMiddleware extends verdaccio$IPlugin {
|
||||
register_middlewares(app: any, auth: IBasicAuth, storage: IStorageManager): void;
|
||||
}
|
||||
```
|
||||
|
||||
### register_middlewares
|
||||
|
||||
The method provide full access to the authentification and storage via `auth` and `storage`. `app` is the express application that allows you to add new endpoints.
|
||||
|
||||
> A pretty good example of middleware plugin is the [sinopia-github-oauth](https://github.com/soundtrackyourbrand/sinopia-github-oauth) and [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit).
|
||||
|
||||
### API
|
||||
|
||||
```js
|
||||
function register_middlewares(expressApp, authInstance, storageInstance) {
|
||||
/* more stuff */
|
||||
}
|
||||
```
|
||||
|
||||
To register a middleware we need an object with a single method called `register_middlewares` that will recieve 3 arguments (`expressApp, auth, storage`). *Auth* is the authentification instance and *storage* is also the main Storage instance that will give you have access to all to the storage actions.
|
||||
|
||||
## Extensión de Almacenamiento
|
||||
|
||||
Verdaccio by default uses a file system storage plugin [local-storage](https://github.com/verdaccio/local-storage), but, since `verdaccio@3.x` you can plug in a custom storage replacing the default behaviour.
|
||||
|
||||
### API
|
||||
|
||||
The storage API is a bit more complex, you will need to create a class that return a `IPluginStorage` implementation. Please see details bellow.
|
||||
|
||||
```flow
|
||||
class LocalDatabase<IPluginStorage>{
|
||||
constructor(config: $Subtype<verdaccio$Config>, logger: verdaccio$Logger): ILocalData;
|
||||
}
|
||||
|
||||
interface IPluginStorage {
|
||||
logger: verdaccio$Logger;
|
||||
config: $Subtype<verdaccio$Config>;
|
||||
add(name: string, callback: verdaccio$Callback): void;
|
||||
remove(name: string, callback: verdaccio$Callback): void;
|
||||
get(callback: verdaccio$Callback): void;
|
||||
getSecret(): Promise<string>;
|
||||
setSecret(secret: string): Promise<any>;
|
||||
getPackageStorage(packageInfo: string): verdaccio$IPackageStorage;
|
||||
search(onPackage: verdaccio$Callback, onEnd: verdaccio$Callback, validateName: Function): void;
|
||||
}
|
||||
|
||||
interface IPackageStorageManager {
|
||||
path: string;
|
||||
logger: verdaccio$Logger;
|
||||
writeTarball(name: string): verdaccio$IUploadTarball;
|
||||
readTarball(name: string): verdaccio$IReadTarball;
|
||||
readPackage(fileName: string, callback: verdaccio$Callback): void;
|
||||
createPackage(name: string, value: verdaccio$Package, cb: verdaccio$Callback): void;
|
||||
deletePackage(fileName: string, callback: verdaccio$Callback): void;
|
||||
removePackage(callback: verdaccio$Callback): void;
|
||||
updatePackage(pkgFileName: string,
|
||||
updateHandler: verdaccio$Callback,
|
||||
onWrite: verdaccio$Callback,
|
||||
transformPackage: Function,
|
||||
onEnd: verdaccio$Callback): void;
|
||||
savePackage(fileName: string, json: verdaccio$Package, callback: verdaccio$Callback): void;
|
||||
}
|
||||
|
||||
class verdaccio$IUploadTarball extends stream$PassThrough {
|
||||
abort: Function;
|
||||
done: Function;
|
||||
_transform: Function;
|
||||
abort(): void;
|
||||
done(): void;
|
||||
}
|
||||
|
||||
class verdaccio$IReadTarball extends stream$PassThrough {
|
||||
abort: Function;
|
||||
abort(): void;
|
||||
}
|
||||
```
|
||||
|
||||
> The Storage API is still experimental and might change in the next minor versions. For further information about Storage API please follow the [types definitions in our official repository](https://github.com/verdaccio/flow-types).
|
||||
|
||||
### Storage Examples
|
||||
|
||||
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)
|
||||
* [local-storage](https://github.com/verdaccio/local-storage)
|
||||
* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud)
|
||||
* [verdaccio-s3-storage](https://github.com/Remitly/verdaccio-s3-storage/tree/s3)
|
||||
|
||||
> Are you willing to contribute with new Storage Plugins? [Click here.](https://github.com/verdaccio/verdaccio/issues/103#issuecomment-357478295)
|
||||
|
||||
## 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.
|
||||
|
||||
### API
|
||||
|
||||
```javascript
|
||||
const path = require('path');
|
||||
|
||||
module.exports = (...arguments) => {
|
||||
return path.join(__dirname, 'static');
|
||||
};
|
||||
```
|
||||
|
||||
It is imporant that the name of the plugin **must start with `verdaccio-theme-` prefix**.
|
||||
|
||||
### Theme Example
|
||||
|
||||
* [@verdaccio/ui-theme](https://github.com/verdaccio/ui): The default Verdaccio theme based in React.js.
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
### API
|
||||
|
||||
The method `filter_metadata` will allow you to filter metadata that comes from any uplink, it is `Promise` based and has to return the same metadata modified.
|
||||
|
||||
> Do not remove properties from the metadata, try to do not mutate rather return a new object.
|
||||
|
||||
interface IPluginStorageFilter<T> extends IPlugin<T> {
|
||||
filter_metadata(packageInfo: Package): Promise<Package>;
|
||||
}
|
201
website/crowdin/master/website/translated_docs/es-ES/docker.md
Normal file
201
website/crowdin/master/website/translated_docs/es-ES/docker.md
Normal file
|
@ -0,0 +1,201 @@
|
|||
---
|
||||
id: docker
|
||||
title: Docker
|
||||
---
|
||||
|
||||
![alt Docker Pulls Count](https://dockeri.co/image/verdaccio/verdaccio "Docker Pulls Count")
|
||||
|
||||
Para descargar la última [imagen de Docker](https://hub.docker.com/r/verdaccio/verdaccio/):
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio
|
||||
```
|
||||
|
||||
![Docker pull](assets/docker_verdaccio.gif)
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Versiones con Etiquetas
|
||||
|
||||
Desde la versión `` puedes obtener imagenes de docker por [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), de la siguiente manera:
|
||||
|
||||
Para usar una versión "major":
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4
|
||||
```
|
||||
|
||||
Para usar una versión "minor":
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4.0
|
||||
```
|
||||
|
||||
Para un (parche) especifico:
|
||||
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio:4.0.0
|
||||
```
|
||||
|
||||
> Si estas interesado en un listado de todos tags, [por favor visite el sitio web de Docker Hub](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
|
||||
|
||||
## Running Verdaccio using Docker
|
||||
|
||||
Para ejecutar el contenedor docker:
|
||||
|
||||
```bash
|
||||
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
|
||||
```
|
||||
|
||||
The last argument defines which image to use. The above line will pull the latest prebuilt image from dockerhub, if you haven't done that already.
|
||||
|
||||
Si has [construido una imagen localmente](#build-your-own-docker-image) usa `verdaccio` como el último argumento.
|
||||
|
||||
Puede usar `-v` para montar `conf`, `storage` and `plugins` a archivos de sistema alojados:
|
||||
|
||||
```bash
|
||||
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
|
||||
-p 4873:4873 \
|
||||
-v $V_PATH/conf:/verdaccio/conf \
|
||||
-v $V_PATH/storage:/verdaccio/storage \
|
||||
-v $V_PATH/plugins:/verdaccio/plugins \
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
> 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 /opt/verdaccio` otherwise you will get permission errors at runtime. [Usar el volumen docker](https://docs.docker.com/storage/volumes/) es recomendado antes que usar el montaje de unión.
|
||||
|
||||
Verdaccio 4 provides a new set of environment variables to modify either permissions, port or http protocol. Here the complete list:
|
||||
|
||||
| Propiedad | default | Descripción |
|
||||
| --------------------- | ---------------------- | -------------------------------------------------- |
|
||||
| VERDACCIO_APPDIR | `/opt/verdaccio-build` | 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 |
|
||||
|
||||
### Extensiones
|
||||
|
||||
Extensiones pueden ser instaladas en un directorio separado y montado usando Docker o Kubernetes, de todos modos debes asegurarte que construyes extensiones con dependencias nativas usando como base la imagen de Dockerfile Verdaccio.
|
||||
|
||||
```docker
|
||||
FROM verdaccio/verdaccio
|
||||
|
||||
USER root
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN npm i && npm install verdaccio-s3-storage
|
||||
|
||||
USER verdaccio
|
||||
```
|
||||
|
||||
### Configuración de Docker y puerto de escucha por defecto
|
||||
|
||||
Any `host:port` configured in `conf/config.yaml` under `listen` **is currently ignored when using docker**.
|
||||
|
||||
If you want to reach Verdaccio docker instance under different port, lets say `5000` in your `docker run` command add the environment variable `VERDACCIO_PORT=5000` and then expose the port `-p 5000:5000`.
|
||||
|
||||
```bash
|
||||
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio \
|
||||
-e "VERDACCIO_PORT=8080" -p 8080:8080 \
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
Of course the numbers you give to `-p` paremeter need to match.
|
||||
|
||||
### Usando HTTPS con Docker
|
||||
|
||||
Puedes configurar el protocolo que verdaccio va a escuchar, similarmente que con la configuración del puerto. Tienes que anular el valor por defecto ("http") de la variable de ambiente a "https" de `PROTOCOL`, despues debe especificar los certificados en el config.yaml.
|
||||
|
||||
```bash
|
||||
docker run -it --rm --name verdaccio \
|
||||
--env "VERDACCIO_PROTOCOL=https" -p 4873:4873
|
||||
verdaccio/verdaccio
|
||||
```
|
||||
|
||||
### Usando docker-compose
|
||||
|
||||
1. Obtén la última versión de [docker-compose](https://github.com/docker/compose).
|
||||
2. Construye y ejecuta el contenedor:
|
||||
|
||||
```bash
|
||||
$ 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"
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=4873
|
||||
ports:
|
||||
- "4873:4873"
|
||||
volumes:
|
||||
- "./storage:/verdaccio/storage"
|
||||
- "./config:/verdaccio/conf"
|
||||
- "./plugins:/verdaccio/plugins"
|
||||
networks:
|
||||
node-network:
|
||||
driver: bridge
|
||||
```
|
||||
|
||||
Docker generará un volumen con nombre que persistira con los datos de la aplicación. Puedes usar `docker inspect` o `docker volume inspect` para revelar la ubicación física del volumen y editar la configuración, de la siguiente manera:
|
||||
|
||||
```bash
|
||||
$ docker volume inspect verdaccio_verdaccio
|
||||
[
|
||||
{
|
||||
"Name": "verdaccio_verdaccio",
|
||||
"Driver": "local",
|
||||
"Mountpoint": "/var/lib/docker/volumes/verdaccio_verdaccio/_data",
|
||||
"Labels": null,
|
||||
"Scope": "local"
|
||||
}
|
||||
]
|
||||
|
||||
```
|
||||
|
||||
## Construye tu propia imagen de Docker
|
||||
|
||||
```bash
|
||||
docker build -t verdaccio .
|
||||
```
|
||||
|
||||
Existe tambien un comando npm para construir la imagen de Docker, tambien puede hacerlo así:
|
||||
|
||||
```bash
|
||||
yarn run build:docker
|
||||
```
|
||||
|
||||
Note: El primer build podria tomar algunos minutos para construir porque necesita ejecutar `npm install`, y podría tardar mas cuando los archivos no estan listados en `.dockerignore`.
|
||||
|
||||
Please note that for any of the above docker commands you need to have docker installed on your machine and the docker executable should be available on your `$PATH`.
|
||||
|
||||
## Ejemplos con Docker
|
||||
|
||||
Existe un repositorio separado que aloja multiples configuraciones de imagenes Docker con `verdaccio`, por ejemplo, un servidor proxy a la inversa:
|
||||
|
||||
<https://github.com/verdaccio/docker-examples>
|
||||
|
||||
## Imágenes de Docker Personalizadas
|
||||
|
||||
> If you have made an image based on Verdaccio, feel free to add it to this list.
|
||||
|
||||
* [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) imagen de docker que ejecuta verdaccio desde coldrye-debian-nodejs.
|
68
website/crowdin/master/website/translated_docs/es-ES/e2e.md
Normal file
68
website/crowdin/master/website/translated_docs/es-ES/e2e.md
Normal file
|
@ -0,0 +1,68 @@
|
|||
---
|
||||
id: e2e
|
||||
title: "Pruebas End to End"
|
||||
---
|
||||
|
||||
Algunos projectos organizan paquetes en multi repositorios o [mono repositorios](https://github.com/babel/babel/blob/master/doc/design/monorepo.md). Pruebas E2E es un tema que usualmente es solo relevante para Interfaces de Usuario, pero desde el punto de vista de Node.js, **los paquetes que publicamos tambien debe ser probados**.
|
||||
|
||||
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Solution: a local npm registry. <a href="https://t.co/kvcyVANVSK">https://t.co/kvcyVANVSK</a></p>— Dan Abramov (@dan_abramov) <a href="https://twitter.com/dan_abramov/status/951427674844680192?ref_src=twsrc%5Etfw">11 de enero de 2018</a></blockquote>
|
||||
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||
|
||||
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)
|
||||
|
||||
**Verdaccio** is a lightweight registry with zero-configuration that **fits perfectly in any E2E + CI workflow**.
|
||||
|
||||
## Implementation
|
||||
|
||||
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).
|
||||
|
||||
### Example using Bash
|
||||
|
||||
This is the most simple example using Verdaccio in a bash script (extracted from *create-react-app*).
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
local_registry="http://0.0.0.0:4873"
|
||||
|
||||
# start local registry
|
||||
tmp_registry_log=`mktemp`
|
||||
sh -c "mkdir -p $HOME/.config/verdaccio"
|
||||
sh -c "cp --verbose /config.yaml $HOME/.config/verdaccio/config.yaml"
|
||||
sh -c "nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &>$tmp_registry_log &"
|
||||
# wait for `verdaccio` to boot
|
||||
grep -q 'http address' <(tail -f $tmp_registry_log)
|
||||
# login so we can publish packages
|
||||
sh -c "npm-auth-to-token -u test -p test -e test@test.com -r $local_registry"
|
||||
# Run nmp command
|
||||
sh -c "npm --registry $local_registry publish"
|
||||
```
|
||||
|
||||
## Whom are using it for E2E?
|
||||
|
||||
* [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests) *(+64k ⭐️)*
|
||||
* [Storybook](https://github.com/storybooks/storybook) *(+34k ⭐️)*
|
||||
* [Gatsby](https://github.com/gatsbyjs/gatsby) *(+31k ⭐️) WIP* [#8791](https://github.com/gatsbyjs/gatsby/pull/8791) [#11525](https://github.com/gatsbyjs/gatsby/pull/11525)
|
||||
* [Uppy](https://github.com/transloadit/uppy) *(+15k ⭐️)*
|
||||
* [Aurelia Framework](https://github.com/aurelia) *(+10k ⭐️)*
|
||||
* [bit](https://github.com/teambit/bit) *(+6k ⭐️)*
|
||||
* [pnpm](https://github.com/pnpm/pnpm) *(+5k ⭐️)*
|
||||
* [Mozilla Neutrino](https://github.com/neutrinojs/neutrino) *(+3k ⭐️)*
|
||||
* [Embark](https://embark.status.im/) *(+3k ⭐️)*
|
||||
* [Hyperledger Composer](https://github.com/hyperledger/composer) *(+1.6k ⭐️)*
|
||||
* [Wix Yoshi](https://github.com/wix/yoshi)
|
||||
|
||||
## Future
|
||||
|
||||
Babel.js might be interested on integrate Verdaccio in their workflow, if you want to contribute, check [this ticket](https://github.com/babel/babel/issues/6134).
|
||||
|
||||
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">Thinking of using verdaccio to test <a href="https://twitter.com/lernajs?ref_src=twsrc%5Etfw">@lernajs</a> v3 (+use this generally), as it's hard to know if a publish will be successful. Would like us to fix an issue where we would like to compile Babel using itself before it's published (as we self-host but from latest npm) as a smoke test</p>— Henry Zhu (@left_pad) <a href="https://twitter.com/left_pad/status/1045770889051164672?ref_src=twsrc%5Etfw">28 de septiembre de 2018</a></blockquote>
|
||||
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
id: 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.
|
||||
|
||||
![actions](/img/github-actions.png)
|
||||
|
||||
## Testing your packages
|
||||
|
||||
Verdaccio provides a custom action for easy integration in your flow, you only add the following to your `main.workflow` in the step you consider the better for your flow.
|
||||
|
||||
```gha
|
||||
action "Publish Verdaccio" {
|
||||
uses = "verdaccio/github-actions/publish@master"
|
||||
args = ["publish"]
|
||||
}
|
||||
```
|
||||
|
||||
The action will perform a `npm publish` and if the publishing finishes successfully will allow to continue to the next step, otherwise will fails. If there is any issue publishing a package you will notice using this action.
|
||||
|
||||
Within the image uses `verdaccio-auth-memory` and `verdaccio-memory` plugins to handle authentification and storage to speed up the process.
|
||||
|
||||
If you want to know more about the action, [visit our repository](https://github.com/verdaccio/github-actions) dedicated for GitHub Actions.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: google-cloud
|
||||
title: "Google Cloud"
|
||||
---
|
||||
|
||||
dsadsa
|
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
id: iss-servidor
|
||||
title: "Instalación en servidor IIS"
|
||||
---
|
||||
|
||||
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.
|
||||
- Crea una nueva carpeta en Explorer en donde deseas alojar a Verdaccio. Por ejemplo `C:\verdaccio`. Guardar [package.json](#packagejson), [start.js](#startjs) y [web.config](#webconfig) en esta carpeta.
|
||||
- Crea un nuevo sitio en Administrador de Servicios de Información de Internet. Puedes ponerle el nombre que quieras. Lo llamaré Verdaccio en estas [instrucciones](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Especifica la ruta en donde guardaste todos los archivos y un número de puerto.
|
||||
- Regresa a Explorer y otorgale al usuario que ejecuta el grupo de aplicaciones derechos para modificar la carpeta que acabas de crear. Si has nombrado el nuevo sitio verdaccio y no cambiaste el grupo de aplicaciones, está funcionado gracias a un ApplicationPoolIdentity y deberías otorgarle al usuario derechos para modificar IIS AppPool\verdaccio mira las instrucciones si necesitas ayuda. (Puede restringir el acceso más adelante si lo deseas para que así solo tenga derechos para modificar en el iisnode y verdaccio\storage)
|
||||
- Empieza una línea de comando y ejecuta los comandos que aparecen debajo para descargar verdaccio:
|
||||
|
||||
cd c:\verdaccio
|
||||
npm install
|
||||
|
||||
|
||||
- Asegúrate de tener una regla de entrada que acepte Tráfico de TCP al puerto en Windows Firewall
|
||||
- ¡Y listo! Ahora puedes navegar al host y al puerto que especificaste
|
||||
|
||||
Quería que la página `verdaccio` fuese la página predeterminada en IIS así que hice lo siguiente:
|
||||
|
||||
- Detuve el "Sitio Web Predeterminado" y solo empiezo el sitio "verdaccio" en IIS
|
||||
- Establecí los enlaces a "http", dirección de ip "All Unassigned" en el puerto 80, ok cualquier advertencia o carácter de comando
|
||||
|
||||
Estas instrucciones se basan en [Anfitrión Sinopia en IIS en Windows](https://gist.github.com/HCanber/4dd8409f79991a09ac75). Tuve que hacer pequeños ajustes a mi configuración web como se puede ver debajo pero puedes encontrar el original del enlace mencionado el cual funciona mejor
|
||||
|
||||
Un archivo de configuración predeterminado será creado `c:\verdaccio\verdaccio\config.yaml`
|
||||
|
||||
### package.json
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "iisnode-verdaccio",
|
||||
"version": "1.0.0",
|
||||
"description": "Hosts verdaccio in iisnode",
|
||||
"main": "start.js",
|
||||
"dependencies": {
|
||||
"verdaccio": "^3.11.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### start.js
|
||||
|
||||
```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
|
||||
|
||||
```bash
|
||||
process.argv.push('-l', 'unix:' + process.env.PORT);
|
||||
require('./node_modules/verdaccio/src/lib/cli.js');
|
||||
```
|
||||
|
||||
### web.config
|
||||
|
||||
```xml
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<modules>
|
||||
<remove name="WebDAVModule" />
|
||||
</modules>
|
||||
|
||||
<!-- indicates that the start.js file is a node.js application
|
||||
to be handled by the iisnode module -->
|
||||
<handlers>
|
||||
<remove name="WebDAV" />
|
||||
<add name="iisnode" path="start.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Execute" />
|
||||
<add name="WebDAV" path="*" verb="*" modules="WebDAVModule" resourceType="Unspecified" requireAccess="Execute" />
|
||||
</handlers>
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
|
||||
<!-- iisnode folder is where iisnode stores it's logs. These should
|
||||
never be rewritten -->
|
||||
<rule name="iisnode" stopProcessing="true">
|
||||
<match url="iisnode*" />
|
||||
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
|
||||
<action type="None" />
|
||||
</rule>
|
||||
|
||||
<!-- Rewrite all other urls in order for verdaccio to handle these -->
|
||||
<rule name="verdaccio">
|
||||
<match url="/*" />
|
||||
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
|
||||
<action type="Rewrite" url="start.js" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
|
||||
<!-- exclude node_modules directory and subdirectories from serving
|
||||
by IIS since these are implementation details of node.js applications -->
|
||||
<security>
|
||||
<requestFiltering>
|
||||
<hiddenSegments>
|
||||
<add segment="node_modules" />
|
||||
</hiddenSegments>
|
||||
</requestFiltering>
|
||||
</security>
|
||||
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
### Solución de problemas
|
||||
|
||||
- **La interfaz web no carga cuando se aloja con https ya que trata de descargar scripts sobre http.**
|
||||
Asegúrate de que hayas mencionado correctamente `url_prefix` en la configuración de Verdaccio. Sigue la [conversación](https://github.com/verdaccio/verdaccio/issues/622).
|
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
id: installation
|
||||
title: "Installation"
|
||||
---
|
||||
|
||||
Verdaccio es una aplicación web multiplataforma. Para instalarlo, necesitas unos pocos prerrequisitos.
|
||||
|
||||
#### Prerrequisitos
|
||||
|
||||
1. Node mayor que
|
||||
- For version `verdaccio@3.x` Node `v6.12` is the minimum supported version.
|
||||
- For version `verdaccio@4.0.0-alpha.x` or `verdaccio@4.x` Node `8.x` (LTS "Carbon") is the minimum supported version.
|
||||
2. npm `>=4.x` or `yarn` > We highly recommend use the latest Node Package Managers clients `> npm@5.x | yarn@1.x | pnpm@2.x`
|
||||
3. The web interface supports the `Chrome, Firefox, Edge, and IE11` browsers.
|
||||
|
||||
> Verdaccio will support latest Node.js version according the [Node.js Release Working Group](https://github.com/nodejs/Release) recomendations.
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Instalando el CLI
|
||||
|
||||
`verdaccio` debe ser instalado globalmente usando uno de los siguientes métodos:
|
||||
|
||||
Usando `npm`
|
||||
|
||||
```bash
|
||||
npm install -g verdaccio
|
||||
```
|
||||
|
||||
o usando `yarn`
|
||||
|
||||
```bash
|
||||
yarn global add verdaccio
|
||||
```
|
||||
|
||||
![instalar verdaccio](assets/install_verdaccio.gif)
|
||||
|
||||
## Uso Básico
|
||||
|
||||
Una vez ha sido instalado, solo necesitas ejecutar el commando CLI:
|
||||
|
||||
```bash
|
||||
$> verdaccio
|
||||
warn --- config file - /home/.config/verdaccio/config.yaml
|
||||
warn --- http address - http://localhost:4873/ - verdaccio/3.0.0
|
||||
```
|
||||
|
||||
For more information about the CLI, please [read the cli section](cli.md).
|
||||
|
||||
You can set the registry by using the following command.
|
||||
|
||||
```bash
|
||||
npm set registry http://localhost:4873/
|
||||
```
|
||||
|
||||
or you can pass a `--registry` flag when needed.
|
||||
|
||||
```bash
|
||||
npm install --registry http://localhost:4873
|
||||
```
|
||||
|
||||
## Imagen de Docker
|
||||
|
||||
`verdaccio` has an official docker image you can use, and in most cases, the default configuration is good enough. For more information about how to install the official image, [read the docker section](docker.md).
|
||||
|
||||
## Cloudron
|
||||
|
||||
`verdaccio` is also available as a 1-click install on [Cloudron](https://cloudron.io)
|
||||
|
||||
[![Instalación](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)
|
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
id: kubernetes
|
||||
title: "Kubernetes"
|
||||
---
|
||||
|
||||
Puedes encontrar las instrucciones para desplegar Verdaccio en un cluster de Kubernetes en el repositorio [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example). Sin embargo, el método recomendado de instalar Verdaccio en un cluster de Kubernetes es usando [Helm](https://helm.sh). Helm is a [Kubernetes](https://kubernetes.io) es un administrador de paquetes que trae muchos beneficios y ventajas.
|
||||
|
||||
## Helm
|
||||
|
||||
### Configurar Helm
|
||||
|
||||
Si no has usado Helm anteriormente, necesitarás configurar el controlador de Helm llamado Tiller:
|
||||
|
||||
```bash
|
||||
helm init
|
||||
```
|
||||
|
||||
### Instalación
|
||||
|
||||
Desplegar Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio) chart. En este ejemplo usamos `npm` como nombre de lanzamiento:
|
||||
|
||||
```bash
|
||||
helm install --name npm stable/verdaccio
|
||||
```
|
||||
|
||||
### Desplegar una versión específica
|
||||
|
||||
```bash
|
||||
helm install --name npm --set image.tag=2.6.5 stable/verdaccio
|
||||
```
|
||||
|
||||
### Actualizando Verdaccio
|
||||
|
||||
```bash
|
||||
helm upgrade npm stable/verdaccio
|
||||
```
|
||||
|
||||
### Desinstalar
|
||||
|
||||
```bash
|
||||
helm del --purge npm
|
||||
```
|
||||
|
||||
**Nota**: el comando borra todos los recursos, incluyendo los paquetes que tu podrías haber publicado anteriormente al registro.
|
||||
|
||||
### Configuración personalizada de Verdaccio
|
||||
|
||||
Puedes personalizar la configuracion de verdaccio usando un * configMap* de Kubernetes.
|
||||
|
||||
#### Preparando
|
||||
|
||||
Copy the [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/docker.yaml) and adapt it for your use case:
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/verdaccio/verdaccio/master/conf/docker.yaml -O config.yaml
|
||||
```
|
||||
|
||||
**Nota:** Asegúrese que usa la dirección correcta para el almacenamiento que es usado por la persistencia:
|
||||
|
||||
```yaml
|
||||
storage: /verdaccio/storage/data
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/storage/htpasswd
|
||||
```
|
||||
|
||||
#### Desplegar el configMap
|
||||
|
||||
Desplegar el ` configMap` en el cluster
|
||||
|
||||
```bash
|
||||
kubectl create configmap verdaccio-config --from-file ./config.yaml
|
||||
```
|
||||
|
||||
#### Desplegar Verdaccio
|
||||
|
||||
Ahora puedes desplegar Verdaccio Helm chart y especificar cual configuración usar:
|
||||
|
||||
```bash
|
||||
helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
|
||||
```
|
||||
|
||||
## Soporte Rancher
|
||||
|
||||
[Rancher](http://rancher.com/) es una completa plataforma para la administración de contenedores en producción muy fácil de usar.
|
||||
|
||||
* [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)
|
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
id: linking-remote-registry
|
||||
title: "Linking a Remote Registry"
|
||||
---
|
||||
|
||||
Verdaccio is a proxy and by default [links](uplinks.md) the public registry.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
```
|
||||
|
||||
You can link multiple registries, the following document will drive you through some helpful configurations.
|
||||
|
||||
## Using Associating Scope
|
||||
|
||||
The unique way to access multiple registries using the `.npmrc` is the scope feature as follows:
|
||||
|
||||
// .npmrc
|
||||
registry=https://registry.npmjs.org
|
||||
@mycompany:registry=http://localhost:4873
|
||||
|
||||
|
||||
This approach is valid, but comes with several disadvantages:
|
||||
|
||||
* It **only works with scopes**
|
||||
* Scope must match, **no Regular Expressions are allowed**
|
||||
* One scope **cannot fetch from multiple registries**
|
||||
* Tokens/passwords **must be defined within** `.npmrc` and checked in into the repo.
|
||||
|
||||
See a full example [here](https://stackoverflow.com/questions/54543979/npmrc-multiple-registries-for-the-same-scope/54550940#54550940).
|
||||
|
||||
## Linking a Registry
|
||||
|
||||
Linking a registry is fairly simple. First, define a new section in the `uplinks` section. Note, the order here is irrelevant.
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private.registry.net/npm
|
||||
|
||||
... [truncated] ...
|
||||
|
||||
'webpack':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: private
|
||||
|
||||
```
|
||||
|
||||
Add a `proxy` section to define the selected registry you want to proxy.
|
||||
|
||||
## Linking Multiple Registries
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
server1:
|
||||
url: https://server1.registry.net/npm
|
||||
server2:
|
||||
url: https://server2.registry.net/npm
|
||||
|
||||
... [truncated] ...
|
||||
|
||||
'webpack':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: server1 server2
|
||||
```
|
||||
|
||||
Verdaccio supports multiple registries on the `proxy` field. The request will be resolved with the first in the list; if that fails, it will try with the next in the list and so on.
|
||||
|
||||
## Offline Registry
|
||||
|
||||
Having a full Offline Registry is completely possible. If you don't want any connectivity with external remotes you can do the following.
|
||||
|
||||
```yaml
|
||||
<br />auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
uplinks:
|
||||
packages:
|
||||
'@my-company/*':
|
||||
access: $all
|
||||
publish: none
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
Remove all `proxy` fields within each section of `packages`. The registry will become full offline.
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
id: logger
|
||||
title: "Registrador"
|
||||
---
|
||||
|
||||
Como cualquier aplicación web, verdaccio tiene un registrador personalizable integrado. Puedes definir varios tipos de salidas.
|
||||
|
||||
```yaml
|
||||
logs:
|
||||
# console output
|
||||
- {type: stdout, format: pretty, level: http}
|
||||
# file output
|
||||
- {type: file, path: verdaccio.log, level: info}
|
||||
# Rotating log stream. Options are passed directly to bunyan. See: https://github.com/trentm/node-bunyan#stream-type-rotating-file
|
||||
- {type: rotating-file, format: json, path: /path/to/log.jsonl, level: http, options: {period: 1d}}
|
||||
```
|
||||
|
||||
Use `SIGUSR2` to notify the application, the log-file was rotated and it needs to reopen it. Note: Rotating log stream is not supported in cluster mode. [See here](https://github.com/trentm/node-bunyan#stream-type-rotating-file)
|
||||
|
||||
### Configuración
|
||||
|
||||
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción |
|
||||
| --------- | ------ | --------- | ---------------------------------------------- | ------- | --------------------------------------------------------- |
|
||||
| type | string | No | [stdout, file] | todos | define la salida |
|
||||
| path | string | No | verdaccio.log | todos | si el tipo es archivo, define la ubicación de ese archivo |
|
||||
| format | string | No | [pretty, pretty-timestamped] | todos | formato de salida |
|
||||
| level | string | No | [fatal, error, warn, http, info, debug, trace] | todos | nivel verboso |
|
58
website/crowdin/master/website/translated_docs/es-ES/logo.md
Normal file
58
website/crowdin/master/website/translated_docs/es-ES/logo.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
id: logo
|
||||
title: "Logotype"
|
||||
---
|
||||
|
||||
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.
|
||||
|
||||
> Todos los logos estan licenciados bajo [Creative Commons](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
|
||||
|
||||
Special thanks to *[@Lisapressmar](https://github.com/Lisapressmar)* for her contribution with multiple image formats and sizes.
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Simbolos
|
||||
|
||||
**Con texto**
|
||||
|
||||
![symbol tiny with text](assets/logo/symbol/png/logo-small-header-bottom.png)
|
||||
|
||||
![symbol medium with text](assets/logo/symbol/png/logo-small-header-bottom@2x.png)
|
||||
|
||||
![symbol big with text](assets/logo/symbol/png/logo-small-header-bottom@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![symbol svg](assets/logo/symbol/svg/logo-small-header-bottom.svg)
|
||||
|
||||
**Sin texto**
|
||||
|
||||
![symbol tiny](assets/logo/symbol/png/verdaccio-tiny.png)
|
||||
|
||||
![symbol medium](assets/logo/symbol/png/verdaccio-tiny@2x.png)
|
||||
|
||||
![symbol big](assets/logo/symbol/png/verdaccio-tiny@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![svg format symbol no text](assets/logo/symbol/svg/verdaccio-tiny.svg)
|
||||
|
||||
### Black&White
|
||||
|
||||
![symbol bw small](assets/logo/symbol/png/verdaccio-blackwhite.png)
|
||||
|
||||
![symbol bw medium](assets/logo/symbol/png/verdaccio-blackwhite@2x.png)
|
||||
|
||||
![symbol bw big](assets/logo/symbol/png/verdaccio-blackwhite@3x.png)
|
||||
|
||||
**SVG**
|
||||
|
||||
![symbol bw svg](assets/logo/symbol/svg/verdaccio-blackwhite.svg)
|
||||
|
||||
## Pancarta
|
||||
|
||||
![banner small](assets/logo/banner/png/verdaccio-banner.png)
|
||||
|
||||
![banner medium](assets/logo/banner/png/verdaccio-banner@2x.png)
|
||||
|
||||
![banner big](assets/logo/banner/png/verdaccio-banner@3x.png)
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
id: node-api
|
||||
title: "Nodo API"
|
||||
---
|
||||
|
||||
Verdaccio can be invoked programmatically. The node API was introduced after version `verdaccio@3.0.0-alpha.10`.
|
||||
|
||||
## Uso
|
||||
|
||||
#### Programáticamente
|
||||
|
||||
```js
|
||||
import startServer from 'verdaccio';
|
||||
|
||||
startServer(configJsonFormat, 6000, store, '1.0.0', 'verdaccio',
|
||||
(webServer, addrs, pkgName, pkgVersion) => {
|
||||
webServer.listen(addr.port || addr.path, addr.host, () => {
|
||||
console.log('verdaccio running');
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
## Otras implementaciones
|
||||
|
||||
* [verdaccio-server](https://github.com/boringame/verdaccio-server) servidor proxy de registro de npm local
|
||||
|
||||
```js
|
||||
// js
|
||||
import * as verdaccioServer from "verdaccio-server";
|
||||
verdaccioServer.start();
|
||||
verdaccioServer.stop();
|
||||
verdaccioServer.list();
|
||||
verdaccioServer.stopAll();
|
||||
verdaccioServer.show();
|
||||
verdaccioServer.cli();
|
||||
// windows .net2
|
||||
verdaccioServer.serviceInstall();
|
||||
verdaccioServer.serviceUninstall();
|
||||
verdaccioServer.serviceStart();
|
||||
verdaccioServer.serviceStop();
|
||||
verdaccioServer.serviceRestart();
|
||||
```
|
|
@ -0,0 +1,159 @@
|
|||
---
|
||||
id: notifications
|
||||
title: "Notificaciones"
|
||||
---
|
||||
|
||||
Notify fué creado principalmente para usarse con los webhooks entrantes de Slack, pero también entregará una carga útil simple a cualquier endpoint. Actualmente sólo está activo para el comando `npm publish`.
|
||||
|
||||
## Uso
|
||||
|
||||
Un ejemplo con un hook de **HipChat**, **Stride** y **Google Hangouts Chat**:
|
||||
|
||||
> Verdaccio supports any API, feel free to add more examples.
|
||||
|
||||
#### Notificación sencilla
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
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"}'
|
||||
```
|
||||
|
||||
#### Múltiples notificaciones
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
'example-google-chat':
|
||||
method: POST
|
||||
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"}'
|
||||
'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 }}"}]}]}}'
|
||||
```
|
||||
|
||||
## Modelo
|
||||
|
||||
Usamos [Handlebars](https://handlebarsjs.com/) como el motor del modelo principal.
|
||||
|
||||
### Ejemplos de Formato
|
||||
|
||||
# iterate all versions
|
||||
{{ name }}{{#each versions}} v{{version}}{{/each}}
|
||||
|
||||
# publisher and `dist-tag` package published
|
||||
{{ publisher.name }} has published {{ publishedPackage }}
|
||||
|
||||
|
||||
### Propiedades
|
||||
|
||||
Lista de las propiedades accesibles mediante el modelo
|
||||
|
||||
* Metadata
|
||||
* Publisher (quién está publicando)
|
||||
* Paquete Publicado (package@1.0.0)
|
||||
|
||||
### Metadata
|
||||
|
||||
Paquete de metadata a la que el modelo tiene acceso
|
||||
|
||||
{
|
||||
"_id": "@test/pkg1",
|
||||
"name": "@test/pkg1",
|
||||
"description": "",
|
||||
"dist-tags": {
|
||||
"beta": "1.0.54"
|
||||
},
|
||||
"versions": {
|
||||
"1.0.54": {
|
||||
"name": "@test/pkg1",
|
||||
"version": "1.0.54",
|
||||
"description": "some description",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Author Name",
|
||||
"email": "author@domain.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"webpack": "4.12.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "@ test/pkg1@1.0.54",
|
||||
"_npmVersion": "6.1.0",
|
||||
"_nodeVersion": "9.9.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-JlXWpLtMUBAqvVZBvH7UVLhXkGE1ctmXbDjbH/l0zMuG7wVzQ7GshTYvD/b5C+G2vOL2oiIS1RtayA/kKkTwKw==",
|
||||
"shasum": "29c55c52c1e76e966e706165e5b9f22e32aa9f22",
|
||||
"tarball": "http://localhost:4873/@test/pkg1/-/@test/pkg1-1.0.54.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"readme": "# test",
|
||||
"_attachments": {
|
||||
"@test/pkg1-1.0.54.tgz": {
|
||||
"content_type": "application/octet-stream",
|
||||
"data": "H4sIAAAAAAAAE+y9Z5PjyJIgOJ ...",
|
||||
"length": 33112
|
||||
}
|
||||
},
|
||||
"time": {}
|
||||
}
|
||||
|
||||
|
||||
### Publisher
|
||||
|
||||
Puede acceder a la información del paquete publisher en el `content` de una webhook usando el objeto `publisher`.
|
||||
|
||||
Vea a continuación el tipo de objeto `publisher`:
|
||||
|
||||
{
|
||||
name: string,
|
||||
groups: string[],
|
||||
real_groups: string[]
|
||||
}
|
||||
|
||||
|
||||
Un ejemplo:
|
||||
|
||||
notify:
|
||||
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 }}*. Publisher name: * {{ publisher.name }} *.","notify":true,"message_format":"text"}'
|
||||
|
||||
|
||||
**Nota:** no es posible obtener la información de publisher si el archivo `package.json` ya tiene la propiedad `publisher`.
|
||||
|
||||
### Paquete Publicado
|
||||
|
||||
You can access to the package is being published with the keyword `{{publishedPackage}}` as follows.
|
||||
|
||||
{{ publisher.name }} has published {{ publishedPackage }}
|
||||
|
||||
|
||||
## Configuración
|
||||
|
||||
| Propiedad | Tipo | Requerido | Soporte | Por Defecto | Descripción |
|
||||
| ------------------- | ------------ | --------- | ------- | ----------- | -------------------------------------------------------------------------------------------- |
|
||||
| method | string | No | all | | HTTP verb |
|
||||
| packagePattern | string | No | all | | Solo ejecutar esta notificación si el nombre del paquete coincide con la expresión regular |
|
||||
| packagePatternFlags | string | No | all | | Cualquier bandera para ser usada con la expresión regular |
|
||||
| headers | array/object | Yes | all | | Si el endpoint requiere encabezados específicos, defínelos aquí como un arreglo (key:value). |
|
||||
| endpoint | string | Yes | all | | define el URL para el endpoint |
|
||||
| content | string | Yes | all | | cualquier expresión [Handlebar](https://handlebarsjs.com/) |
|
182
website/crowdin/master/website/translated_docs/es-ES/packages.md
Normal file
182
website/crowdin/master/website/translated_docs/es-ES/packages.md
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
id: packages
|
||||
title: "Acceso a Paquetes"
|
||||
---
|
||||
|
||||
Es una serie de restricciones que permiten o limitan el acceso al almacenamiento local basándose en criterios específicos.
|
||||
|
||||
Las restricciones de seguridad permanecen dependientes de la extensión en uso. Por defecto, `verdaccio` utiliza [htpasswd plugin](https://github.com/verdaccio/verdaccio-htpasswd). Si usas una extensión diferente ten en cuenta que el comportamiento podría ser diferente. La extensión por defecto no maneja `allow_access` y `allow_publish` por sí misma, esta usa un recurso de seguridad interno en caso de que la extensión no esté lista para esto.
|
||||
|
||||
Para mas información sobre permisos, visite [la sección de autenticación](auth.md).
|
||||
|
||||
### Uso
|
||||
|
||||
```yalm
|
||||
packages:
|
||||
# scoped packages
|
||||
'@scope/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: server2
|
||||
|
||||
'private-*':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: uplink1
|
||||
|
||||
'**':
|
||||
# allow all users (including non-authenticated users) to read and
|
||||
# publish all packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: uplink2
|
||||
```
|
||||
|
||||
si ninguno esta especificado, por defecto uno se define
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
The list internal groups handled by `verdaccio` are:
|
||||
|
||||
```js
|
||||
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'
|
||||
```
|
||||
|
||||
Todos los usuarios reciben todos estos conjuntos de permisos, independientemente de si son anonymous o no, además de los grupos proporcionados por la extensión. En caso de `htpasswd` retorna el nombre de usuario como un grupo. Por ejemplo, si has iniciado sesión como ` npmUser` el listado de grupos será.
|
||||
|
||||
```js
|
||||
// groups without '$' are going to be deprecated eventually
|
||||
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous', 'npmUser'
|
||||
```
|
||||
|
||||
Si deseas proteger un grupo de paquetes específicos dentro de tu grupo, debes realizar algo similar a esto. Vamos a usar un `Regex` que cubre los todos los páquetes prefijos con`npmuser-`. We recommend using a prefix for your packages, in that way it will be easier to protect them.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'npmuser-*':
|
||||
access: npmuser
|
||||
publish: npmuser
|
||||
```
|
||||
|
||||
Reinicia `verdaccio` en tu terminal trata de instalar `npmuser-core`.
|
||||
|
||||
```bash
|
||||
$ npm install npmuser-core
|
||||
npm install npmuser-core
|
||||
npm ERR! code E403
|
||||
npm ERR! 403 Forbidden: npmuser-core@latest
|
||||
|
||||
npm ERR! A complete log of this run can be found in:
|
||||
npm ERR! /Users/user/.npm/_logs/2017-07-02T12_20_14_834Z-debug.log
|
||||
```
|
||||
|
||||
Puedes cambiar el comportamiento por defecto usando una diferente extensión de autenticación. `verdaccio` simplemente comprueba si el usuario que intentó acceder o publicar un paquete específico pertenece al grupo correcto.
|
||||
|
||||
#### Definir múltiples grupos
|
||||
|
||||
Definir múltiples grupos de acceso es bastante sencillo, simplemente defínalos dejando un espacio en blanco entre ellos.
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
#### Bloqueando el acceso a paquetes
|
||||
|
||||
If you want to block the access/publish to a specific group of packages. Just do not define `access` and `publish`.
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'old-*':
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
```
|
||||
|
||||
#### Bloqueando proxy a un grupo específico de paquetes
|
||||
|
||||
Puede que quieras bloquear para uno o varios paquetes la capacidad de hacer fetching de repositorios remotos., pero, a la misma vez, permitir a otros acceder a *uplinks* diferentes.
|
||||
|
||||
Veamos el siguiente ejemplo:
|
||||
|
||||
```yaml
|
||||
packages:
|
||||
'jquery':
|
||||
access: $all
|
||||
publish: $all
|
||||
'my-company-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'@my-local-scope/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
Vamos a describir lo que se desea con el ejemplo anterior:
|
||||
|
||||
* Quiero almacenar mi propia dependencia ` jquery` pero necesito evitar que se busque en el proxy.
|
||||
* Quiero que todas mis dependencias que coincidan con `my-company-*` pero necesito evitar que dichos paquetes se actualicen vía proxy.
|
||||
* Quiero que todas las dependencias que estén en `my-local-scope` hagan scope pero necesito evitar que estas se actualicen vía proxy.
|
||||
* Quiero que el resto de las dependencias se actualicen vía proxy.
|
||||
|
||||
Se **consciente que el orden de la definición de los paquetes es importante y siempre usa doble wildcard**. Porque si no lo incluyes, `verdaccio` lo incluirá por ti y la forma en que tus dependencias son resueltas se verá afectada.
|
||||
|
||||
#### 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 `unpublish` in your package access section, for instance:
|
||||
|
||||
```yalm
|
||||
packages:
|
||||
'jquery':
|
||||
access: $all
|
||||
publish: $all
|
||||
unpublish: root
|
||||
'my-company-*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
unpublish:
|
||||
'@my-local-scope/*':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
# unpublish: property commented out
|
||||
'**':
|
||||
access: $all
|
||||
publish: $authenticated
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
### Configuración
|
||||
|
||||
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).
|
||||
|
||||
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción |
|
||||
| --------- | ------ | --------- | -------------- | -------------- | ------------------------------------------------------------------------- |
|
||||
| access | string | No | $all | all | define que grupos estan permitidos para acceder al paquete |
|
||||
| publish | string | No | $authenticated | all | defini que grupos estan permitidos a publicar |
|
||||
| proxy | string | No | npmjs | all | limita las busquedas a un uplink específico |
|
||||
| storage | string | No | string | `/some-folder` | it creates a subfolder whithin the storage folder for each package access |
|
||||
|
||||
> Resaltamos que ya no recomendamos usar **allow_access**/**allow_publish** y **proxy_access**, estos son obsoletos y pronto serán removidos, por favor usar las versiones reducidas de estos (**access**/**publish**/**proxy**).
|
||||
|
||||
If you want more information about how to use the **storage** property, please refer to this [comment](https://github.com/verdaccio/verdaccio/issues/1383#issuecomment-509933674).
|
168
website/crowdin/master/website/translated_docs/es-ES/plugins.md
Normal file
168
website/crowdin/master/website/translated_docs/es-ES/plugins.md
Normal file
|
@ -0,0 +1,168 @@
|
|||
---
|
||||
id: plugins
|
||||
title: "Plugins"
|
||||
---
|
||||
|
||||
Verdaccio is an plugabble aplication. It can be extended in many ways, either new authentication methods, adding endpoints or using a custom storage.
|
||||
|
||||
There are 4 types of plugins:
|
||||
|
||||
* Authentication
|
||||
* Middleware
|
||||
* Almacenamiento
|
||||
* UI Theme
|
||||
|
||||
> If you are interested to develop your own plugin, read the [development](dev-plugins.md) section.
|
||||
|
||||
## Uso
|
||||
|
||||
### Instalación
|
||||
|
||||
```bash
|
||||
$> npm install --global verdaccio-activedirectory
|
||||
```
|
||||
|
||||
`verdaccio` as a sinopia fork it has backward compability with plugins that are compatible with `sinopia@1.4.0`. In such case the installation is the same.
|
||||
|
||||
$> npm install --global sinopia-memory
|
||||
|
||||
|
||||
### Configuración
|
||||
|
||||
Abra el archivo `config.yaml` y actualice la sección `auth` como a continuación:
|
||||
|
||||
La configuración por defecto luce así, debido a que usamos un plugin `htpasswd` incorporado por defecto que puede desactivar con solo comentar las siguientes líneas.
|
||||
|
||||
### Authentication Configuration
|
||||
|
||||
```yaml
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
#max_users: 1000
|
||||
```
|
||||
|
||||
y reemplazándolos con (en caso de que decida usar un plugin `ldap`).
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
activedirectory:
|
||||
url: "ldap://10.0.100.1"
|
||||
baseDN: 'dc=sample,dc=local'
|
||||
domainSuffix: 'sample.local'
|
||||
```
|
||||
|
||||
#### Multiple Authentication plugins
|
||||
|
||||
This is tecnically possible, making the plugin order important, as the credentials will be resolved in order.
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
#max_users: 1000
|
||||
activedirectory:
|
||||
url: "ldap://10.0.100.1"
|
||||
baseDN: 'dc=sample,dc=local'
|
||||
domainSuffix: 'sample.local'
|
||||
```
|
||||
|
||||
### Middleware Configuration
|
||||
|
||||
This is an example how to set up a middleware plugin. All middleware plugins must be defined in the **middlewares** namespace.
|
||||
|
||||
```yaml
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
> You might follow the [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) as base example.
|
||||
|
||||
### Storage Configuration
|
||||
|
||||
This is an example how to set up a storage plugin. All storage plugins must be defined in the **store** namespace.
|
||||
|
||||
```yaml
|
||||
store:
|
||||
memory:
|
||||
limit: 1000
|
||||
```
|
||||
|
||||
### Theme Configuration
|
||||
|
||||
Verdaccio allows to replace the User Interface with a custom one, we call it **theme**. By default, uses `@verdaccio/ui-theme` that comes built-in, but, you can use something different installing your own plugin.
|
||||
|
||||
```bash
|
||||
<br />$> 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 the time and pass through options if is need it.
|
||||
|
||||
```yaml
|
||||
theme:
|
||||
dark:
|
||||
option1: foo
|
||||
option2: bar
|
||||
```
|
||||
|
||||
## Plugins heredados
|
||||
|
||||
### Plugins de Sinopia
|
||||
|
||||
> 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): plugin auth para sinopia soportando un registro npm.
|
||||
* [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): plugin auth para sinopia que mantiene a los usuarios en la memoria.
|
||||
* [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
|
||||
* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): plugin auth para sinopia que soporta atlassian crowd.
|
||||
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): plugin de autenticación Active Directory para sinopia.
|
||||
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): plugin de autenticación para sinopia2, el cual soporta el flujo web de github oauth.
|
||||
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): plugin de autenticación de Sinopia que delega autenticación a otro URL HTTP
|
||||
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alterna el plugin LDAP Auth para Sinopia
|
||||
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): Un plugin sencillo y completamente auth con configuración para usar una API externa.
|
||||
* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Genera contraseña en formato htaccess, encripta con GPG y la evía a través de la API MailGun a los usuarios.
|
||||
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): Un plugin fácil y completamente auth con configuración para usar una base de datos mongodb.
|
||||
* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): plugin auth para sinopia que soporta el formato htpasswd.
|
||||
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): un plugin auth leveldb respaldado para el npm privado de sinopia.
|
||||
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): plugin de autenticación de Gitlab para sinopia.
|
||||
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): plugin de autenticación de Gitlab para sinopia
|
||||
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): plugin LDAP auth para sinopia.
|
||||
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) plugin de autenticación de Sinopia con flujo web github oauth.
|
||||
|
||||
> 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*.
|
||||
|
||||
## Plugins de Verdaccio
|
||||
|
||||
### Plugins de Autorización
|
||||
|
||||
* [verdaccio-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): plugin de autenticación de Bitbucket para 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.
|
||||
|
||||
### Plugins de Middleware
|
||||
|
||||
* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): plugin de verdaccio para soporte cli de *npm audit* (incorporado) (compatible desde 3.x)
|
||||
|
||||
* [verdaccio-profile-api](https://github.com/ahoracek/verdaccio-profile-api): plugin de verdaccio para soporte cli de *npm profile* y *npm profile set password* para la autenticación basada en *verdaccio-htpasswd*
|
||||
|
||||
* [verdaccio-https](https://github.com/honzahommer/verdaccio-https) Verdaccio middleware plugin to redirect to https if x-forwarded-proto header is set
|
||||
|
||||
### Plugins de Storage (Almacenamiento)
|
||||
|
||||
* [verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) Plugin de almacenamiento para alojar paquetes en la Memoria
|
||||
* [verdaccio-s3-storage](https://github.com/remitly/verdaccio-s3-storage) Plugin de almacenamiento para alojar paquetes **Amazon S3**
|
||||
* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) Plugin de almacenamiento para alojar paquetes **Google Cloud Storage**
|
||||
|
||||
## Advertencias
|
||||
|
||||
> Not all these plugins are been tested continuously, some of them might not work at all. Please if you found any issue feel free to notify the owner of each plugin.
|
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
id: protect-your-dependencies
|
||||
title: "Protegiendo paquetes"
|
||||
---
|
||||
|
||||
`verdaccio` allows you protect publish, to achieve that you will need to set up correctly your [packages access](packages).
|
||||
|
||||
### Configuración del paquete
|
||||
|
||||
Veamos por ejemplo la siguiente configuración. Tienes un conjunto de dependencias con prefijo `my-company-*` y necesitas protegerlas de anónimos o de otro usuario registrado sin credenciales.
|
||||
|
||||
```yaml
|
||||
'my-company-*':
|
||||
access: admin teamA teamB teamC
|
||||
publish: admin teamA
|
||||
proxy: npmjs
|
||||
```
|
||||
|
||||
With this configuration, basically we allow to groups **admin** and **teamA** to *publish* and **teamA** **teamB** **teamC** *access* to such dependencies.
|
||||
|
||||
### Caso de Uso: teamD trata de acceder a la dependencia
|
||||
|
||||
Entonces, si yo estoy conectado como **teamD**. No debería ser capaz de acceder a todas las dependencias que cumplan con el patrón `my-company-*`.
|
||||
|
||||
```bash
|
||||
➜ npm whoami
|
||||
teamD
|
||||
```
|
||||
|
||||
No tendré acceso a dichas dependencias y tampoco serán visibles vía web para el usuario **teamD**. Si intentas acceder, ocurrirá lo siguiente.
|
||||
|
||||
```bash
|
||||
➜ npm install my-company-core
|
||||
npm ERR! code E403
|
||||
npm ERR! 403 Forbidden: webpack-1@latest
|
||||
```
|
||||
|
||||
o con `yarn`
|
||||
|
||||
```bash
|
||||
➜ yarn add my-company-core
|
||||
yarn add v0.24.6
|
||||
info No lockfile found.
|
||||
[1/4]
|
||||
error Ocurrió un error inesperado: "http://localhost:5555/webpack-1: no se les permite acceder al paquete my-company-core a usuarios no registrados".
|
||||
```
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
id: puppet
|
||||
title: "Puppet"
|
||||
---
|
||||
|
||||
Instalar verdaccio para Debian, Ubuntu, Fedora y RedHat.
|
||||
|
||||
# Uso
|
||||
|
||||
Hay dos variantes para instalar verdaccio utilizando este módulo Puppet:
|
||||
|
||||
* Modo Aplicación (con aplicación de Puppet y sin necesidad de configurar el puppetmaster)
|
||||
* Modo Agente Maestro (con acceso del agente Puppet a su configuración a través del puppetmaster).
|
||||
|
||||
En ambas variantes tiene que llamar explícitamente a "class nodejs {}" en su script de puppet porque el módulo de puppet-verdaccio solo define esto como un requisito, por lo que tiene toda la flexibilidad que quiera cuando instale nodejs. Desplácese hacia abajo para detalles sobre la variante del Modo Agente Maestro.
|
||||
|
||||
Para más información:
|
||||
|
||||
<https://github.com/verdaccio/puppet-verdaccio>
|
||||
|
||||
> Estamos buscando colaboradores para esta integración, si está interesado [ refiérase a esta entrada](https://github.com/verdaccio/puppet-verdaccio/issues/11).
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
id: repositories
|
||||
title: Código Fuente
|
||||
---
|
||||
|
||||
`verdaccio` is composed or multiple repositories you might contribute. Look into the **issues** tab whether there is a ticket waiting for you 🤠.
|
||||
|
||||
Para ver la lista completa de repositorios, [haga clic aquí](https://github.com/verdaccio/verdaccio/wiki/Repositories).
|
|
@ -0,0 +1,177 @@
|
|||
---
|
||||
id: reverse-proxy
|
||||
title: "Configuración de Proxy Inverso"
|
||||
---
|
||||
|
||||
Using a reverse proxy is a common practice. The following configurations are the most recommended and used ones.
|
||||
|
||||
# Apache
|
||||
|
||||
Apache and `mod_proxy` should **not decode/encode slashes** and leave them as they are:
|
||||
|
||||
<VirtualHost *:80>
|
||||
AllowEncodedSlashes NoDecode
|
||||
ProxyPass /npm http://127.0.0.1:4873 nocanon
|
||||
ProxyPassReverse /npm http://127.0.0.1:4873
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
### Configuración con SSL
|
||||
|
||||
Configuración del servidor virtual de Apache
|
||||
|
||||
apacheconfig
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost *:443>
|
||||
ServerName npm.your.domain.com
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/letsencrypt/live/npm.your.domain.com/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/npm.your.domain.com/privkey.pem
|
||||
SSLProxyEngine On
|
||||
ProxyRequests Off
|
||||
ProxyPreserveHost On
|
||||
AllowEncodedSlashes NoDecode
|
||||
ProxyPass / http://127.0.0.1:4873/ nocanon
|
||||
ProxyPassReverse / http://127.0.0.1:4873/
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
|
||||
|
||||
# Nginx
|
||||
|
||||
The following snippet is a full `docker` example can be tested in our [Docker examples repository](https://github.com/verdaccio/docker-examples/tree/master/reverse_proxy/nginx).
|
||||
|
||||
upstream verdaccio_v4 {
|
||||
server verdaccio_relative_path_v4:4873;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
upstream verdaccio_v4_root {
|
||||
server verdaccio_relative_path_v4_root:8000;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
upstream verdaccio_v3 {
|
||||
server verdaccio_relative_path_latest_v3:7771;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
access_log /var/log/nginx/verdaccio.log;
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4_root;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdacciov3/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
|
||||
proxy_pass http://verdaccio_v3/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## SSL example
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
return 302 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name localhost;
|
||||
|
||||
ssl_certificate /etc/nginx/cert.crt;
|
||||
ssl_certificate_key /etc/nginx/cert.key;
|
||||
|
||||
ssl on;
|
||||
ssl_session_cache builtin:1000 shared:SSL:10m;
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://verdaccio_v4_root;
|
||||
proxy_read_timeout 600;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v4_root/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## Ejecutar detrás del proxy inverso con un puerto y dominio diferente
|
||||
|
||||
### Sub-directory
|
||||
|
||||
If the whole URL is being used for Verdaccio, you don't need to define a `url_prefix`, otherwise you would need something like this in your `config.yaml`.
|
||||
|
||||
```yaml
|
||||
url_prefix: /sub_directory/
|
||||
```
|
||||
|
||||
If you run verdaccio behind reverse proxy, you may noticed all resource file served as relaticve path, like `http://127.0.0.1:4873/-/static`
|
||||
|
||||
To resolve this issue, **you should send real domain and port to verdaccio with `Host` header**
|
||||
|
||||
La configuración Nginx debe lucir así:
|
||||
|
||||
```nginx
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:4873/;
|
||||
proxy_set_header Host $host:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
```
|
||||
|
||||
For this case, `url_prefix` should **NOT** set in verdaccio config
|
||||
|
||||
* * *
|
||||
|
||||
o a una instalación de sub-directorio:
|
||||
|
||||
```nginx
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_pass http://127.0.0.1:4873/$1;
|
||||
proxy_set_header Host $host:$server_port;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
```
|
||||
|
||||
Para este caso, `url_prefix` debe establecerse a `/verdaccio/`
|
||||
|
||||
> Note: There is a Slash after install path (`https://your-domain:port/verdaccio/`)!
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
id: security-policy
|
||||
title: "Security Policy"
|
||||
---
|
||||
|
||||
Follow our security policy on [Github](https://github.com/verdaccio/verdaccio/security/policy)
|
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
id: server-configuration
|
||||
title: "Configuración del Servidor"
|
||||
---
|
||||
|
||||
Esta materia es principalmente la configuración básica del servidor de linux pero me pareció importante documentar y compartir los pasos que tomé para obtener la ejecución de verdaccio permanentemente en mi servidor. Necesitará permisos de root (o sudo) para lo siguiente.
|
||||
|
||||
## Ejecutar como un usuario separado
|
||||
|
||||
Crear primero el usuario de verdaccio:
|
||||
|
||||
```bash
|
||||
$ sudo adduser --system --gecos 'Verdaccio NPM mirror' --group --home /var/lib/verdaccio verdaccio
|
||||
```
|
||||
|
||||
Or, in case you do not have `adduser`:
|
||||
|
||||
```bash
|
||||
$ sudo useradd --system --comment 'Verdaccio NPM mirror' --create-home --home-dir /var/lib/verdaccio --shell /sbin/nologin verdaccio
|
||||
```
|
||||
|
||||
You create a shell as the verdaccio user using the following command:
|
||||
|
||||
```bash
|
||||
$ sudo su -s /bin/bash verdaccio
|
||||
$ cd
|
||||
```
|
||||
|
||||
The `cd` command sends you to the home directory of the verdaccio user. Make sure you run verdaccio at least once to generate the config file. Edit it according to your needs.
|
||||
|
||||
## Atender todas las direcciones
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
If you are running verdaccio in a Amazon EC2 Instance, [you will need set the listen in change your config file](https://github.com/verdaccio/verdaccio/issues/314#issuecomment-327852203) as is described above.
|
||||
|
||||
> Configure Apache or nginx? Please check out the [Reverse Proxy Setup](reverse-proxy.md)
|
||||
|
||||
## Mantener verdaccio ejecutándose para siempre
|
||||
|
||||
You can use node package called ['forever'](https://github.com/nodejitsu/forever) to keep verdaccio running all the time.
|
||||
|
||||
First install `forever` globally:
|
||||
|
||||
```bash
|
||||
$ sudo npm install -g forever
|
||||
```
|
||||
|
||||
Make sure you've run verdaccio at least once to generate the config file and write down the created admin user. You can then use the following command to start verdaccio:
|
||||
|
||||
```bash
|
||||
$ forever start `which verdaccio`
|
||||
```
|
||||
|
||||
You can check the documentation for more information on how to use forever.
|
||||
|
||||
## Sobrevivir a los reinicios del servidor
|
||||
|
||||
You can use `crontab` and `forever` together to start verdaccio after a server reboot. When you're logged in as the verdaccio user do the following:
|
||||
|
||||
```bash
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
This might ask you to choose an editor. Pick your favorite and proceed. Add the following entry to the file:
|
||||
|
||||
@reboot /usr/bin/forever start /usr/lib/node_modules/verdaccio/bin/verdaccio
|
||||
|
||||
|
||||
The locations may vary depending on your server setup. If you want to know where your files are you can use the 'which' command:
|
||||
|
||||
```bash
|
||||
$ which forever
|
||||
$ which verdaccio
|
||||
```
|
||||
|
||||
## 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.
|
46
website/crowdin/master/website/translated_docs/es-ES/ssl.md
Normal file
46
website/crowdin/master/website/translated_docs/es-ES/ssl.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
id: ssl
|
||||
title: "Configurar los Certificados SSL"
|
||||
---
|
||||
|
||||
Follow these instructions to configure an SSL certificate to serve an NPM registry over HTTPS.
|
||||
|
||||
* Actualice la propiedad listen desde `~/.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.
|
||||
|
||||
* Genere sus certificados
|
||||
|
||||
$ 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:
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
<br />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)
|
||||
|
||||
* Ejecuta `verdaccio` en su línea de comandos.
|
||||
|
||||
* 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`.
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
id: talks
|
||||
title: "Talks"
|
||||
---
|
||||
|
||||
We list the talks about Verdaccio, if you gave a talk or you are about to give one about Verdaccio or that mention this project, feel free to add it here.
|
||||
|
||||
> Do not hesitate to share your content with the community, we encourage you to speak about Verdaccio. If need help how to start, information or resources, reach us in our [Chat at Discord](https://chat.verdaccio.org), we will help you.
|
||||
|
||||
## The latest Talk <iframe width="960" height="540" src="https://www.youtube.com/embed/CnLA73E1BrE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen mark="crwd-mark"></iframe>
|
||||
|
||||
> The last shared talk is always highlighted here. We help you share your voice with the community.
|
||||
|
||||
* [Практический опыт работы с приватным хранилищем npm-пакетов (Verdaccio)](https://youtu.be/CnLA73E1BrE?t=10101) - [О Panda-Meetup](http://panda-meetup.ru/msk-frontend-meetup-2) - time (2:48:23)
|
||||
* [Madrid Node.js Meetup - Introducción a Verdaccio: gestión de paquetes privados, March 2019](https://www.todojs.com/introduccion-a-verdaccio/)
|
||||
* [Vienna.js Meetuo - Introduction to Verdaccio, January 2019](https://www.youtube.com/watch?v=hDIFKzmoCaA)
|
||||
* [#22 FloripaJS Brazil Meetup, February 2019](https://www.youtube.com/watch?v=iOp70_svQ_M&feature=youtu.be&t=7578)
|
||||
* [FrankenJS Angular & Beyond - Enterprise-Architectures for huge Angular Apps by Manfred Steyer](https://youtu.be/dWdJkqhQFXU?t=613)
|
||||
* [ngPoland 2017 - Manfred Steyer - Packages for Angular](https://youtu.be/3fMTdm7k_d0?t=662)
|
||||
* [Kamil Warpechowski: Jak zapanować nad wspólnym kodem w wielu projektach? [PL] - WarsawJS Meetup #44](https://www.youtube.com/watch?v=JIlQ468xfbU&feature=youtu.be&t=609)
|
||||
* [Architekturen für große Anwendungen im Angular-Umfeld - Manfred Steyer bei Frontend RheinMain @ AOE](https://youtu.be/eZ91bip6qm4?t=1010)
|
||||
* [reating Enterprise Web Applications with Node.js #WeAreDevelopers2018](https://youtu.be/RWE6aV7p0Wk?t=682)
|
||||
* [Architectures for Huge Angular Based Enterprise #WeAreDevelopers2018](https://youtu.be/q4XmAy6_ucw?t=551)
|
||||
* [BxJS Weekly Ep. 13 - June 2, 2018 (javascript news podcast)](https://youtu.be/Xo8CzYGKXTs?list=PL_gX69xPLi-mqs5BJe-xPnOPT6K1Y5_ZQ&t=2732)
|
||||
|
||||
## Future Talks
|
||||
|
||||
* [Madrid Node.js Meetup 5h March 2019](https://www.meetup.com/es-ES/Node-js-Madrid/events/258299729/)
|
||||
|
||||
## Related Videos
|
||||
|
||||
* [Local npm server](https://www.youtube.com/watch?v=vc2wMwcDKOE)
|
||||
* [Private NPM Registry (sinopia+docker)](https://www.youtube.com/watch?v=0TXTCrGaxKc)
|
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
id: uplinks
|
||||
title: "Uplinks"
|
||||
---
|
||||
|
||||
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)
|
||||
|
||||
### Uso
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
server2:
|
||||
url: http://mirror.local.net/
|
||||
timeout: 100ms
|
||||
server3:
|
||||
url: http://mirror2.local.net:9000/
|
||||
baduplink:
|
||||
url: http://localhost:55666/
|
||||
```
|
||||
|
||||
### Configuración
|
||||
|
||||
You can define mutiple uplinks and each of them must have an unique name (key). They can have the following properties:
|
||||
|
||||
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción | Por Defecto |
|
||||
| ------------- | ------- | --------- | ------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
|
||||
| url | string | Yes | https://registry.npmjs.org/ | all | El dominio del registro | npmjs |
|
||||
| ca | string | No | ~./ssl/client.crt' | all | Ubicación del certificado SSL | Desactivado |
|
||||
| timeout | string | No | 100ms | all | timeout por petición | 30s |
|
||||
| maxage | string | No | 10m | all | the time threshold to the cache is valid | 2m |
|
||||
| fail_timeout | string | No | 10m | all | define el tiempo máximo cuando una petición falla | 5m |
|
||||
| max_fails | number | No | 2 | all | límite máximo de fallos | 2 |
|
||||
| cache | boolean | No | [true,false] | >= 2.1 | cache all remote tarballs in storage | true |
|
||||
| auth | list | No | [ver abajo](uplinks.md#auth-property) | >= 2.5 | asigna el encabezado 'Autorización' [más información](http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules) | desactivado |
|
||||
| headers | list | No | ]] | all | listado de encabezados por uplink | desactivado |
|
||||
| strict_ssl | boolean | No | [true,false] | >= 3.0 | Es verdadero, requiere que el certificado SSL sea válido. | 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) | Desactivado |
|
||||
|
||||
#### Propiedad auth
|
||||
|
||||
La propiedad `auth` te permite usar un token auth con un uplink. Usando la variable de entorno por defecto:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token_env: true # defaults to `process.env['NPM_TOKEN']`
|
||||
```
|
||||
|
||||
o a través de una variable de entorno específica:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token_env: FOO_TOKEN
|
||||
```
|
||||
|
||||
`token_env: FOO_TOKEN` utilizará internamente `process.env['FOO_TOKEN']`
|
||||
|
||||
o al especificar directamente un token:
|
||||
|
||||
```yaml
|
||||
uplinks:
|
||||
private:
|
||||
url: https://private-registry.domain.com/registry
|
||||
auth:
|
||||
type: bearer
|
||||
token: "token"
|
||||
```
|
||||
|
||||
> Nota: `token` tiene prioridad sobre `token_env`
|
||||
|
||||
### Debes saber
|
||||
|
||||
* 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).
|
||||
* Exceed with multiple uplinks might slow down the lookup of your packages due for each request a npm client does, verdaccio does 1 call for each uplink.
|
||||
* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)
|
35
website/crowdin/master/website/translated_docs/es-ES/web.md
Normal file
35
website/crowdin/master/website/translated_docs/es-ES/web.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
id: webui
|
||||
title: "Interfaz Web de Usuario"
|
||||
---
|
||||
|
||||
![Uplinks](https://user-images.githubusercontent.com/558752/52916111-fa4ba980-32db-11e9-8a64-f4e06eb920b3.png)
|
||||
|
||||
Verdaccio ofrece un interfaz web de usuario para mostrar solo los paquetes privados y puede ser personalizable.
|
||||
|
||||
```yaml
|
||||
web:
|
||||
enable: true
|
||||
title: Verdaccio
|
||||
logo: logo.png
|
||||
primary_color: "#4b5e40"
|
||||
gravatar: true | false
|
||||
scope: "@scope"
|
||||
sort_packages: asc | desc
|
||||
```
|
||||
|
||||
Todo los accesos restringidos definidos para [proteger paquetes](protect-your-dependencies.md) también aplican al interfaz web.
|
||||
|
||||
### Configuración
|
||||
|
||||
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripcion |
|
||||
| ------------- | ---------- | --------- | ------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| enable | boolean | No | true/false | all | habilita la interfaz web |
|
||||
| title | string | No | Verdaccio | all | El título de la interfaz web |
|
||||
| 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 |
|
||||
|
||||
> It is recommended the logo size has the following size `40x40` pixels.
|
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
id: what-is-verdaccio
|
||||
title: "Qué es Verdaccio?"
|
||||
---
|
||||
|
||||
Verdacio es un **ligero registry privado y proxy**hecho en **Node.js** <iframe width="560" height="315" src="https://www.youtube.com/embed/hDIFKzmoCaA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen mark="crwd-mark"></iframe>
|
||||
|
||||
<div id="codefund">''</div>
|
||||
|
||||
## Qué es un registro
|
||||
|
||||
* Un repositorio de paquetes que implementan la espcificación **CommonJS Compliant Package Registry specification** para la lectura de información de paquetes
|
||||
* Provee un API compatible con clientes npm **(yarn/npm/pnpm)**
|
||||
* Compatible con el versionado semantico **(semver)**
|
||||
|
||||
$> verdaccio
|
||||
|
||||
|
||||
![registry](assets/verdaccio_server.gif)
|
||||
|
||||
## Usando Verdaccio
|
||||
|
||||
Usar verdaccio con cualquier cliente de manejador de paquetes es muy sencillo.
|
||||
|
||||
![registry](assets/npm_install.gif)
|
||||
|
||||
Puedes usar un registro personalizado bien definiendolo globalmente para todos los projectos
|
||||
|
||||
npm set registry http://localhost:4873
|
||||
|
||||
|
||||
o por línea de commandos como argumento `--registry` en npm (ligeramente diferente en yarn)
|
||||
|
||||
npm install lodash --registry http://localhost:4873
|
||||
|
||||
|
||||
## Privado
|
||||
|
||||
Todos los paquetes que publicas son privados y accesibles basados en tu configuración.
|
||||
|
||||
## Proxy
|
||||
|
||||
Verdaccio almacena todas las dependencias bajo demanda y acelera las instalaciones en redes locales y privadas.
|
||||
|
||||
## Verdaccio en pocas palabras
|
||||
|
||||
* Es una aplicación web basada en Node.js
|
||||
* Es un registro privado
|
||||
* Es un proxy para la red local
|
||||
* Es una aplicación extensible
|
||||
* Es muy fácil de usar e instalar
|
||||
* Ofrecemos soporte en Docker y Kubernetes
|
||||
* Es 100% compatible con yarn, npm y pnpm
|
||||
* Es un ** forked** basado en `sinopia@1.4.0` y 100% **compatible hacia atras**.
|
||||
* Verdaccio significa **Un color verde popular en la Italia medieval para la pintura en fresco**.
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
id: who-is-using
|
||||
title: "Quien usa Verdaccio?"
|
||||
---
|
||||
|
||||
### Como Negocio
|
||||
|
||||
*Si estas usando Verdaccio en tu negocio y quieres compartir tu experiencia, dejamos saber. Nos encantará escucharte.*
|
||||
|
||||
* [SheetJS](https://sheetjs.com/)
|
||||
* [Satispay](https://www.satispay.com/)
|
||||
|
||||
### Proyectos Open Source
|
||||
|
||||
> **Sientete libre de sugerir otros OSS que esten usando 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)
|
||||
* [Uppy](https://github.com/transloadit/uppy)
|
||||
* [Aurelia Framework](https://github.com/aurelia)
|
||||
* [bit](https://github.com/teambit/bit)
|
||||
* [Hyperledger Composer](https://github.com/hyperledger/composer)
|
||||
* [Wix Yoshi](https://github.com/wix/yoshi)
|
||||
* [The AWS Cloud Development Kit](https://github.com/awslabs/aws-cdk)
|
||||
|
||||
#### Readme Recommendations
|
||||
|
||||
* [react-native-cli](https://github.com/react-native-community/react-native-cli/blob/master/CONTRIBUTING.md)
|
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
id: windows
|
||||
title: "Instalación como un Servicio de Windows"
|
||||
---
|
||||
|
||||
Basándome ligeramente en las instrucciones encontradas [aquí](http://asysadmin.tumblr.com/post/32941224574/running-nginx-on-windows-as-a-service). Elaboré lo siguiente y me proporcionó un servicio de instalación de verdaccio totalmente funcional:
|
||||
|
||||
1. Crear un directorio para Verdaccio
|
||||
* mkdir `c:\verdaccio`
|
||||
* cd `c:\verdaccio`
|
||||
2. Instalar localmente verdaccio (me encontré con problemas npm con las instalaciones globales)
|
||||
* instalar verdaccio con npm
|
||||
3. Crear su archivo `config.yaml` en esta ubicación `(c:\verdaccio\config.yaml)`
|
||||
4. Configurar el Servicio de Windows
|
||||
|
||||
## Uso de NSSM
|
||||
|
||||
MÉTODO ALTERNATIVO: (el paquete WinSW faltaba cuando intenté descargarlo)
|
||||
|
||||
* Descargar [NSSM](https://www.nssm.cc/download/) y extraerlo
|
||||
|
||||
* Agregar la ruta que contiene nssm.exe a la RUTA
|
||||
|
||||
* Abrir un comando administrativo
|
||||
|
||||
* Ejecutar la instalación nssm de verdaccio. Como mínimo debe completar en la Aplicación las pestañas de Ruta, el directorio de Inicio y los campos de Argumentos. Suponiendo una instalación con nodo en la ruta del sistema y una ubicación de c:\verdaccio los siguientes valores funcionarán:
|
||||
|
||||
* Ruta: `node`
|
||||
* Directorio de Inicio: `c:\verdaccio`
|
||||
* Argumentos: `c:\verdaccio\node_modules\verdaccio\build\lib\cli.js -c c:\verdaccio\config.yaml`
|
||||
|
||||
Puede ajustar otras configuraciones de servicio en otras pestañas, según desee. Cuando termine, haga clic en el botón Servicio de Instalación
|
||||
|
||||
* Iniciar el servicio sc iniciar verdaccio
|
||||
|
||||
## Uso de WinSW
|
||||
|
||||
* A partir del 27/10/2015, WinSW ya no está disponible en la siguiente ubicación. Por favor, siga las instrucciones anteriores de Uso de NSSM.
|
||||
* Descargar [WinSW](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
|
||||
* Colocar el archivo ejecutable (por ejemplo `winsw-1.9-bin.exe`) en esta carpeta (`c:\verdaccio`) y cambiarle el nombre a `verdaccio-winsw.exe`
|
||||
* Crear un archivo de configuración en `c:\verdaccio`, llamado `verdaccio-winsw.xml` con la siguiente configuración `xml verdaccio verdaccio verdaccio node c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml roll c:\verdaccio`.
|
||||
* Instalar su servicio
|
||||
* `cd c:\verdaccio`
|
||||
* `verdaccio-winsw.exe install`
|
||||
* Comenzar su servicio
|
||||
* `verdaccio-winsw.exe start`
|
||||
|
||||
Algunas de las configuraciones anteriores son más detalladas de lo que esperaba, parece como si 'workingdirectory' es ignorado, pero aparte de eso, esto funciona para mí y permite que mi instancia de verdaccio persista entre reinicios del servidor, y también que se reinicie a sí mismo de haber algún problema en el proceso de verdaccio.
|
||||
|
||||
## Repositorios
|
||||
|
||||
* [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue