Merge branch 'master' into 4.x

This commit is contained in:
Juan Picado @jotadeveloper 2018-11-07 16:05:24 +08:00 committed by GitHub
commit f3be8346cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 895 additions and 820 deletions

View File

@ -1,59 +1,101 @@
# Contributing to Verdaccio
We are happy you wish to contribute this project, for that reason we want to board you with this guide.
We are happy that you wish to contribute to this project. For that reason, we
present you with this guide.
## How I contribute?
Additional information is available on the
[wiki](https://github.com/verdaccio/verdaccio/wiki).
## Contents
### Ways to contribute
- [Contents](#contents)
- [How Do I Contribute?](#how-do-i-contribute)
- [Development](#development)
- [Reporting Bugs](#reporting-bugs)
- [Issue Search](#issue-search)
- [Check Website For Solution](#check-website-for-solution)
- [Chat](#chat)
- [Check If It's Been Fixed](#check-if-its-been-fixed)
- [Request Features](#request-features)
- [Submitting a Pull Request](#submitting-a-pull-request)
- [Make Changes and Commit](#make-changes-and-commit)
- [Update Tests](#update-tests)
- [Develop Plugins](#develop-plugins)
There are many ways to contribute to the Verdaccio Project. Heres a list of technical contributions with increasing levels of involvement and required knowledge of Verdaccio's code and operations.
## How Do I Contribute?
* [Reporting a Bug](CONTRIBUTING.md#reporting-a-bug)
* [Request Features](CONTRIBUTING.md#request-features)
* [Plugins](CONTRIBUTING.md#plugins)
* [Improve the Documentation](http://www.verdaccio.org/docs/en/installation.html)
There are different ways to contribute, each with a different level
of involvement and technical knowledge required, such as:
Please read carefully this document. It will guide you to provide maintainers and readers valuable information to boots the process solve the issue or evaluate your proposal.
* [Reporting Bugs](#reporting-bugs)
* [Request Features](#request-features)
* [Develop Plugins](#develop-plugins)
* [Improve Documentation](http://www.verdaccio.org/docs/en/installation.html)
## Reporting a Bug
**Please read this document carefully. It will help maintainers and readers
in solving your issue(s), evaluating your feature request, etc.**
We welcome clear bug reports. If you've found a bug in Verdaccio that isn't a security risk, please file a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues). Before you file your issue, search to see if it has already been reported. If so, up-vote (using GitHub reactions) or add additional helpful details to the existing issue to show that it's affecting multiple people.
## Development
### Check if there's a simple solution in the website.
Development guides can be found on the [wiki](https://github.com/verdaccio/verdaccio/wiki):
* [Building the project](https://github.com/verdaccio/verdaccio/wiki/Build-Source-Code)
* [Running, debugging, and testing](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests)
## Reporting Bugs
We welcome clear, detailed bug reports.
**Bugs are considered features that are not working as described in
documentation.**
If you've found a bug in Verdaccio **that isn't a security risk**, please file
a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues).
**NOTE: Verdaccio still does not support all npm commands. Some were not
considered important and others have not been requested yet.**
### Issue Search
Search to see if it has already been reported via
the issue search.
Additionally, we have labelled questions for easy follow-up as [questions](https://github.com/verdaccio/verdaccio/labels/question).
If so, up-vote it (using GitHub reactions) or add additional helpful details to
the existing issue to show that it's affecting multiple people.
### Check Website For Solution
Some of the most popular topics can be found in our website(http://www.verdaccio.org/docs/en/installation.html)
### Questions & Chat
### Chat
We have tagged questions for easy follow up under the tag [questions](https://github.com/verdaccio/verdaccio/labels/question). Additionaly, I'd recommend to deliver questions in the new chat as **#questions/#development** channels at [gitter](https://gitter.im/verdaccio/).
Questions can be asked via [Discord](http://chat.verdaccio.org/)
### Using the issue tracker
**Please use the `#questions#` and `#development` channels.**
The issue tracker is a channel were mostly users/developers post.
### Check If It's Been Fixed
#### I want to report a bug
We considere a bug a feature that is not working as is described in the documentation. Before reporting a bug follow the next steps:
1. Use the GitHub issue search — check if the issue has already been reported.
2. Check if the issue has been fixed — try to reproduce it using the latest master or development branch in the repository.
Verdaccio still does not support all npm commands due either in the initial design were not considered important or nobody has request it yet.
Check if the issue has been fixed — try to reproduce it using the latest
`master` or development branch in the repository.
## Request Features
A new feature is always welcome, thus, analyse whether your idea fits in the scope of the project and elaborate your request providing enough context, for instance:
New feature requests are welcome. Analyse whether the idea fits within scope of
the project. Then, detail your request, ensuring context and use case is provided.
* A wide description the advantages of your request.
* It's compatible with `npm` and `yarn`?
* You might implement your feature and provide a forked repository as example.
* Whatever you have on mind 🤓.
**Please provide:**
* A detailed description the advantages of your request
* Whether or not it's compatible with `npm` and `yarn`
* A potential implementation or design
* Whatever else you have in your mind 🤓
### Submitting a Pull Request
The following are the general steps you should follow in creating a pull request. Subsequent pull requests only need
to follow step 3 and beyond:
The following are the steps you should follow when creating a pull request.
Subsequent pull requests only need to follow step 3 and beyond.
1. Fork the repository on GitHub
2. Clone the forked repository to your machine
@ -62,63 +104,90 @@ to follow step 3 and beyond:
5. Issue a Pull Request to the official repository
6. Your Pull Request is reviewed by a committer and merged into the repository
*Note*: While there are other ways to accomplish the steps using other tools, the examples here will assume the most
actions will be performed via the `git` command line.
**NOTE**: While there are other ways to accomplish the steps using other tools,
the examples here will assume most actions will be performed via `git` on
command line.
For more information on maintaining a fork, please see the GitHub Help article [Fork a Repo](https://help.github.com/articles/fork-a-repo/) and information on
[rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) from git.
For more information on maintaining a fork, please see the GitHub Help article
titled [Fork a Repo](https://help.github.com/articles/fork-a-repo/), and
information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
### Make Changes and Commit
#### Before commit
#### Before Commit
At this point you have ready your changes, your new feature it's ready to be shipped, but, to avoid delays to merge, please be aware the build must past.
Before committing, **you must ensure there are no linting errors and
all tests pass.**
Before commit, run the test command:
To do this, run all tests (including e2e):
```bash
yarn test
yarn test:all
```
It won't have **eslint** errors and **all test must past**. Then, and only then, you should push and ship your **PR**.
#### Git Commit Guidelines
Then, and only then, you can create your pull request.
We follow the [conventional commit messages](https://conventionalcommits.org/) convention in order to automate Changelog generation and auto semantic versioning based on commit messages.
#### Commit Guidelines
* feat: A new feature
* fix: A bug fix
We follow the [conventional commit messages](https://conventionalcommits.org/)
convention in order to automate CHANGELOG generation and to automate
semantic versioning.
A commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in semantic versioning).
For example:
* `feat: A new feature`
* `fix: A bug fix`
A commit of the type feat introduces a new feature to the codebase
(this correlates with MINOR in semantic versioning).
e.g.:
eg:
```
feat: xxxxxxxxxx
````
```
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
eg:
e.g.:
```
fix: xxxxxxxxxx
````
```
Commits types as `docs:`,`style:`,`refactor:`,`perf:`,`test:` and `chore:` are valid but has no effect on versioning, but, it would be great if you use them.
Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:`
and `chore:` are valid but have no effect on versioning. **It would be great
if you use them.**
Use `npm run commitmsg` to check your commit message.
Use `npm run commitmsg` to check your commit message format.
> All PR that does not follow the commit guidelines will be hold until messages are fixed.
**PRs that do not follow the commit message guidelines will not be merged.**
## Update Test
## Update Tests
Any change in the sour code **must to include test update**, if you need support about how test works, please [refers to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests). Please include test whether is a new feature, otherwise will be hold and never be merged.
**Any change in source code must include test updates**.
> Documentation, website, build, deployment, assets or flow types are excluded in this section
If you need help with how testing works, please [refer to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests).
## Plugins
**If you are introducing new features, you MUST include new tests. PRs for
features without tests will not be merged.**
Plugins are Add-ons that extend the functionality of the application. Whether you want develop your own plugin I'd suggest do the following:
Things excluded from tests:
* Documentation
* Website
* Build
* Deployment
* Assets
* Flow types
1. Check whether there is a legacy sinopia plugin for the feature that you need at [npmjs](https://www.npmjs.com/search?q=sinopia).
2. There is a [life-cycle to load a plugin](https://github.com/verdaccio/verdaccio/blob/master/lib/plugin-loader.js#L22) you should keep on mind.
3. You are free to host your plugin in your repository, whether you want to host within in our organization, feel free to ask, we'll happy to host it.
4. Try a describe widely your plugin to provide a deeply understanding to your users.
## Develop Plugins
Plugins are add-ons that extend the functionality of the application.
If you want to develop your own plugin:
1. Check whether there is a legacy Sinopia plugin for the feature that you need
via [npmjs](https://www.npmjs.com/search?q=sinopia)
2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins)
3. You are free to host your plugin in your repository or ours (just ask)
4. Provide a detailed description of your plugin to help users understand it

View File

@ -1,88 +1,88 @@
{
"_comment": "This file is auto-generated by write-translations.js",
"_comment": "Ovaj fajl je auto-generisan zapisivanjem write-translations.js",
"localized-strings": {
"next": "Next",
"previous": "Previous",
"next": "Dalje",
"previous": "Natrag",
"tagline": "Verdaccio · A lightweight private npm proxy registry",
"ansible": "Ansible",
"authentification": "Authentification",
"build": "Build the source code",
"chef": "Chef Cookbook",
"ci": "Continuous Integration",
"authentification": "Autentifikacija",
"build": "Sagradi izvorni kod",
"chef": "Veliki Narodni Kuvar",
"ci": "Stalna Integracija",
"cli": "Command Line Tool",
"configuration": "Configuration File",
"contributing": "Contributing Verdaccio",
"dev-plugins": "Developing Plugins",
"contributing": "Doprinos razvoju Verdaccio-a",
"dev-plugins": "Razvijanje Pligina",
"docker": "Docker",
"iss-server": "Installing on IIS server",
"installation": "Installation",
"iss-server": "Instaliranje na IIS server",
"installation": "Instalacija",
"kubernetes": "Kubernetes",
"logger": "Logger",
"logo": "Verdaccio Logotype",
"logo": "Verdaccio Logotip",
"node-api": "Node API",
"notifications": "Notifications",
"notifications": "Obaveštenja",
"packages": "Package Access",
"plugins": "Plugins",
"protect-your-dependencies": "Protecting packages",
"plugins": "Plugini",
"protect-your-dependencies": "Zaštita paketa",
"puppet": "Puppet",
"source-code": "Source Code",
"source-code": "Izvorni kod",
"reverse-proxy": "Reverse Proxy Setup",
"server-configuration": "Server Configuration",
"ssl": "Set up the SSL Certificates",
"ssl": "Podešavanje SSL Sertifikata",
"unit-testing": "Unit Testing",
"uplinks": "Uplinks",
"use-cases": "Use Cases",
"webui": "Web User Interface2",
"what-is-verdaccio": "What is Verdaccio?",
"windows": "Installing As a Windows Service",
"webui": "Web korisnički interfejs2",
"what-is-verdaccio": "Šta je Verdaccio?",
"windows": "Instalirajte kao Windows Service",
"Docs": "Docs",
"Blog": "Blog",
"Help": "Help",
"Help": "Pomoć",
"GitHub": "GitHub",
"Team": "Team",
"Donate": "Donate",
"Introduction": "Introduction",
"Configuration": "Configuration",
"Team": "Tim",
"Donate": "Donirajte",
"Introduction": "Uvod",
"Configuration": "Konfigurisanje",
"Server": "Server",
"Plugins": "Plugins",
"Plugins": "Plugini",
"DevOps": "DevOps",
"Development": "Development",
"Guides": "Guides"
"Guides": "Uputstva"
},
"pages-strings": {
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "Learn more using the [documentation on this site.](/docs/en/installation.html)",
"Browse Docs|no description given": "Browse Docs",
"Ask questions about the documentation and project|no description given": "Ask questions about the documentation and project",
"Join the community|no description given": "Join the community",
"Find out what's new with this project|no description given": "Find out what's new with this project",
"Stay up to date|no description given": "Stay up to date",
"Need help?|no description given": "Need help?",
"This project is maintained by a dedicated group of people.|statement made to reader": "This project is maintained by a dedicated group of people.",
"Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)|no description given": "Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)",
"You can follow and contact us on|no description given": "You can follow and contact us on",
"and also you can chat with the Verdaccio community at|no description given": "and also you can chat with the Verdaccio community at",
"If the documentation is not enough help, you can try browsing into our|no description given": "If the documentation is not enough help, you can try browsing into our",
"This project is maintained by the Verdaccio community.|no description given": "This project is maintained by the Verdaccio community.",
"Get Started|no description given": "Get Started",
"Contribute|no description given": "Contribute",
"Thats it ! Enjoy your private package manager.|no description given": "Thats it ! Enjoy your private package manager.",
"Many great developers are already enjoying Verdaccio, join the community!|no description given": "Many great developers are already enjoying Verdaccio, join the community!",
"**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.|no description given": "**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.",
"The most popular npm clients are supported|no description given": "The most popular npm clients are supported",
"We have an official **Docker** image ready to use|no description given": "We have an official **Docker** image ready to use",
"and **Kubernetes Helm** support for easy deployment|no description given": "and **Kubernetes Helm** support for easy deployment",
"Making the DevOps work easy|no description given": "Making the DevOps work easy",
"Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.|no description given": "Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.",
"Plugin Support|no description given": "Plugin Support",
"Who's Using This?|no description given": "Who's Using This?",
"This project is used by all these people|no description given": "This project is used by all these people",
"More|no description given": "More",
"Users|no description given": "Users",
"This project is used by many folks|no description given": "This project is used by many folks",
"Are you using this project? Do not be shy and add your company/project logo.|no description given": "Are you using this project? Do not be shy and add your company/project logo.",
"Add your company|no description given": "Add your company",
"Help Translate|recruit community translators for your project": "Help Translate",
"Edit this Doc|recruitment message asking to edit the doc source": "Edit",
"Translate this Doc|recruitment message asking to translate the docs": "Translate"
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "Naučite više čitajući [dokumentaciju na sajtu.](/docs/en/installation.html)",
"Browse Docs|no description given": "Pretraži Docs",
"Ask questions about the documentation and project|no description given": "Postavite pitanje vezano za dokumentaciju i projekat",
"Join the community|no description given": "Pridržite se zajednici",
"Find out what's new with this project|no description given": "Otkrijte novine u ovom projektu",
"Stay up to date|no description given": "Budite obavešteni",
"Need help?|no description given": "Potrebna Vam je pomoć?",
"This project is maintained by a dedicated group of people.|statement made to reader": "Ovaj projekat održava grupa posvećenih ljudi.",
"Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)|no description given": "Naučite više o Verdaccio-u iz [dokumentacije dostupne na sajtu.](/docs/en/installation.html)",
"You can follow and contact us on|no description given": "Možete nas pratiti i kontaktirati na",
"and also you can chat with the Verdaccio community at|no description given": "ili možete ćaskati sa Verdaccio zajednicom na",
"If the documentation is not enough help, you can try browsing into our|no description given": "Ako dokumentacija nije dovoljna, probajte da potražite na našoj",
"This project is maintained by the Verdaccio community.|no description given": "Ovaj projekat održava Verdaccio zajednica.",
"Get Started|no description given": "Početak",
"Contribute|no description given": "Doprinesite",
"Thats it ! Enjoy your private package manager.|no description given": "To je to! Uživajte u svom private package manager-u.",
"Many great developers are already enjoying Verdaccio, join the community!|no description given": "Mnogo sjajnih developera već uživa koristeći Verdaccio, vreme je da se pridružite zajednici!",
"**npm**, **yarn** and **pnpm** are part of any development workflow we try to catch up with the latest updates.|no description given": "**npm**, **yarn** i **pnpm** neizbežni u radu i stoga je dobro da pratite ažuriranja verzija.",
"The most popular npm clients are supported|no description given": "Najpopularniji npm klijenti su podržani",
"We have an official **Docker** image ready to use|no description given": "Imamo oficijelni **Docker** image spreman za upotrebu",
"and **Kubernetes Helm** support for easy deployment|no description given": "i **Kubernetes Helm** podršku za lak i jednostavan deployment",
"Making the DevOps work easy|no description given": "Neka DevOps rade sa lakoćom",
"Verdaccio is plugin based, authentication, middleware and storage support. Just pick one or create your custom one.|no description given": "Verdaccio je baziran na pluginima i podržava authentication, middleware i storage. Izaberite neki od postojećih plugina ili kreirajte svoj.",
"Plugin Support|no description given": "Podrška za Plugine",
"Who's Using This?|no description given": "Ko uopšte koristi ovo?",
"This project is used by all these people|no description given": "Svi ovi ljudi",
"More|no description given": "Više",
"Users|no description given": "Korisnici",
"This project is used by many folks|no description given": "Puno ljudi koristi ovaj projekat",
"Are you using this project? Do not be shy and add your company/project logo.|no description given": "Da li i Vi koristite ovaj projekat? Ne budite stidljivi, dodajte logo svog projekta ili kompanije.",
"Add your company|no description given": "Dodajte svoju kompaniju",
"Help Translate|recruit community translators for your project": "Pomognite da se prevede",
"Edit this Doc|recruitment message asking to edit the doc source": "Uredi",
"Translate this Doc|recruitment message asking to translate the docs": "Prevedi"
}
}

View File

@ -12,27 +12,27 @@ Verdaccio est une application Web multi-plateforme. Quelques conditions préalab
2. npm `>=3.x` ou `yarn`
3. L'interface web prend en charge les navigateurs `Chrome, Firefox, Edge, et IE9`.
## Installing the CLI
## En cours d'installation du CLI
`verdaccio` must be installed globaly using either of the following methods:
`verdaccio` doit être installé globalement en utilisant l'une des méthodes suivantes:
Using `npm`
En utilisant `npm`
```bash
npm install -g verdaccio
```
or using `yarn`
ou en utilisant `yarn`
```bash
yarn global add verdaccio
```
![install verdaccio](/svg/install_verdaccio.gif)
![installer verdaccio](/svg/install_verdaccio.gif)
## Basic Usage
## Usage basique
Once it has been installed, you only need to execute the CLI command:
Une fois installé, il vous suffit dexécuter la commande CLI:
```bash
$> verdaccio
@ -40,14 +40,14 @@ warn --- config file - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/3.0.1
```
For more information about the CLI, please [read the cli section](cli.md).
Pour plus d'information sur CLI, veuillez [lire la section cli](cli.md).
## Docker Image
## Image 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).
`verdaccio` a une image de docker officielle que vous pouvez utiliser, et dans la majorité des cas, la configuration par défaut est assez bonne. Pour plus dinformations sur la façon dinstaller limage officielle, [lisez la section docker](docker.md).
## Cloudron
`verdaccio` is also available as a 1-click install on [Cloudron](https://cloudron.io)
`verdaccio` est également disponible en application à installer en 1 clic sur [Cloudron](https://cloudron.io)
[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)
[![Installer](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)

View File

@ -2,84 +2,84 @@
id: kubernetes
title: "Kubernetes"
---
You can find instructions to deploy Verdaccio on a Kubernetes cluster on the [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example) repository. However, the recommended method to install Verdaccio on a Kubernetes cluster is to use [Helm](https://helm.sh). Helm is a [Kubernetes](https://kubernetes.io) package manager which bring multiple advantages.
Les instructions pour développer Verdaccio sur un cluster Kubernetes sont disponibles dans larchive [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example). Cependant, la méthode recommandée pour installer Verdaccio sur un cluster Kubernetes consiste à utiliser [Helm](https://helm.sh). Helm est un [Kubernetes](https://kubernetes.io) gestionnaire de paquets, qui présente de nombreux avantages.
## Helm
### Setup Helm
### Configurer Helm
If you haven't used Helm before, you need to setup the Helm controller called Tiller:
Si vous n'avez jamais utilisé Helm, vous devez configurer le contrôleur Helm dit Tiller:
```bash
helm init
```
### Install
### Installer
Deploy the Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio) chart. In this example we use `npm` as release name:
Développez la charte de Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio). Dans cet exemple, nous utilisons `npm` comme nom de version:
```bash
helm install --name npm stable/verdaccio
```
### Deploy a specific version
### Déployer une version spécifique
```bash
helm install --name npm --set image.tag=2.6.5 stable/verdaccio
```
### Upgrading Verdaccio
### En cours de mettre Verdaccio à niveau
```bash
helm upgrade npm stable/verdaccio
```
### Uninstalling
### Désinstallation
```bash
helm del --purge npm
```
**Note:** this command delete all the resources, including packages that you may have previously published to the registry.
**Remarque:** cette commande supprime toutes les ressources, y compris les packages que vous avez peut-être déjà publiés dans le registre.
### Custom Verdaccio configuration
### Configuration personnalisée de Verdaccio
You can customize the Verdaccio configuration using a Kubernetes *configMap*.
Vous pouvez personnaliser la configuration de Verdaccio en utilisant un Kubernetes *configMap*.
#### Prepare
#### Préparer
Copy the [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml) and adapt it for your use case:
Copiez la [configuration existante](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml) et adaptez la à votre propre cas d'utilisation:
```bash
wget https://raw.githubusercontent.com/verdaccio/verdaccio/master/conf/full.yaml -O config.yaml
```
**Note:** Make sure you are using the right path for the storage that is used for persistency:
**Remarque:** assurez-vous que vous utilisez le chemin correct d'archivage utilisé pour la persistance:
```yaml
storage: /verdaccio/storage/data
torage: /verdaccio/storage/data
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
```
#### Deploy the configMap
#### Développer le configMap
Deploy the `configMap` to the cluster
Développer le `configMap` dans le cluster
```bash
kubectl create configmap verdaccio-config --from-file ./config.yaml
```
#### Deploy Verdaccio
#### Développer Verdaccio
Now you can deploy the Verdaccio Helm chart and specify which configuration to use:
Maintenant, vous pouvez développer le tableau Verdaccio Helm et spécifier la configuration à utiliser:
```bash
helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
```
## Rancher Support
## Support Rancher
[Rancher](http://rancher.com/) est une plate-forme complète de gestion de conteneurs facilitant la gestion et l'utilisation des conteneurs en production.

View File

@ -149,10 +149,10 @@ Vous pouvez accéder au package publié avec le mot clé `{{publishedPackage}}`
## Configuration
| Propriété | Type | Obligatoire | Soutien | Par défaut | Description |
| ------------------- | -------------------- | ----------- | ------- | ---------- | -------------------------------------------------------------------------------------------- |
| ------------------- | -------------------- | ----------- | ------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
| méthode | chaîne de caractères | Non | tous | | HTTP verb |
| packagePattern | chaîne de caractères | Non | tous | | N'effectuez cette notification que si le nom du package correspond à l'expression régulière |
| packagePatternFlags | chaîne de caractères | Non | all | | Any flags to be used with the regular expression |
| headers | array/object | Yes | all | | If this endpoint requires specific headers, set them here as an array of key: value objects. |
| endpoint | string | Yes | all | | set the URL endpoint for this call |
| content | string | Yes | all | | any [Handlebar](https://handlebarsjs.com/) expressions |
| packagePatternFlags | chaîne de caractères | Non | tous | | Tous les drapeaux à utiliser avec l'expression régulière |
| en-têtes | tableau/objet | Oui | tous | | Si ce noeud final nécessite des en-têtes spécifiques, définissez-les ici comme un tableau de clé: valeur des objets. |
| endpoint | chaîne de caractères | Oui | tous | | définir l'URL de l'endpoint pour cet appel |
| content | chaîne de caractères | Oui | tous | | toute expression [Handlebar](https://handlebarsjs.com/) |

View File

@ -1,14 +1,14 @@
---
id: packages
title: "Package Access"
id: paquets
title: "Paquet d'accès"
---
It's a series of contraints that allow or restrict access to the local storage based in specific criteria.
Il s'agit d'une série de restrictions qui permettent ou restreignent l'accès au stockage local en fonction de critères spécifiques.
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.
Les restrictions de sécurité dépendent du plugin que vous utilisez. `verdaccio` utilise par défaut le plugin [htpasswd](https://github.com/verdaccio/verdaccio-htpasswd). Si vous utilisez un autre plugin, l'opération peut être différente. Le plugin par défaut ne gère pas directement `allow_access` et `allow_publish`, mais utilise une alternative interne au cas où le plugin ne serait pas prêt pour cela.
For more information about permissions visit [the authentification section in the wiki](auth.md).
Pour plus d'informations sur les autorisations, consultez la [section d'authentification du wiki](auth.md).
### Usage
### Utilisation
```yalm
packages:
@ -31,7 +31,7 @@ packages:
proxy: uplink2
```
if none is specified, the default one remains
si rien n'est spécifié, le choix est par défaut
```yaml
packages:
@ -40,20 +40,20 @@ packages:
publish: $authenticated
```
The list of valid groups according the default plugins are
La liste des groupes valides selon les plugins par défaut sont
```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.
Tous les utilisateurs reçoivent tous ces groupes d'autorisations, qu'ils soient anonymes ou non, plus les groupes fournis par le plug-in. Dans le cas `htpasswd`, rejetez le nom d'utilisateur en tant que groupe. Par exemple, si vous êtes connectés en tant que `npmUser`, la liste des noms sera.
```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 recomend using a prefix for your packages, in that way it will be easier to protect them.
Si vous souhaitez protéger un ensemble spécifique de paquets au sein de votre groupe, vous devez procéder de la même manière. Utilisons un `Regex` qui couvre tous les paquets avec le préfixe `npmuser -`. Nous vous recommandons d'utiliser un préfixe pour vos paquets afin de faciliter leur protection.
```yaml
packages:
@ -62,7 +62,7 @@ packages:
publish: npmuser
```
Restart `verdaccio` and in your console try to install `npmuser-core`.
Redémarrez `verdaccio` et essayez d'installer `npmuser-core` dans votre console.
```bash
$ npm install npmuser-core
@ -74,11 +74,11 @@ 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.
Vous pouvez changer le comportement existant en utilisant un autre plugin d'authentification. `verdaccio` vérifie simplement si l'utilisateur qui a tenté d'accéder ou de publier un paquet spécifique appartient au groupe approprié.
#### Set multiple groups
#### Définir plusieurs groupes
Defining multiple access groups is fairly easy, just define them with a white space between them.
Il est facile de définir plusieurs groupes daccès, définissez-les juste avec un espace blanc entre eux.
```yaml
'company-*':
@ -91,9 +91,9 @@ Defining multiple access groups is fairly easy, just define them with a white sp
proxy: server1
```
#### Blocking access to set of packages
#### Bloquer laccès à lensemble des paquets
If you want to block the acccess/publish to a specific group of packages. Just do not define `access` and `publish`.
Si vous souhaitez bloquer laccès/publier à un groupe spécifique de paquets. alors ne définissez pas `access` et `publish`.
```yaml
packages:

View File

@ -6,7 +6,7 @@ Verdaccio est une application extensible. Il peut être étendu par de nombreuse
> Si vous souhaitez développer votre plugin personnel, lisez la section [development](dev-plugins.md).
## Usage
## Utilisation
### Installation
@ -14,18 +14,18 @@ Verdaccio est une application extensible. Il peut être étendu par de nombreuse
$> 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.
`verdaccio` étant une fourchette de sinopia, est compatible avec les versions précédentes et avec les plugins compatibles avec `sinopia@1.4.0`. Dans ce cas, l'installation est la même.
$> npm install --global sinopia-memory
### Configuration
Open the `config.yaml` file and update the `auth` section as follows:
Ouvrez le fichier `>config.yaml` et mettez à jour la section `auth` comme suit :
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.
La configuration par défaut ressemble à ceci, car nous utilisons un plugin intégré `htpasswd` qui peut être désactivé en commentant les lignes suivantes.
### Auth Plugin Configuration
### Configuration du Plugin d'authentification
```yaml
htpasswd:
@ -33,7 +33,7 @@ The default configuration looks like this, due we use a build-in `htpasswd` plug
#max_users: 1000
```
and replacing them with (in case you decide to use a `ldap` plugin.
et en les remplaçant par (si vous décidez d'utiliser un plugin `ldap`.
```yaml
auth:
@ -43,9 +43,9 @@ auth:
domainSuffix: 'sample.local'
```
#### Multiple Auth plugins
#### Plugins d'authentification multiples
This is tecnically possible, making the plugin order important, as the credentials will be resolved in order.
Ceci est techniquement possible, en accordant de l'importance à l'ordre du plugin, car les informations d'identification seront résolues dans l'ordre.
```yaml
auth:
@ -58,9 +58,9 @@ auth:
domainSuffix: 'sample.local'
```
### Middleware Plugin Configuration
### Configuration du plugin Middleware
This is an example how to set up a middleware plugin. All middleware plugins must be defined in the **middlewares** namespace.
Ceci est un exemple de la façon de configurer un plugin middleware. Tous les plugins middleware doivent être définis dans l'espace de noms **middlewares**.
```yaml
middlewares:
@ -68,11 +68,11 @@ middlewares:
enabled: true
```
> You might follow the [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) as base example.
> Vous pouvez suivre le [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) comme exemple de base.
### Store Plugin Configuration
### Configuration du plugin store
This is an example how to set up a storage plugin. All storage plugins must be defined in the **store** namespace.
Ceci est un exemple de la façon de configurer un plugin de stockage. Tous les plugins de stockage doivent être définis dans l'espace de noms **store**.
```yaml
store:
@ -80,64 +80,64 @@ store:
limit: 1000
```
> If you define a custom store, the property **storage** in the configuration file will be ignored.
> Si vous définissez un magasin personnalisé, la propriété **stockage** du fichier de configuration sera ignorée.
## Legacy plugins
## Plugins hérités
### Sinopia Plugins
(compatible all versions)
(compatible avec toutes les versions)
* [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-npm](https://www.npmjs.com/package/sinopia-npm): plugin d'authentification pour la prise en charge de sinopia avec un journal npm.
* [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): plugin d'authentification pour sinopia qui se souvient des utilisateurs.
* [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin for sinopia supporting atlassian crowd.
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin for sinopia.
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin for sinopia2, supporting github oauth web flow.
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin that delegates authentication to another HTTP URL
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternate LDAP Auth plugin for Sinopia
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): An easy and fully auth-plugin with configuration to use an external API.
* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generate password in htaccess format, encrypt with GPG and send via MailGun API to users.
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): An easy and fully auth-plugin with configuration to use a mongodb database.
* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin for sinopia supporting htpasswd format.
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb backed auth plugin for sinopia private npm.
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin for sinopia.
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin for sinopia
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin for sinopia.
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin with github oauth web flow.
* [ sinopia-crowd ](https://www.npmjs.com/package/sinopia-crowd): plugin d'authentification pour sinopia qui prend en charge le public atlassien.
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): plugin d'authentification Ative Directory pour sinopia.
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): plugin d'authentification pour sinopia2, prenant en charge le flux web github oauth.
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): plugin dauthentification Sinopia qui délègue lauthentification vers une autre URL HTTP
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): plugin remplaçant LDAP Auth pour Sinopia
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): un facile auth-plugin, entier, avec configuration pour utiliser une API externe.
* [sinopia-htaccess-gpg-mail](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): générer le mot de passe au format htaccess, chiffrer avec GPG et envoyer via lAPI MailGun pour les utilisateurs.
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): un facile auth-plugin, entier, avec configuration pour utiliser une base de données mongodb.
* [ sinopia-crowd ](https://www.npmjs.com/package/sinopia-htpasswd): plugin d'authentification pour sinopia qui prend en charge le format htpasswd.
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): plugin auth pris en charge par leveldb pour la synchronisation privée npm.
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): plugin d'authentification Gitlab pour sinopia.
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): plugin d'authentification Gitlab pour sinopia
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): plugin d'authentification LDAP pour sinopia.
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) plugin d'authentification pour Sinopia avec une interface 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*.
> Tous les plugins de Sinopia devraient être compatibles avec toutes les futures versions de Verdaccio. Cependant, nous encourageons les contributeurs à les transférer vers lAPI moderne de verdaccio et à utiliser le préfixe * verdaccio-xx-name *.
## Verdaccio Plugins
## Plugins de Verdaccio
(compatible since 2.1.x)
(compatible depuis 2.1.x)
### Authorization Plugins
### Plugins d'Autorisation
* [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-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): plugin d'authentification Bitbucket pour verdaccio.
* [verdaccio-bitbucket-server](https://github.com/oeph/verdaccio-bitbucket-server): plugin d'authentification du serveur Bitbucket pour verdaccio.
* [verdaccio-ldap](https://www.npmjs.com/package/verdaccio-ldap): plugin d'authentification LDAP pour verdaccio.
* [verdaccio-active-directory](https://github.com/nowhammies/verdaccio-activedirectory): plugin d'authentifiation Active Directory pour verdaccio
* [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab): utilisez les Jetons d'Accès Personnel GitLab pour votre authentification
* [verdaccio-gitlab-ci](https://github.com/lab360-ch/verdaccio-gitlab-ci): permettre à GitLab CI d'authentifier contre verdaccio.
* [verdaccio-htpasswd](https://github.com/verdaccio/verdaccio-htpasswd): authentification basée sur le plugin du fichier htpasswd (built-in) pour verdaccio
* [verdaccio-github-oauth](https://github.com/aroundus-inc/verdaccio-github-oauth): plugin d'authentification Github oauth pour verdaccio.
* [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui): plugin de Github OAuth pour le boutton de connexion de verdaccio.
### Middleware Plugins
### Plugins Middleware
* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): verdaccio plugin for *npm audit* cli support (built-in) (compatible since 3.x)
* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): plugin verdaccio pour le support de *npm audit* (intégré) (compatible à partir de 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-profile-api](https://github.com/ahoracek/verdaccio-profile-api): plugin verdaccio pour le support client *profil npm* et *Le profil npm du mot de passe* pour l'authentification basée sur *verdaccio-htpasswd*
### Storage Plugins
### Plugins de stockage
(compatible since 3.x)
(compatible depuis 3.x)
* [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**
* [verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) Des plugins de stockage pour héberger des paquets en mémoire
* [verdaccio-s3-storage](https://github.com/remitly/verdaccio-s3-storage) plugin de stockage pour héberger les paquets**Amazon S3**
* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) plugin de stockage pour héberger les paquets **Stockage Google Cloud**
## Caveats
## Avertissements
> 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.
> Ces plugins ne sont pas tous testés de manière continue, certains peuvent ne pas fonctionner du tout. Si vous rencontrez un problème, veuillez en informer le propriétaire du plugin en question.

View File

@ -1,12 +1,12 @@
---
id: protect-your-dependencies
title: "Protecting packages"
title: "Protection des paquets"
---
`verdaccio` allows you protect publish, to achieve that you will need to set up correctly your [packages acces](packages).
`verdaccio` vous permet de protéger la publication. Pour ce faire, il est nécessaire de configurer correctement le [package acces](packages).
### Package configuration
### Configuration du paquet
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.
Voyons, par exemple, la configuration suivante. Vous avez une série de dépendances préfixées par `my-company - *` et vous devez les protéger contre les utilisateurs anonymes ou contre les autres utilisateurs connectés sans informations d'identification correctes.
```yaml
'my-company-*':
@ -15,18 +15,18 @@ Let's see for instance the following set up. You have a set of dependencies what
proxy: npmjs
```
With this configuration, basically we allow to groups **admin** and **teamA** to *publish* and **teamA** **teamB** **teamC** *access* to such dependencies.
Avec cette configuration, en principe, nous permettons aux groupes **admin** et **teamA** de *publier*, et **teamA** **teamB** **teamC** d'*accéder* à de telles dépendences.
### Use case: teamD try to access the dependency
### Cas d'utilisation: teamD tente d'accéder à la dépendance
So, if I am logged as **teamD**. I shouldn't be able to access all dependencies that match with `my-company-*` pattern.
Par conséquent, si je me connecte en tant que ** teamD **, je ne devrais pas pouvoir accéder à toutes les dépendances qui correspondent au modèle ` my-company - * `.
```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.
Je n'aurai pas accès à ces dépendances, aussi elles ne seront pas visibles sur le Web pour l'utilisateur **teamD**. Si j'essaie d'accéder, il arrivera ce qui suit.
```bash
➜ npm install my-company-core
@ -34,12 +34,12 @@ npm ERR! code E403
npm ERR! 403 Forbidden: webpack-1@latest
```
or with `yarn`
ou avec `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".
error Une erreur inattendue s'est produite: "http: // localhost: 5555 / webpack-1: les utilisateurs non enregistrés ne sont pas autorisés à accéder au paquet my-company-core".
```

View File

@ -1,7 +1,7 @@
---
id: source-code
title: "Source Code"
id: code source
title: "Code source"
---
`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).
Pour visualiser la liste complète des scripts, [cliquez ici](https://github.com/verdaccio/verdaccio/wiki/Repositories).

View File

@ -1,10 +1,10 @@
---
id: reverse-proxy
title: "Reverse Proxy Setup"
title: "Configuration du proxy inverse"
---
## Apache
Apache and mod_proxy should not decode/encode slashes and leave them as they are:
Apache et mod_proxy ne doivent pas décoder/encoder les barres obliques et doivent les laisser tels qu'elles sont:
<VirtualHost *:80>
AllowEncodedSlashes NoDecode
@ -13,7 +13,7 @@ Apache and mod_proxy should not decode/encode slashes and leave them as they are
</VirtualHost>
### Configuration with SSL
### Configuration avec SSL
config.yaml
@ -21,7 +21,7 @@ config.yaml
url_prefix: https://npm.your.domain.com
```
Apache virtual server configuration
Configuration du serveur virtuel Apache
apacheconfig
<IfModule mod_ssl.c>
@ -51,16 +51,16 @@ Apache virtual server configuration
}
## Run behind reverse proxy with different domain and port
## Commencer derrière le proxy inverse avec un domaine et un port différents
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`
Si vous exécutez verdaccio derrière le proxy inverse, vous remarqueriez que tous les fichiers de ressources fonctionnent comme des chemins associés, tels que `http://127.0.0.1:4873/-/static`
To resolve this issue, you should send real domain and port to verdaccio with `Host` header
Pour résoudre le problème, vous devez envoyer le domaine réel et le port avec l'en-tête `Host` à verdaccio
Nginx configure should look like this:
La configuration de Nginx devrait ressembler à ceci:
```nginx
location / {
ocation / {
proxy_pass http://127.0.0.1:4873/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
@ -68,11 +68,11 @@ location / {
}
```
For this case, `url_prefix` should NOT set in verdaccio config
Dans ce cas, `url_prefix` ne doit pas être défini dans la configuration de verdaccio
* * *
or a sub-directory installation:
ou dans l'installation d'un sous-dossier:
```nginx
location ~ ^/verdaccio/(.*)$ {
@ -83,6 +83,6 @@ location ~ ^/verdaccio/(.*)$ {
}
```
For this case, `url_prefix` should set to `/verdaccio/`
Dans ce cas, `url_prefix` doit être défini sur `/verdaccio/`
> Note: There is a Slash after install path (`https://your-domain:port/verdaccio/`)!
> Remarque: il y a une barre oblique après le chemin d'installation (`https://votre-domaine:port/verdaccio/`)!

View File

@ -1,56 +1,56 @@
---
id: server-configuration
title: "Server Configuration"
title: "Configuration du serveur"
---
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.
Il sagit principalement de la documentation de la configuration de base du serveur Linux, mais je pense quil est important de documenter et de partager les étapes que jai suivies pour démarrer définitivement Verdaccio sur mon serveur. Vous aurez besoin d'autorisations root (ou sudo) pour les opérations suivantes.
## Running as a separate user
## Gérer en tant qu'utilisateur distinct
First create the verdaccio user:
Premièrement créez lutilisateur verdaccio:
```bash
$ sudo adduser --disabled-login --gecos 'Verdaccio NPM mirror' verdaccio
```
You create a shell as the verdaccio user using the following command:
Vous créez un shell en tant qu'utilisateur verdaccio à l'aide de la commande suivante:
```bash
$ sudo su verdaccio
$ cd ~
```
The 'cd ~' command send 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.
La commande 'cd ~' envoie le répertoire personnel de l'utilisateur verdaccio. Veillez à exécuter verdaccio au moins une fois pour générer le fichier de configuration. Changez-le en fonction de vos besoins.
## Listening on all addresses
## À l'écoute de toutes les adresses
If you want to listen to every external address set the listen directive in the config to:
Si vous souhaitez écouter chaque adresse externe, définissez la directive d'écoute dans la configuration sur:
```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.
Si vous exécutez `verdaccio` dans une instance Amazon EC2, [ vous devrez définir le paramètre 'écouter' dans le fichier 'changer votre configuration'](https://github.com/verdaccio/verdaccio/issues/314#issuecomment-327852203) comme décrit ci-dessus.
> Apache configure? Please check out the [Reverse Proxy Setup](reverse-proxy.md)
> Avez-vous besoin de configurer Apache? Veuillez vérifier la [configuration inverse du proxy](reverse-proxy.md)
## Keeping verdaccio running forever
## Garder verdaccio en opération pour toujours
We can use the node package called 'forever' to keep verdaccio running all the time. https://github.com/nodejitsu/forever
Vous pouvez utiliser le paquet de nœud appelé 'forever' pour que le site verdaccio continue de fonctionner tout le temps. https://github.com/nodejitsu/forever
First install forever globally:
Premièrement installez forever entièrement:
```bash
$ sudo npm install -g forever
```
Make sure you've started 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:
Assurez-vous que vous avez démarré au moins une fois verdaccio pour générer le fichier de configuration et notez l'utilisateur administrateur créé. Ensuite, la commande suivante peut être utilisée pour lancer verdaccio:
```bash
$ forever start `which verdaccio`
```
You can check the documentation for more information on how to use forever.
Vous pouvez consulter la documentation pour plus d'informations sur l'utilisation forever.
## Surviving server restarts

View File

@ -109,15 +109,15 @@ All starts in the `index.js` file. Let's dive in into it.
### Usage
Here we are gonna describe how it looks like an usual functional test, check inline for more detail information.
Ici nous allons décrire à quoi devrait ressembler un test fonctionnel typique. Vérifiez inline pour plus d'informations détaillées.
#### The lib/server.js
The server class is just a wrapper that simulates a `npm` client and provides a simple API for the funtional test.
La classe de serveur est uniquement un wrapper qui simule un client `npm` et fournit une simple API pour les tests fonctionnels.
As we mention in the previous section, we are creating 3 process servers that are accessible in each process as `server1`, `server2` and ``server3`.
Comme nous l'avons mentionné dans la section précédente, nous créons 3 serveurs de processus accessibles dans chaque processus, tels que `serveur1`, `serveur2` et `` serveur3`.
Using such reference you will be able to send request to any of the 3 instance running.
En utilisant ces références, vous pourrez envoyer des requêtes à chacune des 3 instances en cours d'exécution.
```javascript
<br />export default function(server) {
@ -131,4 +131,4 @@ Using such reference you will be able to send request to any of the 3 instance r
### Test/integration
These section never has been used, but we are looking for help to make it run properly. **All new ideas are very welcome.**
Cette section n'a jamais été utilisée, mais nous recherchons de l'aide pour la faire fonctionner correctement. **Toute nouvelle idée est la bienvenue.**

View File

@ -2,11 +2,11 @@
id: uplinks
title: "Uplinks"
---
An *uplink* is a link with an external registry that provides acccess to external packages.
Un *uplink* est un lien avec un registre externe qui donne accès à des paquets externes.
![Uplinks](/img/uplinks.png)
### Usage
### Utilisation
```yaml
uplinks:
@ -23,14 +23,14 @@ uplinks:
### Configuration
You can define mutiple uplinks and each of them must have an unique name (key). They can have two properties:
Vous pouvez définir de mutiple uplinks et chacun deux doit avoir un nom unique (clé). Ils peuvent avoir deux propriétés:
| Property | Type | Required | Example | Support | Description | Default |
| ------------ | ------- | -------- | --------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- | ---------- |
| url | string | Yes | https://registry.npmjs.org/ | all | The registry url | npmjs |
| ca | string | No | ~./ssl/client.crt' | all | SSL path certificate | No default |
| timeout | string | No | 100ms | all | set new timeout for the request | 30s |
| maxage | string | No | 10m | all | limit maximun failure request | 2m |
| Propriété | Type | Obligatoire | Exemple | Soutien | Description | Par défaut |
| ------------ | -------------------- | ----------- | --------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- | -------------- |
| url | chaîne de caractères | Oui | https://registry.npmjs.org/ | tous | Lurl du registre | npmjs |
| ca | chaîne de caractères | Non | ~./ssl/client.crt' | tous | Certificat de chemin SSL | Pas par défaut |
| timeout | chaîne de caractères | Non | 100ms | tous | définir le nouveau délai dattente pour la demande | 30s |
| maxage | chaîne de caractères | Non | 10m | tous | limit maximun failure request | 2m |
| fail_timeout | string | No | 10m | all | defines max time when a request becomes a failure | 5m |
| max_fails | number | No | 2 | all | limit maximun failure request | 2 |
| cache | boolean | No | [true,false] | >= 2.1 | cache all remote tarballs in storage | true |
@ -64,7 +64,7 @@ uplinks:
`token_env: FOO_TOKEN`internally will use `process.env['FOO_TOKEN']`
or by directly specifying a token:
ou en spécifiant directement un jeton:
```yaml
uplinks:
@ -75,12 +75,12 @@ uplinks:
token: "token"
```
> Note: `token` has priority over `token_env`
> Remarque: `jeton` a la priorité sur `jeton_env`
### You Must know
### Vous devez savoir
* Verdaccio does not use Basic Authentication since version `v2.3.0`. All tokens generated by verdaccio are based on JWT ([JSON Web Token](https://jwt.io/))
* 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)
* Verdaccio n'utilise plus l'authentification de base à partir de la version `v2.3.0`. Tous les jetons générés par verdaccio sont basés sur JWT ([jeton Web JSON](https://jwt.io/))
* Les uplinks doivent être des registres compatibles avec les noeuds finaux `npm`. Par exemple: *verdaccio*, `sinopia@1.4.0`, *npmjs registry*, *yarn registry*, *JFrog*, *Nexus* et autre.
* En affectant false au paramètre `cache`, vous économiserez de l'espace sur le disque dur. Cela évitera de stocker les `tarballs`, mais [conservera les métadonnées dans les dossiers](https://github.com/verdaccio/verdaccio/issues/391).
* Le dépassement avec plusieurs uplinks peut ralentir la recherche de vos paquets car pour chaque demande transmise par un client npm, Verdaccio transmet à son tour un appel pour chaque uplink.
* Le format (timeout, maxage et fail_timeout) suit les [unités de mesure NGINX](http://nginx.org/en/docs/syntax.html)

View File

@ -1,24 +1,24 @@
---
id: use-cases
title: "Use Cases"
title: "Cas dutilisation"
---
## Using private packages
## Utilisation de paquets privés
You can add users and manage which users can access which packages.
Vous pouvez ajouter des utilisateurs et gérer quels utilisateurs peuvent accéder à quels paquets.
It is recommended that you define a prefix for your private packages, for example "local", so all your private things will look like this: `local-foo`. This way you can clearly separate public packages from private ones.
Il est conseillé de définir un préfixe pour les paquets privés, par exemple "local", afin que tous les éléments privés aient cet aspect: `local-foo`. De cette façon, vous pouvez clairement séparer les paquets publiques et privés.
## Using public packages from npmjs.org
## Utilisation des paquets publics à partir de 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 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.
Si un paquet n'existe pas dans l'archive, le serveur essaiera de le récupérer à partir de npmjs.org. Si npmjs.org ne fonctionne pas, il ne fournira les paquets mis en cache que s'il n'y avait pas d'autres paquets. Verdaccio ne téléchargera que ce qui est requis (= requis par les clients), et ces informations seront mises en cache. Ainsi, si le client demande la même chose une seconde fois, il peut être servi sans avoir à demander à npmjs.org.
Example: if you successfully request express@3.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@3.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@3.0.1 (= only what's in the cache) is published, but nothing else.
Exemple: si vous effectuez avec succès une requête express@3.0.1 une fois sur ce serveur, vous pouvez le faire à nouveau (avec toutes ses dépendances) à tout moment, même si npmjs.org ne fonctionne pas. Mais disons qu'express@3.0.0 ne sera pas téléchargé avant que ce soit réellement nécessaire pour quelqu'un. Et si npmjs.org était hors ligne, ce serveur indiquerait que seule la valeur express@3.0.1 (= uniquement ce qui est dans le cache) sera publiée, mais rien d'autre.
## Override public packages
## Annuler les paquets publiques
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.
Si vous souhaitez utiliser une version modifiée d'un paquet public`foo`, vous ne pouvez le publier que sur votre serveur local. Par conséquent, si vous écrivez `npm install foo`, cette version sera installée.
There's two options here:
Il y a deux options ici:
1. You want to create a separate fork and stop synchronizing with public version.

View File

@ -1,17 +1,16 @@
---
id: autentifikacija
title: "Autentifikacija"
---
Autentifikacija je vezana za auth [plugin](plugins.md) koji koristite. Ograničenja paketa su definisana preko [Package Access](packages.md).
Autentifikacija klijenta vrši sam klijent putem `npm`. Nakon prijave na alikaciju:
Autentifikaciju klijenta vrši sam `npm` klijent. Nakon prijave na alikaciju:
```bash
npm adduser --registry http://localhost:4873
```
Token se generiše u fajlu za konfiguraciju `npm`, koji se nalazi u home folder-u korisnika. Kako biste saznali više o `.npmrc` pročitajte [, zvaničnu dokumentaciju](https://docs.npmjs.com/files/npmrc).
Token se generiše u fajlu za konfiguraciju `npm`, koji se nalazi u home folder-u korisnika. Kako biste saznali više o `.npmrc` pročitajte [zvaničnu dokumentaciju](https://docs.npmjs.com/files/npmrc).
```bash
cat .npmrc
@ -22,7 +21,7 @@ registry=http://localhost:5555/
#### Anonimno publikovanje
`verdaccio`Vam omogućava da pružite mogućnost anonimnog publikovanja. Kako biste uspeli u tome, potrebno je da podesite [packages access](packages.md).
`verdaccio` Vam omogućava da pružite mogućnost anonimnog publikovanja. Kako biste uspeli u tome, potrebno je da podesite [packages access](packages.md).
Primer:
@ -37,7 +36,7 @@ Kao što je opisano, [on issue #212](https://github.com/verdaccio/verdaccio/issu
## Podrazumevana htpasswd
Kako bi se pojednostavio setup, `verdaccio` koristi plugin baziran na `htpasswd`. Od verzije v3.0.x an [eksterni plugin](https://github.com/verdaccio/verdaccio-htpasswd) se koristi kao podrazumevan. Verzija v2.x i dalje sadrži ugrađenu verziju ovog plugin-a.
Kako bi se pojednostavio setup, `verdaccio` koristi plugin baziran na `htpasswd`. Od verzije v3.0.x [eksterni plugin](https://github.com/verdaccio/verdaccio-htpasswd) se koristi kao podrazumevan. Verzija v2.x i dalje sadrži ugrađenu verziju ovog plugin-a.
```yaml
auth:
@ -48,9 +47,9 @@ auth:
#max_users: 1000
```
| Svojstvo | Tip | Potrebno | Primer | Podrška | Opis |
| --------- | ------ | -------- | ---------- | ------- | -------------------------------------- |
| file | string | Da | ./htpasswd | potpuna | file koji sadrži šivrovane credentials |
| max_users | broj | Ne | 1000 | potpuna | podešava maksimalni broj korisnika |
| Svojstvo | Tip | Neophodno | Primer | Podrška | Opis |
| --------- | ------ | --------- | ---------- | ------- | -------------------------------------- |
| file | string | Da | ./htpasswd | all | file koji sadrži šivrovane credentials |
| max_users | number | Ne | 1000 | all | podešava maksimalni broj korisnika |
Ako se odlučite na to da ne dozvolite korisnicima da se prijave, možete podesiti `max_users: -1`.

View File

@ -9,6 +9,6 @@ Za dalje informacije:
* <https://github.com/verdaccio/verdaccio-cookbook>
* <https://supermarket.chef.io/cookbooks/verdaccio>
> Tražimo saradnike za ovaj repozitorijum, ako ste zainteresovani, molimo Vas da se javite autoru preko tickets-a.
> Tražimo saradnike za ovaj repozitorijum, pa ako ste zainteresovani, molimo Vas da se javite autoru preko tickets-a.
Autori: [Keli Grubb](https://github.com/kgrubb) && Barthelemy Vessemont.

View File

@ -5,5 +5,5 @@ title: "Continuous Integration"
Možete koristiti verdaccio sa continuous integration dok vršite login ili publikovanje. Kada po prvi put koristite NPM kako biste instalirali private module u continuous integration okruženje, udarićete glavom u zid. Komanda za NPM login je dizajnirana tako da se koristi na interaktivan način. To pravi probleme u CI, scripts, i čemu sve ne. Evo kako bi trebalo da koristite NPM login za različite continuous integration platforme.
- [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/) or [Circle CI 2.0](https://circleci.com/docs/2.0/deployment-integrations/#npm)
- [Circle CI 1.0](https://circleci.com/docs/1.0/npm-login/) ili [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/)

View File

@ -2,7 +2,7 @@
id: cli
title: "Command Line Tool"
---
Verdaccio CLI je Vaša pošetna stanica za pokretanje aplikacije.
Verdaccio CLI je Vaša početna stanica za pokretanje aplikacije.
## Komande

View File

@ -1,14 +1,14 @@
---
id: configuration
title: "Configuration File"
id: konfigurisanje
title: "Fajl za konfigurisanje"
---
This file is the cornerstone of verdaccio where you can modify the default behaviour, enable plugins and extend features.
Ovaj fajl je osnova verdaccio-a. U okviru njega, možete vršiti izmene zadatih podešavanja, možete aktivirati plugin-e i spoljašnje resurse (features).
A default configuration file is created the very first time you run `verdaccio`.
Fajl "default configuration file" se kreira prilikom prvog pokretanja `verdaccio-a`.
## Default Configuration
## Podrazumevane postavke (Default Configuration)
The default configuration has support for **scoped** packages and allow any user to access all packages but only **authenticated users to publish**.
Podrazumevane postavke podržavaju **scoped** pakete za sve korisnike, ali samo **autorizovanim korisnicima omogućavaju da publikuju**.
```yaml
storage: ./storage
@ -29,13 +29,13 @@ logs:
- {type: stdout, format: pretty, level: http}
```
## Sections
## Sekcije
The following sections explain what each property means and the different options.
Sekcija u nastavku daje objašnjenja za svako svojstvo i opciju.
### Storage
### Memorija za skladištenje
Is the location of the default storage. **Verdaccio is by default based on local file system**.
Je lokacija na kojoj se vrši skladištenje podataka. **Verdaccio je inicijalno podešen kao local file system**.
```yaml
storage: ./storage
@ -43,15 +43,15 @@ storage: ./storage
### Plugins
Is the location of the plugin directory. Useful for Docker/Kubernetes based deployments.
Je lokacija plugin directorijuma. Ovo je korisno za deployment baiziran na Docker/Kubernetes.
```yaml
plugins: ./plugins
```
### Authentification
### Autentifikacija
The authentification set up is done here, the default auth is based on `htpasswd` and is built-in. You can modify this behaviour via [plugins](plugins.md). For more information about this section read the [auth page](auth.md).
Ovde se vrši podešavanje (set up). Podrazumevana auth je bazirana na `htpasswd` i već je ugrađena. Možete izvršiti modifikacije načina rada (behaviour) putem [plugin-a](plugins.md). Za više informacija o ovoj sekciji pročitajte [auth stranu](auth.md).
```yaml
auth:
@ -60,9 +60,9 @@ auth:
max_users: 1000
```
### Web UI
### Web UI (korisnički interfejs)
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).
Ovo svojstvo Vam omogućava da steknete uvid u web UI. Za više informacija o ovoj sekciji, pročitajte [web ui stranicu](web.md).
```yaml
web:
@ -74,7 +74,7 @@ web:
### 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).
Uplinks pružaju mogućnost sistemu da hvata (fetch) pakete iz udaljenih registrija ako ti paketi nisu lokalno dostupni. Za više informacija o ovoj sekciji pročitajte na [uplinks stranici](uplinks.md).
```yaml
uplinks:
@ -82,9 +82,9 @@ uplinks:
url: https://registry.npmjs.org/
```
### Packages
### Paketi
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).
Paketi (packages) daju mogućnost korisnicima da kontrolišu kako će se pristupati paketima. Za više detalja o ovoj sekciji, pročitajte [packages stranicu](packages.md).
```yaml
packages:
@ -94,11 +94,11 @@ packages:
proxy: npmjs
```
## Advanced Settings
## Napredna podešavanja
### Offline Publish
### Publikovanje offline
By default `verdaccio` does not allow to publish when the client is offline, that behavior can be overridden by setting this to *true*.
Prema zadatim podešavanjima, `verdaccio` ne dozvoljava publikovanje onda kada je klijent offline. Takav način rada (behavior), može da se promeni ako se ovo iz primera podesi na *true*.
```yaml
publish:
@ -115,9 +115,9 @@ url_prefix: https://dev.company.local/verdaccio/
Since: `verdaccio@2.3.6` due [#197](https://github.com/verdaccio/verdaccio/pull/197)
### Max Body Size
### Maksimalna veličina body sekcije dokumenta
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.
Prema zadatim podešavanjima, maksimalna veličina za body JSON dokumenta je `10mb`. Ako dobijete grešku `"request entity too large"` mogli biste da povećate ovu vrednost.
```yaml
max_body_size: 10mb
@ -125,21 +125,21 @@ 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.
`verdaccio` prema "fabričkim podešavanjima" radi na portu `4873`. Izmena porta se može obaviti preko [cli](cli.md) ili direktno u fajlu za konfigurisanje pri čemu su sledeće opcije validne:
```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
# - localhost:4873 # podrazumevano
# - http://localhost:4873 # apsolutno isto
# - 0.0.0.0:4873 # listen na svim adresama (INADDR_ANY)
# - https://example.org:4873 # ako želite da koristite 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).
Kako biste omogućili `https` u`verdaccio` dovoljno je da podesite `listen` flag sa protokolom *https://*. Više detalja možete naći na [ssl stranici](ssl.md).
```yaml
https:
@ -150,11 +150,11 @@ https:
### Proxy
Proxies are special-purpose HTTP servers designed to transfer data from remote servers to local clients.
Proxies su HTTP serveri posebne namene dizajnirani da prenose podatke od udaljenih servera do lokalnih klijenata.
#### http_proxy and https_proxy
#### http_proxy i https_proxy
If you have a proxy in your network you can set a `X-Forwarded-For` header using the following properties.
Ako imate proxy u svojoj mreži, možete podesiti `X-Forwarded-For` header koristeći sledeće unose za svojstva (properties).
```yaml
http_proxy: http://something.local/
@ -163,15 +163,15 @@ https_proxy: https://something.local/
#### no_proxy
This variable should contain a comma-separated list of domain extensions proxy should not be used for.
Ova varijabla bi trebalo da sadrži comma-separated listu ekstenzija domena za koju proxy ne bi trebalo da se koristi.
```yaml
no_proxy: localhost,127.0.0.1
```
### Notifications
### Notifikacije
Enabling notifications to third-party tools is fairly easy via web hooks. For more information about this section read the [notifications page](notifications.md).
Dozvoljavanje notifikacija za alate napravljene od strane trećih lica je relativno jednostavno uz pomoć web hooks. Za više informacija o ovoj temi, pročitajte [notifications stranicu](notifications.md).
```yaml
notify:
@ -181,15 +181,15 @@ notify:
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).
> Za detaljnije opcije podešavanja, molimo Vas da [pogledate source code](https://github.com/verdaccio/verdaccio/tree/master/conf).
### Audit
### Audit (revizija)
<small>Since: <code>verdaccio@3.0.0</code></small>
<small>Počevši od: <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.
`npm audit` je nova komanda koja je uvedena u [npm 6.x](https://github.com/npm/npm/releases/tag/v6.1.0). Verdaccio, a koja uključuje ugrađeni middleware plugin bez koga je nemoguće izvršiti datu komandu.
> If you have a new installation it comes by default, otherwise you need to add the following props to your config file
> Ako imate novu instalaciju, sve je već uključeno u okviru nje. U suprotnom, treba da dodate navedene props u Vaš config fajl
```yaml
middlewares:

View File

@ -1,80 +1,80 @@
---
id: contributing
title: "Contributing Verdaccio"
id: doprinošenje
title: "Doprinošenje Verdaccio-u"
---
First of all Jumping into an unfamiliar code base is not easy but we are here to help you.
First of all Plivanje u vodama nepoznatog koda nije lako, ali, mi smo tu da Vam pomognemo.
## Comunication Channels
## Kanali za komunikaciju
If you are willing for asking, we use two channels for discussions:
Ako ste voljni da pitate, na raspolaganju su dva kanala za diskusiju:
* [Public Discord channel](http://chat.verdaccio.org/)
* [Javni Discord kanal](http://chat.verdaccio.org/)
## Getting started
## Hajde da počnemo
As a first glance verdaccio is a single repository, but there are many ways you might contribute and a variety of technologies to practice.
Na prvi pogled, verdaccio je jedinstveni repozitorijum, ali u praksi postoje mnogi načini da doprinesete razvoju i upotrebite tehnologiju.
### Finding my spot
### Nađite svoje mesto pod suncem
All we have different skills, so, let's see where you might feel comfortable.
Svi mi posedujemo različite veštine, hajde da otkrijemo gde je kome udobno.
### I know or I want to learn Node.js
### Znam ili želim da naučim Node.js
Node.js is the base of `verdaccio`, we use libraries as `express`, `commander`, `request` or `async`. Verdaccio is basically a Rest API that create a communication with `npm` clients compatible, as `yarn`.
Node.js je osnova `verdaccio`. Koristimo biblioteke kao na primer `express`, `commander`, `request` ili `async`. Verdaccio je praktično Rest API koji uspostavlja komunikaciju sa `npm` klijent-kompatibilnim, kao što je `yarn`.
We have a long [list of plugins](plugins.md) ready to be used and improved but at the same time [you might create your own](dev-plugins.md).
Imamo dugačku [listu plugina](plugins.md) spremnu da se koristi i istovremeno unapređuje, a ko zna, [možda se odlučite da napravite i svoj Plugin](dev-plugins.md).
### I would prefer to work in the User Interface
### Voleo bih kada bih mogao da radim u User Interface-u
Recently we have moved to modern techonologies as `React` and `element-react`. We are looking forward to see new ideas how to improve the UI.
Nedavno smo se prebacili na korišćenje modernih tehnologija kao što su `React` i `element-react`. Uzbuđeni smo zbog novih ideja i razmišljanja kako da unapredimo UI.
### I feel more confortable improving the stack
### Više mi prija da unapređujem Stack
Of course, we will be happy to help us improving the stack, you can upgrade dependencies as `eslint`, `stylelint`, `webpack`. You might merely improve the `webpack` configuration would be great. Any suggestion is very welcome. Furthermore whether you have experience with **Yeoman** you might help us with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin).
Naravno da možete i bili bismo jako srećni ako biste učestvovali u unapređivanju stack-a. Mogli biste na primer da poboljšate dependencies kao na primer `eslint`, `stylelint`, `webpack`. Čak i ako biste mogli samo malo da poboljšate `webpack` konfiguraciju, to bi bilo sjajno. Svaka sugestija je dobrodošla. Osim toga, ako imate iskustva sa **Yeoman-om** mogli biste da nam pomognete sa [verdaccio generatorom](https://github.com/verdaccio/generator-verdaccio-plugin).
Here some ideas:
Evo nekih od ideja:
* Create a common eslint rules to be used across all dependencies or plugins
* Improve Flow types definitions delivery
* Moving to Webpack 4
* Improve hot reload with Webpack
* We use babel and webpack across all dependencies, why not a common preset?
* Improve continous integration delivery
* Kreirajte common eslint rules koja će se koristiti u svim dependencies ili pluginima
* Unapredite Flow types definitions delivery
* Kako preći na Webpack 4
* Unapredite hot reload sa Webpack-om
* Pošto koristimo babel i webpack u svim dependencies, zašto ne bismo imali zajednički preset?
* Unapredite continous integration delivery
### I do great Documentation
### Sjajan sam u sređivanju Dokumentacije
Many contributors find typos and grammar issues, that also helps to improve the overall experience for troubleshooting.
Mnogi saradnici imaju dar za pronalaženje grešaka u kucanju i gramatičkih grešaka, a to je jako važno jer podiže iskustvo korišćenja na novi nivo.
### I am a Designer
### Ja sam Dizajner
We have a frontend website <http://www.verdaccio.org/> that will be happy to see your ideas.
Frontend našeg website <http://www.verdaccio.org/> bi bio jako srećan da vidi u usvoji neku od Vaših ideja.
Our website is based on [Docusaurus](https://docusaurus.io/).
Inače, naš sajt je baziran na [Docusaurus](https://docusaurus.io/).
### I am a DevOps
### Ja sam DevOps
We have a widely popular Docker image <https://hub.docker.com/r/verdaccio/verdaccio/> that need maintenance and pretty likely huge improvements, we need your knowledge for the benefits of all users.
Imamo veoma popularan Docker image <https://hub.docker.com/r/verdaccio/verdaccio/> kome je potrebno održavanje i prilično velika unapređenja. Trebamo Vaše znanje, stavljeno u službu svih korisnika.
We have support for **Kubernetes**, **Puppet**, **Ansible** and **Chef** and we need help in those fields, feel free to see all repositories.
Imamo podršku za **Kubernetes**, **Puppet**, **Ansible** i **Chef**. Potrebna nam je pomoć za sve to, tako da, slobodno bacite pogled na sve navedene repozitorijume.
### I can do translations
### Mogao bih da radim Prevođenje
Verdaccio aims to be multilingual, in order to achieve it **we have the awesome support** of [Crowdin](https://crowdin.com) that is an amazing platform for translations.
Verdaccio stremi ka tome da bude dostupan na što više jezika. Kako bismo to postigli, **imamo apsolutno sjajnu podršku** preko [Crowdin-a](https://crowdin.com), neverovatno dobre platforme za prevođenje.
<img src="https://d3n8a8pro7vhmx.cloudfront.net/uridu/pages/144/attachments/original/1485948891/Crowdin.png" width="400px" />
We have setup a project where you can choose your favourite language, if you do not find your language feel free to request one [creating a ticket](https://github.com/verdaccio/verdaccio/issues/new).
Postavili smo projekt tako da možete da odaberete svoj omiljeni jezik, a ako ga ne pronađete na listi, slobodno zatažite da ga dodamo tako što ćete nam [poslati poruku (ticket)](https://github.com/verdaccio/verdaccio/issues/new).
[Go to Crowdin Verdaccio](https://crowdin.com/project/verdaccio)
[Pravac na Crowdin Verdaccio](https://crowdin.com/project/verdaccio)
## I'm ready to contribute
## Spreman sam da dam svoj doprinos
If you are thinking *"I've seen already the [repositories](repositories.md) and I'm willing to start right away"* then I have good news for you, that's the next step.
Ako Vam razmišljanje ide u smeru *"Već sam video [repozitorijume](repositories.md) i spreman sam da odmah započnem posao"* imamo dobru vest za Vas, jer to je sledeći korak.
You will need learn how to build, [we have prepared a guide just for that](build.md).
Naučićete sve što je potrebno za rad jer [smo spremili uputstvo namenjeno upravo tome](build.md).
Once you have played around with all scripts and you know how to use them, we are ready to go to the next step, run the [**Unit Test**](test.md).
Jednom kada isprobate sve moguće skripte i naučite kako da ih koristite, spremni ste da načinite sledeći korak, [**run Unit Test**](test.md).
## Full list of contributors. We want to see your face here !
## Lista svih saradnika. Voleli bismo da i Vas vidimo ovde !
<a href="graphs/contributors"><img src="https://opencollective.com/verdaccio/contributors.svg?width=890&button=false" /></a>

View File

@ -2,17 +2,17 @@
id: dev-plugins
title: "Developing Plugins"
---
There are many ways to extend `verdaccio`, the kind of plugins supported are:
Ima mnogo načina da proširite `verdaccio`, tipovi podržanih plugin-a su:
* Authentication plugins
* Middleware plugins (since `v2.7.0`)
* Storage plugins since (`v3.x`)
* Middleware plugins (od verzije `v2.7.0`)
* Storage plugins od verzije (`v3.x`)
> We recommend developing plugins using our [flow type definitions](https://github.com/verdaccio/flow-types).
> Preporučujemo developing plugins koji koriste naše [flow type definicije](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`).
U suštini treba da vratimo objekt korišćenjem metode zvane `authenticate` koja prima 3 argumenta (`user, password, callback`).
### API
@ -26,15 +26,15 @@ interface IPluginAuth extends IPlugin {
}
```
> Only `adduser`, `allow_access` and `allow_publish` are optional, verdaccio provide a fallback in all those cases.
> Jedini opcioni su `adduser`, `allow_access` i `allow_publish` i verdaccio omogućava fallback u svim navedenim slučajevima.
#### Callback
Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
Jednom kada se autentifikacija izvrši, na raspolaganju su 2 opcije koje daju odgovor `verdaccio-u`.
###### OnError
Either something bad happened or auth was unsuccessful.
Ili se nešto loše dogodilo ili auth nije bila uspešna.
```flow
callback(null, false)
@ -42,14 +42,14 @@ callback(null, false)
###### OnSuccess
The auth was successful.
Auth je uspešno objavljena.
`groups` is an array of strings where the user is part of.
`groups` čini niz stringova u koji spada korisnik.
callback(null, groups);
### Example
### Primer
```javascript
function Auth(config, stuff) {
@ -82,7 +82,7 @@ Auth.prototype.authenticate = function (user, password, callback) {
module.exports = Auth;
```
And the configuration will looks like:
I na kraju, konfiguracija izgleda ovako:
```yaml
auth:
@ -90,11 +90,11 @@ auth:
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.
Pri čemu je `htpasswd` sufiks za ime plugina. Primer: `verdaccio-htpasswd` i ostatak body-ja sadržaće parametre za konfigurisanje plugin-a.
## Middleware Plugin
Middleware plugins have the capability to modify the API layer, either adding new endpoints or intercepting requests.
Middleware plugins imaju moć da modifikuju API layer, bilo dodavanjem novih endpoints ili intercepting zahteva.
```flow
interface verdaccio$IPluginMiddleware extends verdaccio$IPlugin {
@ -104,9 +104,9 @@ interface verdaccio$IPluginMiddleware extends verdaccio$IPlugin {
### 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.
Metod omogućava potpuni pristup do authentification i storage preko `auth` i `storage`. `app` je express aplikacija koja Vam omogućava da dodajete nove 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).
> Prilično dobri primeri za middleware plugin su [sinopia-github-oauth](https://github.com/soundtrackyourbrand/sinopia-github-oauth) i [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit).
### API
@ -116,15 +116,15 @@ function register_middlewares(expressApp, authInstance, storageInstance) {
}
```
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.
Kako bismo registrovali middleware, potreban nam je objekat sa jedinstvenim metodom zvanim `register_middlewares` koji će primiti 3 argumenta (`expressApp, auth, storage`). *Auth* je instanca za autentifikaciju, a *storage* je takođe glavna instanca za Storage koja će Vam dati pristup svim akcijama koje se odnose na storage.
## Storage Plugin
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.
Verdaccio po fabričkim podešavanjima koristi file system storage plugin [local-storage](https://github.com/verdaccio/local-storage), ali, počevši od verzije `verdaccio@3.x` možete ubaciti custom storage plugin i tako zameniti postojeći način izvršavanja (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.
Za storage API, stvari su nešto komplikovanije, pošto ćete morati da kreirate klasu koja vraća `IPluginStorage` implementaciju. Ispod imate detaljno objašnjenje.
```flow
class LocalDatabase<IPluginStorage>{
@ -174,15 +174,15 @@ class verdaccio$IReadTarball extends stream$PassThrough {
}
```
> 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 API je i dalje u eksperimentalnoj fazi i moguće je da će pretrpeti neke izmene u narednim verzijama. Za više informacija o Storage API molimo Vas da pratite [types definicije u našem zvaničnom repozitorijumu](https://github.com/verdaccio/flow-types).
### Storage Plugins Examples
### Primeri za Storage Plugins
The following list of plugins are implementing the Storage API and might be used them as example.
Navedena lista plugina implementuje Storage API i možete ih koristiti kao primere.
* [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)
> Da li ste voljni da date doprinos razvoju novih Storage Plugins? [Kliknite ovde.](https://github.com/verdaccio/verdaccio/issues/103#issuecomment-357478295)

View File

@ -6,7 +6,7 @@ title: Docker
![alt Docker Pulls Count](http://dockeri.co/image/verdaccio/verdaccio "Docker Pulls Count")
</div>
To pull the latest pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
Kako biste povukli (pull) najnoviji pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
```bash
docker pull verdaccio/verdaccio
@ -16,47 +16,47 @@ docker pull verdaccio/verdaccio
## Tagged Versions
Since version `v2.x` you can pull docker images by [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), as follows:
Počevši od verzije `v2.x` možete povući docker images preko [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), i onda:
For a major version:
Za glavne verzije:
```bash
docker pull verdaccio/verdaccio:3
```
For a minor version:
Za podverzije:
```bash
docker pull verdaccio/verdaccio:3.0
```
For a specific (patch) version:
Za specifičnu verziju (patch):
```bash
docker pull verdaccio/verdaccio:3.0.1
```
For the next major release using the `beta` (master branch) version.
Za sledeću glavnu verziju `beta` (master branch) verziju.
```bash
docker pull verdaccio/verdaccio:beta
```
> If you are interested on a list of tags, [please visit the Docker Hub website](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
> Ako Vas zanima lista tagova, [posetite Docker Hub website](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
## Running verdaccio using Docker
## Pokretanje verdaccio korišćenjem Docker-a
To run the docker container:
Kako biste pokrenuli 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.
Poslednji argument definiše koji image će se koristiti. Linija iznad povlači najnoviji prebuilt image sa dockerhub-a, ako to već niste uradili.
If you have [build an image locally](#build-your-own-docker-image) use `verdaccio` as the last argument.
Ako imate [build an image locally](#build-your-own-docker-image) koristite `verdaccio` kao poslednji argument.
You can use `-v` to bind mount `conf`, `storage` and `plugins` to the hosts filesystem:
Možete koristiti `-v` kako biste vezali (bind) mount `conf`, `storage` i `plugins` za hosts filesystem:
```bash
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio -p 4873:4873 \
@ -66,21 +66,21 @@ V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio -p 4873:4873 \
verdaccio/verdaccio
```
> Note: Verdaccio runs as a non-root user (uid=100, gid=101) 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 100:101 /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.
> Napomena: Verdaccio radi kao non-root user (uid=100, gid=101) unutar container-a. Ako koristite bind mount da pregazite zadate postavke (override), onda morate da dodelite mount directory pravom korisniku. U navedenom primeru, morate da pokrenete `sudo chown -R 100:101 /opt/verdaccio`, u suprotnom ćete dobiti permission errors u runtime. [Use docker volume](https://docs.docker.com/storage/volumes/) je preporučeno umesto korišćenja bind mount.
### 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.
Plugins se mogu instalirati u posebnom direktorijumu i mountovati korišćenjem Docker-a ili Kubernetes. Ipak, postarajte se da "build" plugins sa native dependencies korišćenjem iste base image kao Verdaccio Dockerfile-a.
### Docker and custom port configuration
### Docker i custom port konfiguracija
Any `host:port` configured in `conf/config.yaml` under `listen` is currently ignored when using docker.
Svaki `host:port` konfigurisan u `conf/config.yaml` pod `listen` se trenutno ignoriše dok se koristi docker.
If you want to reach verdaccio docker instance under different port, lets say `5000` in your `docker run` command replace `-p 4873:4873` with `-p 5000:4873`.
Ako želite da pristupite verdaccio docker instanci pod različitim port-om, recimo `5000`, u Vašoj `docker run` komandi zamenite `-p 4873:4873` sa `-p 5000:4873`.
In case you need to specify which port to listen to **in the docker container**, since version 2.?.? you can do so by providing additional arguments to `docker run`: `--env PORT=5000` This changes which port the docker container exposes and the port verdaccio listens to.
U slučaju da morate da odredite port to listen to **u docker kontejneru**, počevši od verzije 2.?.? to možete učiniti tako što ćete uneti dodatne argumente u `docker run`: `--env PORT=5000` Ovo menja port koji izlaže docker kontejner i port koji će verdaccio slušati (listens to).
Of course the numbers you give to `-p` paremeter need to match, so assuming you want them to all be the same this is what you could copy, paste and adopt:
Naravno, neophodno je da se brojevi koje ste zadali kao `-p` parametar podudaraju, tako da ako želite da se sve podudara, možete da kopirate, zalepite i usvojite:
```bash
PORT=5000; docker run -it --rm --name verdaccio \
@ -88,9 +88,9 @@ PORT=5000; docker run -it --rm --name verdaccio \
verdaccio/verdaccio
```
### Using HTTPS with Docker
### Korišćenje HTTPS sa Docker-om
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.
Možete konfigurisati protokol koji će verdaccio slušati (listen on) i to na sličan način kao što ste podesili port configuration. Potrebno je da zamenite zadatu vrednost("http") u `PROTOCOL` environment variabl-i sa "https",nakon što ste odredili sertifikate u config.yaml.
```bash
PROTOCOL=https; docker run -it --rm --name verdaccio \
@ -98,18 +98,18 @@ PROTOCOL=https; docker run -it --rm --name verdaccio \
verdaccio/verdaccio
```
### Using docker-compose
### Korišćenje docker-compose
1. Get the latest version of [docker-compose](https://github.com/docker/compose).
2. Build and run the container:
1. Nabavite poslednju verziju [docker-compose](https://github.com/docker/compose).
2. Build i pokrenite kontejner:
```bash
$ docker-compose up --build
```
You can set the port to use (for both container and host) by prefixing the above command with `PORT=5000`.
Možete podesiti port koji će se upotrebljavati (i za kontejner i za host) tako što ćete dodati prefiks `PORT=5000` komandi iz gornjeg primera.
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:
Docker će napraviti imenovani volume u kome će se čuvati podaci za aplikaciju. Možete koristiti `docker inspect` ili `docker volume inspect` kako biste otkrili fiizičku lokaciju volume-a i izmenili konfiguraciju, na primer:
$ docker volume inspect verdaccio_verdaccio
[
@ -124,31 +124,31 @@ Docker will generate a named volume in which to store persistent application dat
## Build your own Docker image
## Napravite svoj sopstveni Docker image
```bash
docker build -t verdaccio .
```
There is also an npm script for building the docker image, so you can also do:
Postoji takođe i npm script za building docker image-a, tako da možete da zadate i ovako:
```bash
npm 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`.
Napomena: Prvi build može potrajati nekoliko minuta pošto mora da pokrene `npm install`, i ponovo će trajati dugo ako promenite bilo koji fajl koji nije izlistan u `.dockerignore`.
If you want to use the docker image on a rpi or a compatible device there is also a dockerfile available. To build the docker image for raspberry pi execute:
Ako želite da koristite docker image na rpi ili kompatibilnom uređaju, postoji dostupan dockerfile. Kako biste build docker image za raspberry pi izvršite sledeću komandu:
```bash
npm run build:docker:rpi
```
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`.
Primite k znanju da za svaku docker komandu morate imati na svojoj mašini instaliran docker zajedno sa docker executable koja mora biti dostuna na `$PATH`.
## Docker Examples
## Docker Primeri
There is a separate repository that hosts multiple configurations to compose Docker images with `verdaccio`, for instance, as reverse proxy:
Postoji zaseban repozitorijum koji hostuje multiple konfiguracije kako bi komponovao Docker images sa `verdaccio`, na primer, reverse proxy:
<https://github.com/verdaccio/docker-examples>
@ -156,11 +156,11 @@ There is a separate repository that hosts multiple configurations to compose Doc
* [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-s3](https://github.com/asynchrony/docker-verdaccio-s3) Privatni NPM container koji se može backup-ovati na 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.
* [coldrye-debian-verdaccio](https://github.com/coldrye-docker/coldrye-debian-verdaccio) docker image omogućava verdaccio iz coldrye-debian-nodejs.

View File

@ -1,31 +1,31 @@
---
id: iss-server
title: "Installing on IIS server"
title: "Instaliranje na IIS server"
---
These instructions were written for Windows Server 2012, IIS 8, [Node.js 0.12.3](https://nodejs.org/), [iisnode 0.2.16](https://github.com/tjanczuk/iisnode) and [verdaccio 2.1.0](https://github.com/verdaccio/verdaccio).
Navedene instrukcije su pisane za Windows Server 2012, IIS 8, [Node.js 0.12.3](https://nodejs.org/), [iisnode 0.2.16](https://github.com/tjanczuk/iisnode) i [verdaccio 2.1.0](https://github.com/verdaccio/verdaccio).
- Install IIS Install [iisnode](https://github.com/tjanczuk/iisnode). Make sure you install prerequisites (Url Rewrite Module & node) as explained in the instructions for iisnode.
- Create a new folder in Explorer where you want to host verdaccio. For example `C:\verdaccio`. Save [package.json](#packagejson), [start.js](#startjs) and [web.config](#webconfig) in this folder.
- Create a new site in Internet Information Services Manager. You can name it whatever you want. I'll call it verdaccio in these [instructions](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Specify the path to where you saved all files and a port number.
- Go back to Explorer and give the user that runs the application pool modify rights to the folder you just created. If you've named the new site verdaccio and did not change the app pool, it's running under an ApplicationPoolIdentity and you should give the user IIS AppPool\verdaccio modify rights see instructions if you need help. (You can restrict access later if you want so that it only has modify rights on the iisnode and verdaccio\storage)
- Start a command prompt and execute the commands below to download verdaccio:
- Install IIS Install [iisnode](https://github.com/tjanczuk/iisnode). Postarajte se da ste instalirali (Url Rewrite Module & node) kao što je objašnjeno u uputstvima za iisnode.
- Napravite novi folder u Explorer-u, koji će biti host za verdaccio. Na primer `C:\verdaccio`. Usnimite [package.json](#packagejson), [start.js](#startjs) i [web.config](#webconfig) u ovaj folder.
- Napravite novi sajt u Internet Information Services Manager. Možete ga nazvati kako Vam je volja. Zvaćemo ga verdaccio u ovim [instrukcijama](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Odredite path gde ćete snimiti sve fajlove i broj porta.
- Vratite se u Explorer i u okviru foldera koji ste upravo kreirali dodelite prava korisniku koji pokreće application pool. Ako ste imenovali novi sajt kao verdaccio i niste promenili app pool, on radi pod ApplicationPoolIdentity i trebalo bi da dodelite prava korisniku, IIS AppPool\verdaccio modify rights, pogledajte instrukcije ako Vam je potrebna pomoć. (Kasnije ako poželite, možete ograničiti pristup, tako da prava ostaju promenjena samo za iisnode i verdaccio\storage)
- Pokrenite command prompt i izvršite komande navedene ispod kako biste preuzeli 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
- Postarajte se da imate dobro podešeno pravilo za prihvatanje TCP saobraćaja na port, u Windows Firewall
- I to je to! Sada možete da navigate do host-a i porta koje ste odredili
I wanted the `verdaccio` site to be the default site in IIS so I did the following:
Želeo sam da `verdaccio` sajt bude podrazumevani sajt u IIS i zato sam uradio sledeće:
- I made sure the .npmrc file in `c:\users{yourname}` had the registry set to `"registry=http://localhost/"`
- 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
- Postarao sam se da .npmrc file u `c:\users{yourname}` ima registry podešen na `"registry=http://localhost/"`
- Stopirao sam "Default Web Site" i pokrenuo jedino "verdaccio" sajt u IIS
- Podesio sam bindings na "http", ip address "All Unassigned" na 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
Date instrukcije se baziraju na [Host Sinopia in IIS on Windows](https://gist.github.com/HCanber/4dd8409f79991a09ac75). Treba još da čačnem my web config kao što je navedeno ispod, ali možete se desiti da navedeni link zapravo radi bolje
A default configuration file will be created `c:\verdaccio\verdaccio\config.yaml`
Kreiraće se podrazumevana konfiguracija `c:\verdaccio\verdaccio\config.yaml`
### package.json
@ -97,7 +97,7 @@ require('./node_modules/verdaccio/src/lib/cli.js');
</configuration>
```
### Troubleshooting
### Problemi (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).
- **Web interfejs se ne učitava kada je hostovan sa https pošto pokušava da preuzme skripte preko http.**
Proverite da li ste ispravno uneli `url_prefix` u verdaccio config. Pratite [discussion](https://github.com/verdaccio/verdaccio/issues/622).

View File

@ -1,28 +1,28 @@
---
id: installation
title: "Installation"
id: instalacija
title: "Instalacija"
---
Verdaccio is a multiplatform web application. To install it, you need a few prerequisites.
Verdaccio je multi-platformna web aplikacija. Da biste je instalirali, potrebno je da ispunite nekoliko preduslova.
#### Prerequisites
#### Preduslovi
1. Node higher than
- For version `verdaccio@2.x` Node `v4.6.1` is the minimum supported version.
- For version `verdaccio@latest` Node `6.12.0` is the minimum supported version.
2. npm `>=3.x` or `yarn`
3. The web interface supports the `Chrome, Firefox, Edge, and IE9` browsers.
1. Node viši od
- Za verziju `verdaccio@2.x` Node `v4.6.1` je najstarija podržana verzija.
- Za verziju `verdaccio@latest` Node `6.12.0` je najstarija podržana verzija.
2. npm `>=3.x` ili `yarn`
3. Web interfejs podržava `Chrome, Firefox, Edge, i IE9` pretraživače.
## Installing the CLI
## Instalacija CLI
`verdaccio` must be installed globaly using either of the following methods:
`verdaccio` mora biti instaliran globalno, korišćenjem neke od navedenih metoda:
Using `npm`
Koristi `npm`
```bash
npm install -g verdaccio
```
or using `yarn`
ili koristi `yarn`
```bash
yarn global add verdaccio
@ -30,9 +30,9 @@ yarn global add verdaccio
![install verdaccio](/svg/install_verdaccio.gif)
## Basic Usage
## Osnovna upotreba
Once it has been installed, you only need to execute the CLI command:
Jednom kada se instalita, sve što treba je da izvršite CLI komandu:
```bash
$> verdaccio
@ -40,14 +40,14 @@ warn --- config file - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/3.0.1
```
For more information about the CLI, please [read the cli section](cli.md).
Za dodatne informacije o CLI molimo Vas [da pročitate cli sekciju](cli.md).
## 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).
`verdaccio` poseduje zvanični docker image koji možete koristiti, a u većini slučajeva, podrazumevana konfiguracija radi sasvim dobro. Za više informacija o tome kako da instalirate official image, [pročitajte docker sekciju](docker.md).
## Cloudron
`verdaccio` is also available as a 1-click install on [Cloudron](https://cloudron.io)
`verdaccio` je takođe dostupan i kao instalacija u samo jednom kliku, na [Cloudron](https://cloudron.io)
[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)
[![Instalacija](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=org.eggertsson.verdaccio)

View File

@ -2,59 +2,59 @@
id: kubernetes
title: "Kubernetes"
---
You can find instructions to deploy Verdaccio on a Kubernetes cluster on the [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example) repository. However, the recommended method to install Verdaccio on a Kubernetes cluster is to use [Helm](https://helm.sh). Helm is a [Kubernetes](https://kubernetes.io) package manager which bring multiple advantages.
Možete naći uputstva kako da izvršite deploy Verdaccio-a na Kubernetes klaster u [verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example) repozitorijumu. Ipak, preporučujemo da instalirate Verdaccio na Kubernetes klaster tako što ćete koristiti [Helm](https://helm.sh). Helm je [Kubernetes](https://kubernetes.io) package manager koji donosi mnoge pogodnosti.
## Helm
### Setup Helm
If you haven't used Helm before, you need to setup the Helm controller called Tiller:
Ako ranije niste koristili Helm, potrebno je da podesite Helm kontroler zvani Tiller:
```bash
helm init
```
### Install
### Instaliranje
Deploy the Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio) chart. In this example we use `npm` as release name:
Deploy Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio) chart. U ovom primeru koristimo `npm` kao ime izdanja (release nam):
```bash
helm install --name npm stable/verdaccio
```
### Deploy a specific version
### Postavljanje specifične verzije (deploy)
```bash
helm install --name npm --set image.tag=2.6.5 stable/verdaccio
```
### Upgrading Verdaccio
### Nadogradjivanje Verdaccio-a
```bash
helm upgrade npm stable/verdaccio
```
### Uninstalling
### Deinstaliranje
```bash
helm del --purge npm
```
**Note:** this command delete all the resources, including packages that you may have previously published to the registry.
**Napomena:** ova komanda briše sve resurse, uključujući i pakete koji su možda ranije objavljeni u registriju.
### Custom Verdaccio configuration
### Koristnička Konfiguracija Verdaccio-a
You can customize the Verdaccio configuration using a Kubernetes *configMap*.
Možete podesiti Verdaccio konfiguraciju po svojim željama tako što ćete koristiti Kubernetes *configMap*.
#### Prepare
#### Priprema
Copy the [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml) and adapt it for your use case:
Kopirajte [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml) i adaptirajte za svoju svrhu:
```bash
wget https://raw.githubusercontent.com/verdaccio/verdaccio/master/conf/full.yaml -O config.yaml
```
**Note:** Make sure you are using the right path for the storage that is used for persistency:
**Napomena:** Proverite da li koristite ispravan path za storage koji se koristi za persistency:
```yaml
storage: /verdaccio/storage/data
@ -63,17 +63,17 @@ auth:
file: /verdaccio/storage/htpasswd
```
#### Deploy the configMap
#### Postavljanje configMap (deploy)
Deploy the `configMap` to the cluster
Postavite `configMap` na klaster
```bash
kubectl create configmap verdaccio-config --from-file ./config.yaml
```
#### Deploy Verdaccio
#### Postavite Verdaccio
Now you can deploy the Verdaccio Helm chart and specify which configuration to use:
Sada možete postaviti Verdaccio Helm chart i detaljno definisati konfiguraciju da koristi:
```bash
helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
@ -81,6 +81,6 @@ helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
## Rancher Support
[Rancher](http://rancher.com/) is a complete container management platform that makes managing and using containers in production really easy.
[Rancher](http://rancher.com/) je kompletna container management platforma koja Vam omogućava da na lak i jednostavan način koristite kontejnere.
* [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)

View File

@ -2,7 +2,7 @@
id: logger
title: "Logger"
---
As any web application, verdaccio has a customisable built-in logger. You can define multiple types of outputs.
Kao i svaka web aplikacija, verdaccio poseduje ugrađeni logger koji se može prilagođavati po želji korisnika. Možete definisati različite tipove izlaza.
```yaml
logs:
@ -10,17 +10,17 @@ logs:
- {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
# Rotating log stream. Opcije se prosleđuju direktno do 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)
Koristite `SIGUSR2` da obavestite aplikaciju, log-file je rotiran (rotated) i onda je potrebno da se ponovo otvori. Napomena: Rotating log stream nije podržan u klaster modu. [Pročitajte ovde](https://github.com/trentm/node-bunyan#stream-type-rotating-file)
### Configuration
### Konfigurisanje
| Property | Type | Required | Example | Support | Description |
| -------- | ------ | -------- | ---------------------------------------------- | ------- | ------------------------------------------------- |
| type | string | No | [stdout, file] | all | define the output |
| path | string | No | verdaccio.log | all | if type is file, define the location of that file |
| format | string | No | [pretty, pretty-timestamped] | all | output format |
| level | string | No | [fatal, error, warn, http, info, debug, trace] | all | verbose level |
| Svojstvo | Tip | Neophodno | Primer | Podrška | Opis |
| -------- | ------ | --------- | ---------------------------------------------- | ------- | ------------------------------------------ |
| type | string | Ne | [stdout, file] | all | definiše izlaz |
| path | string | Ne | verdaccio.log | all | ako je tip "fajl", definiše lokaciju fajla |
| format | string | Ne | [pretty, pretty-timestamped] | all | izlazni format |
| level | string | Ne | [fatal, error, warn, http, info, debug, trace] | all | verbose level |

View File

@ -2,54 +2,54 @@
id: logo
title: "Verdaccio 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.
Logotip je dizajnirao **[Breno Rodrigues](https://github.com/rodriguesbreno)** koji je osvojio [takmičenje](https://github.com/verdaccio/verdaccio/issues/237) ([završna faza](https://github.com/verdaccio/verdaccio/issues/328)) i donirao je svoj talenat našem projektu.
> All logos are licensed under [Creative Commons](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).
> Svaki logo je licenciran pod [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.
Posebno se zahvaljujemo *[@Lisapressmar](https://github.com/Lisapressmar)* za njen doprinos u vidu raznih formata i veličina.
## Symbols
## Simboli
**With text**
**Sa tekstom**
![symbol tiny with text](/img/logo/symbol/png/logo-small-header-bottom.png)
![simbol, mali sa tekstom](/img/logo/symbol/png/logo-small-header-bottom.png)
![symbol medium with text](/img/logo/symbol/png/logo-small-header-bottom@2x.png)
![simbol, srednji sa tekstom](/img/logo/symbol/png/logo-small-header-bottom@2x.png)
![symbol big with text](/img/logo/symbol/png/logo-small-header-bottom@3x.png)
![simbol, veliki sa tekstom](/img/logo/symbol/png/logo-small-header-bottom@3x.png)
**SVG**
![symbol svg](/img/logo/symbol/svg/logo-small-header-bottom.svg)
![simbol, svg](/img/logo/symbol/svg/logo-small-header-bottom.svg)
**No text**
**Bez teksta**
![symbol tiny](/img/logo/symbol/png/verdaccio-tiny.png)
![simbol, mali](/img/logo/symbol/png/verdaccio-tiny.png)
![symbol medium](/img/logo/symbol/png/verdaccio-tiny@2x.png)
![simbol, srednji](/img/logo/symbol/png/verdaccio-tiny@2x.png)
![symbol big](/img/logo/symbol/png/verdaccio-tiny@3x.png)
![simbol, veliki](/img/logo/symbol/png/verdaccio-tiny@3x.png)
**SVG**
![svg format symbol no text](/img/logo/symbol/svg/verdaccio-tiny.svg)
![svg format, simbol bez teksta](/img/logo/symbol/svg/verdaccio-tiny.svg)
### Black&White
### Crno-Belo
![symbol bw small](/img/logo/symbol/png/verdaccio-blackwhite.png)
![simbol, bw, mali](/img/logo/symbol/png/verdaccio-blackwhite.png)
![symbol bw medium](/img/logo/symbol/png/verdaccio-blackwhite@2x.png)
![simbol, bw, srednji](/img/logo/symbol/png/verdaccio-blackwhite@2x.png)
![symbol bw big](/img/logo/symbol/png/verdaccio-blackwhite@3x.png)
![simbol, bw, veliki](/img/logo/symbol/png/verdaccio-blackwhite@3x.png)
**SVG**
![symbol bw svg](/img/logo/symbol/svg/verdaccio-blackwhite.svg)
![simbol, bw, svg](/img/logo/symbol/svg/verdaccio-blackwhite.svg)
## Banner
## Baner
![banner small](/img/logo/banner/png/verdaccio-banner.png)
![baner, mali](/img/logo/banner/png/verdaccio-banner.png)
![banner medium](/img/logo/banner/png/verdaccio-banner@2x.png)
![baner, srednji](/img/logo/banner/png/verdaccio-banner@2x.png)
![banner big](/img/logo/banner/png/verdaccio-banner@3x.png)
![baner, veliki](/img/logo/banner/png/verdaccio-banner@3x.png)

View File

@ -2,9 +2,9 @@
id: node-api
title: "Node API"
---
Verdaccio can be invoqued programmatically. The node API was introduced after version `verdaccio@3.0.0-alpha.10`.
Verdaccio podržava opciju invoqued programmatically. Nod API je uveden posle verzije `verdaccio@3.0.0-alpha.10`.
## Usage
## Korišćenje
#### Programmatically
@ -19,7 +19,7 @@ Verdaccio can be invoqued programmatically. The node API was introduced after ve
});
```
## Other implementations
## Ostale implementacije
* [verdaccio-server](https://github.com/boringame/verdaccio-server) local npm registry proxy server

View File

@ -1,16 +1,16 @@
---
id: notifications
title: "Notifications"
id: notifikacije
title: "Notifikacije"
---
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.
Notifikacije su zamišljene da se koriste sa Slack's Incoming webhooks, ali takođe isporučuju simple payload do bilo koje endpoint. Trenutno je aktivno jedino za `npm publish` komandu.
## Usage
## Korišćenje
An example with a **HipChat**, **Stride** and **Google Hangouts Chat** hook:
Na primer sa **HipChat**, **Stride** i **Google Hangouts Chat** hook:
> Verdaccio supports any API, feel free to ad more examples.
> Verdaccio podržava svaki API, slobodno dodajte još primera.
#### Single notification
#### Jedinstvena notifikacija
```yaml
notify:
@ -20,7 +20,7 @@ notify:
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
#### Multiple notification
#### Višestruka notifikacija
```yaml
notify:
@ -41,11 +41,11 @@ notify:
content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}'
```
## Template
## Templat
We use [Handlebars](https://handlebarsjs.com/) as main template engine.
Koristimo [Handlebars](https://handlebarsjs.com/) kao main template engine.
### Format Examples
### Primeri za formate
# iterate all versions
{{ name }}{{#each versions}} v{{version}}{{/each}}`"}
@ -54,17 +54,17 @@ We use [Handlebars](https://handlebarsjs.com/) as main template engine.
{{ publisher.name }} has published {{publishedPackage}}"}
### Properties
### Svojstva (Properties)
List of properties accesible via template
Lista svojstava kojima se može pristupiti preko templata
* Metadata
* Publisher (who is publishing)
* Publisher (onaj koji publikuje)
* Package Published (package@1.0.0)
### Metadata
Package metadata that the template has access
Package metadata za koje templat ima pristup
{
"_id": "@test/pkg1",
@ -117,9 +117,9 @@ Package metadata that the template has access
### Publisher
You can access to the package publisher information in the `content` of a webhook using the `publisher` object.
Možete pristupiti package publisher infomacijama u `content` u okviru webhook koristeći `publisher` objekat.
See below the `publisher` object type:
Pogledajte primer za `publisher` object type:
{
name: string,
@ -128,7 +128,7 @@ See below the `publisher` object type:
}
An example:
Primer:
notify:
method: POST
@ -137,22 +137,22 @@ An example:
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.
**Napomena:** Nije moguće dobiti publisher information ako `package.json` fajl već ima `publisher` svojstvo.
### Package Published
You can acces to the package is being published with the keyword `{{publishedPackage}}` as follows.
Možete pristupiti opciji package is being published pomoću ključe reči `{{publishedPackage}}` na sledeći način.
{{ publisher.name }} has published {{publishedPackage}}"}
## Configuration
## Konfigurisanje
| Property | Type | Required | Support | Default | Description |
| ------------------- | ------------ | -------- | ------- | ------- | -------------------------------------------------------------------------------------------- |
| method | string | No | all | | HTTP verb |
| packagePattern | string | No | all | | Only run this notification if the package name matches the regular expression |
| packagePatternFlags | string | No | all | | Any flags to be used with the regular expression |
| headers | array/object | Yes | all | | If this endpoint requires specific headers, set them here as an array of key: value objects. |
| endpoint | string | Yes | all | | set the URL endpoint for this call |
| content | string | Yes | all | | any [Handlebar](https://handlebarsjs.com/) expressions |
| Svojstvo | Tip | Neophodno | Podrška | Podrazumevano | Opis |
| ------------------- | ------------ | --------- | ------- | ------------- | ---------------------------------------------------------------------------------------------- |
| method | string | Ne | all | | HTTP verb |
| packagePattern | string | Ne | all | | Pokreni ovu notifikaciju ako se ime paketa podudara sa regularnim izrazom (regular expression) |
| packagePatternFlags | string | Ne | all | | Bilo koja zastavica (flags) koja će se koristiti sa regular expression |
| headers | array/object | Da | all | | Ako endpoint zahteva specific headers, podesite ih ovde kao array of key: value objects. |
| endpoint | string | Da | all | | podesite URL endpoint za ovaj poziv |
| content | string | Da | all | | bilo koji [Handlebar](https://handlebarsjs.com/) expressions |

View File

@ -2,13 +2,13 @@
id: packages
title: "Package Access"
---
It's a series of contraints that allow or restrict access to the local storage based in specific criteria.
Ovo je serija kontejnera koja dozvoljava ili zabranjuje pristup do local storage na osnovu specifično definisanih kriterijuma.
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.
Sigurnost pada na pleća plugina koji se koristi. Po pravilu, `verdaccio` koristi [htpasswd plugin](https://github.com/verdaccio/verdaccio-htpasswd). Ako koristite različit plugin, način izvršavanja (behaviour) bi takođe mogao biti promenjen. Podrazumevani plugin ne rukovodi (handle) sa `allow_access` i `allow_publish` samostalno, već koristi interni fallback u slučaju da ne postoji spremni plugin.
For more information about permissions visit [the authentification section in the wiki](auth.md).
Za više informacija o dozvolama, posetite [authentification sekciju na wiki](auth.md).
### Usage
### Korišćenje
```yalm
packages:
@ -31,7 +31,7 @@ packages:
proxy: uplink2
```
if none is specified, the default one remains
ako ništa nije precizirano, ostaje kako je podrazumevano
```yaml
packages:
@ -40,20 +40,20 @@ packages:
publish: $authenticated
```
The list of valid groups according the default plugins are
Lista validnih grupa u skladu sa podrazumevanim pluginima
```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.
Svi korisnici primaju sve navedeno kako bi podesili ovlašćenja nezavisno od toga jesu li anonimna ili više grupa nije omogućeno od strane plugina, a u slučaju da je tako `htpasswd` vraća username kao grupu. Na primer, ako ste prijavljeni kao `npmUser` lista grupa će izgledati ovako.
```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 recomend using a prefix for your packages, in that way it will be easier to protect them.
Ako želite da zaštitite specifični set paketa u okviru grupe, potrebno je da uradite ovako nešto. Koristimo `Regex` koji pokriva sve `npmuser-` pakete sa prefiksima. Preporučujemo korišćenje prefiksa za Vaše pakete, jer ćete ih na taj način lakše zaštititi.
```yaml
packages:
@ -62,7 +62,7 @@ packages:
publish: npmuser
```
Restart `verdaccio` and in your console try to install `npmuser-core`.
Restartujte `verdaccio` i u svojoj konzoli probajte da instalirate `npmuser-core`.
```bash
$ npm install npmuser-core
@ -74,11 +74,11 @@ 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.
Možete promeniti postojeći behaviour korišćenjem različite plugin autentifikacije. `verdaccio` proverava da li korisnik koji je pokušao da pristupi nekom paketu ili publikuje paket pripada ispravnoj grupi korisnika.
#### Set multiple groups
#### Podešavanje multiplih grupa
Defining multiple access groups is fairly easy, just define them with a white space between them.
Definisanje multiple access groups je relativno jednostavno, samo je potrebno da ih definišete sa razmakom između.
```yaml
'company-*':
@ -91,9 +91,9 @@ Defining multiple access groups is fairly easy, just define them with a white sp
proxy: server1
```
#### Blocking access to set of packages
#### Blokiranje pristupa setu paketa
If you want to block the acccess/publish to a specific group of packages. Just do not define `access` and `publish`.
Ako želite da blokirate pristup/publikovanje specifičnoj grupi paketa, samo izostavite da definišete `access` i `publish`.
```yaml
packages:
@ -103,11 +103,11 @@ packages:
publish: $authenticated
```
#### Blocking proxying a set of specific packages
#### Blokiranje proxying-a za set specifičnih paketa
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*.
Možda ćete poželeti da blokirate jedan ili više paketa od uhvaćenih (fetching) iz udaljenog repozitorijuma, ali da istovremeno dozvolite drugima da pristupe različitim *uplinks-ima*.
Let's see the following example:
Hajde da pogledamo primer:
```yaml
packages:
@ -126,24 +126,24 @@ packages:
proxy: npmjs
```
Let's describe what we want with the above example:
Hajde da vidimo šta smo postigli u navedenom primeru:
* 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.
* Želim da hostujem svoj `jquery` dependency ali istovremeno želim da izbegnem njeno proxying-ovanje.
* Želim sve dependencies koje se poklapaju sa `my-company-*` ali ujedno imam potrebu da izbegnem njihovo proxying-ovanje.
* Želim sve dependencies koje su u `my-local-scope` ali ujedno želim da izbegnem njihovo proxying-ovanje.
* Želim da proxying-ujem sve ostale 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.
**Budite svesni toga da je redosled definisanja Vaših paketa važan i još nešto, uvek koristite double wilcard**. Jer ako ne budete toga svesni, `verdaccio` će to učiniti umesto Vas, što će uticati Vaše dependencies.
### Configuration
### Konfigurisanje
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).
Možete definisati mutiple `packages` pri čemu svaki od njih mora imati jedinstveni `Regex`. Sintaksa je bazirana na [minimatch glob expressions](https://github.com/isaacs/minimatch).
| Property | Type | Required | Example | Support | Description |
| -------- | ------- | -------- | -------------- | ------- | ------------------------------------------- |
| access | string | No | $all | all | define groups allowed to access the package |
| publish | string | No | $authenticated | all | define groups allowed to publish |
| proxy | string | No | npmjs | all | limit look ups for specific uplink |
| Svojstvo | Tip | Potrebno | Primer | Podrška | Opis |
| -------- | ------- | -------- | -------------- | ------- | ------------------------------------------------- |
| access | string | No | $all | all | definiše grupe kojima je dozvoljen pristup paketu |
| publish | string | No | $authenticated | all | definiše grupe kojima je dozvoljeno da publikuju |
| proxy | string | No | npmjs | all | limitira look ups za specifični uplink |
| storage | boolean | No | [true,false] | all | TODO |
> 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**).
> Naglašavamo da ne preporučujemo da i dalje koristite **allow_access**/**allow_publish** i **proxy_access**, jer će navedene uskoro biti uklonjene. Molimo Vas da umesto toga koristite skraćene verzije (**access**/**publish**/**proxy**).

View File

@ -2,28 +2,28 @@
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.
Verdaccio je aplikacija koja podržava plugine. Može se proširivati na mnogo načina, dodavanjem novih metoda za autentifikaciju, dodavanjem endpoints-a ili korišćenjem custom storage-a.
> If you are interested to develop your own plugin, read the [development](dev-plugins.md) section.
> Ako ste zainteresovani da razvijete sopstveni plugin, pročitajte [development](dev-plugins.md) sekciju.
## Usage
## Korišćenje
### Installation
### Instalacija
```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.
`verdaccio` je sinopia fork i poseduje backward compability sa pluginima koji su kompatibilni sa `sinopia@1.4.0`. U tom slučaju, instalacija je potpuno ista.
$> npm install --global sinopia-memory
### Configuration
### Konfigurisanje
Open the `config.yaml` file and update the `auth` section as follows:
Otvorite `config.yaml` fajl i uradite update `auth` sekcije prema sledećim uputstvima:
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.
Podrazumevana konfiguracija izgleda ovako, jer koristimo ugrađeni `htpasswd` plugin kao podrazumevan, a koji možete zaustaviti (disable) tako što ćete sledeće linije pretvoriti u komentar.
### Auth Plugin Configuration
@ -33,7 +33,7 @@ The default configuration looks like this, due we use a build-in `htpasswd` plug
#max_users: 1000
```
and replacing them with (in case you decide to use a `ldap` plugin.
i zameniti ih sa datim (ako se odlučite da koristite `ldap` plugin).
```yaml
auth:
@ -43,9 +43,9 @@ auth:
domainSuffix: 'sample.local'
```
#### Multiple Auth plugins
#### Multiple Auth plugini
This is tecnically possible, making the plugin order important, as the credentials will be resolved in order.
Tehnički je izvodivo, ako postavite da je redosled plugina važan, usled čega će se credentials izvršiti po tom poretku.
```yaml
auth:
@ -60,7 +60,7 @@ auth:
### Middleware Plugin Configuration
This is an example how to set up a middleware plugin. All middleware plugins must be defined in the **middlewares** namespace.
Ovo je primer koji pokzuje kako treba da podesite middleware plugin. Svi middleware plugini moraju biti definisani u **middlewares** namespace.
```yaml
middlewares:
@ -68,11 +68,11 @@ middlewares:
enabled: true
```
> You might follow the [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) as base example.
> Možete pratiti [audit middle plugin](https://github.com/verdaccio/verdaccio-audit) kao bazični primer.
### Store Plugin Configuration
This is an example how to set up a storage plugin. All storage plugins must be defined in the **store** namespace.
Ovo je primer koji pokzuje kako treba da podesite storage plugin. Svi storage plugini moraju se definisati u **store** namespace.
```yaml
store:
@ -80,64 +80,64 @@ store:
limit: 1000
```
> If you define a custom store, the property **storage** in the configuration file will be ignored.
> Ako definišete custom store, svojstvo **storage** u configuration fajlu će biti ignorisano.
## Legacy plugins
## Tradicionalni plugini (Legacy plugins)
### Sinopia Plugins
(compatible all versions)
(kompatibilni sa svim verzijama)
* [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-npm](https://www.npmjs.com/package/sinopia-npm): auth plugin za sinopia koji podržava npm registry.
* [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): auth plugin za sinopia koji čuva korisnike u memoriji.
* [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin for sinopia supporting atlassian crowd.
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin for sinopia.
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin for sinopia2, supporting github oauth web flow.
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin that delegates authentication to another HTTP URL
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternate LDAP Auth plugin for Sinopia
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): An easy and fully auth-plugin with configuration to use an external API.
* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generate password in htaccess format, encrypt with GPG and send via MailGun API to users.
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): An easy and fully auth-plugin with configuration to use a mongodb database.
* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin for sinopia supporting htpasswd format.
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb backed auth plugin for sinopia private npm.
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin for sinopia.
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin for sinopia
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin for sinopia.
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin with github oauth web flow.
* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin za sinopia koji podržava atlassian crowd.
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin za sinopia.
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin za sinopia2, podržava github oauth web flow.
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin koji delegira authentifikaciju za drugi HTTP URL
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternativni LDAP Auth plugin za Sinopia
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): Jednostavan i celovit auth-plugin sa konfiguracijom za korišćenjem eksternih API.
* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generiše password u htaccess formatu, encrypt sa GPG i šalje preko MailGun API do korisnika.
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): Jednostavan i celovit auth-plugin sa konfiguracijom za korišćenje mongodb database.
* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin za sinopia koji podržava htpasswd format.
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb podržan auth plugin za sinopia private npm.
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin za sinopia.
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin za sinopia
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin za sinopia.
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin sa 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*.
> Svi sinopia pluginsi, trebalo bi da budu kompatibilni sa svim budućim verzijama verdaccio-a. Bilo kako bilo, ohrabrujemo naše saradnike da pređu na moderni verdaccio API i da koriste prefiks kao *verdaccio-xx-name*.
## Verdaccio Plugins
(compatible since 2.1.x)
(kompatibilno od verzije 2.1.x)
### 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-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): Bitbucket authentication plugin za verdaccio.
* [verdaccio-bitbucket-server](https://github.com/oeph/verdaccio-bitbucket-server): Bitbucket Server authentication plugin za verdaccio.
* [verdaccio-ldap](https://www.npmjs.com/package/verdaccio-ldap): LDAP auth plugin za verdaccio.
* [verdaccio-active-directory](https://github.com/nowhammies/verdaccio-activedirectory): Active Directory authentication plugin za verdaccio
* [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab): koristi GitLab Personal Access Token za authentifikaciju
* [verdaccio-gitlab-ci](https://github.com/lab360-ch/verdaccio-gitlab-ci): Omogućava GitLab CI da authenticate protiv verdaccio.
* [verdaccio-htpasswd](https://github.com/verdaccio/verdaccio-htpasswd): File plugin za Auth based on htpasswd (ugrađen), za verdaccio
* [verdaccio-github-oauth](https://github.com/aroundus-inc/verdaccio-github-oauth): Github oauth authentication plugin za verdaccio.
* [verdaccio-github-oauth-ui](https://github.com/n4bb12/verdaccio-github-oauth-ui): GitHub OAuth plugin za the verdaccio login dugme.
### Middleware Plugins
* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): verdaccio plugin for *npm audit* cli support (built-in) (compatible since 3.x)
* [verdaccio-audit](https://github.com/verdaccio/verdaccio-audit): verdaccio plugin za *npm audit* cli support (ugrađen) (kompatibilni od verzije 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-profile-api](https://github.com/ahoracek/verdaccio-profile-api): verdacci plugin za *npm profile* cli support i *npm profile set password* za *verdaccio-htpasswd* baziranu autentifikaciju
### Storage Plugins
(compatible since 3.x)
(kompatibilani od verzije 3.x)
* [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**
* [verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) Storage plugin za hostovanje paketa u Memory
* [verdaccio-s3-storage](https://github.com/remitly/verdaccio-s3-storage) Storage plugin za hostovanje paketa na **Amazon S3**
* [verdaccio-google-cloud](https://github.com/verdaccio/verdaccio-google-cloud) Storage plugin za hostovanje paketa na **Google Cloud Storage**
## Caveats
## Upozorenja (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.
> Svi navedeni plugini nisu detaljno testirani i može se dogoditi da neki od njih uopšte ne rade. Ako naiđete na probleme, molimo Vas da slobodno pošaljete upit autorima plugina.

View File

@ -2,11 +2,11 @@
id: protect-your-dependencies
title: "Protecting packages"
---
`verdaccio` allows you protect publish, to achieve that you will need to set up correctly your [packages acces](packages).
`verdaccio` Vam omogućava da publikujete. Kako biste u tome uspeli, neophodno je da ispravno podesite svoj [packages acces](packages).
### Package configuration
### Konfigurisanje paketa
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.
Pogledajmo navedena podešavanja kao primer. Potrebno je da podesite dependencies koje imaju prefiks u vidu `my-company-*` i treba da ih zaštitite od anonimnih ili drugih prijavljenih korisnika koji su bez odgovarajućih ovlašćenja (credentials).
```yaml
'my-company-*':
@ -15,18 +15,18 @@ Let's see for instance the following set up. You have a set of dependencies what
proxy: npmjs
```
With this configuration, basically we allow to groups **admin** and **teamA** to *publish* and **teamA** **teamB** **teamC** *access* to such dependencies.
Sa navedenom konfiguracijom dozvoljavamo grupama **admin** i **teamA** da *publikuju* a grupama **teamA** **teamB** i **teamC** *pristup* do tih dependencies.
### Use case: teamD try to access the dependency
### Primer iz prakse: teamD pokušava da pristupi nekoj dependency
So, if I am logged as **teamD**. I shouldn't be able to access all dependencies that match with `my-company-*` pattern.
Dale, prijavljen sam kao **teamD**. Ne bi trebalo da budem u mogućnosti da pristupim svim dependencies-ima koji sadrže `my-company-*` patern.
```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.
**Neću imati pristup do svih dependencies-a i takođe neću biti vidljiv preko weba za korisnika **teamD**. Ako pokušam da pristupip, dogodiće se sledeće.</p>
```bash
➜ npm install my-company-core
@ -34,7 +34,7 @@ npm ERR! code E403
npm ERR! 403 Forbidden: webpack-1@latest
```
or with `yarn`
ili sa `yarn`
```bash
➜ yarn add my-company-core

View File

@ -2,19 +2,19 @@
id: puppet
title: "Puppet"
---
Install verdaccio for Debian, Ubuntu, Fedora, and RedHat.
Instalacija verdaccio-a za Debian, Ubuntu, Fedora, i RedHat.
# Usage
# Korišćenje
There are two variants to install verdaccio using this Puppet module:
Postoje dva načina za instaliranje verdaccio-a korišćenjem Puppet modula:
* Apply-mode (with puppet-apply and no puppetmaster setup needed)
* Master-Agent-mode (with puppet-agent accessing your configuration through the puppetmaster).
* Apply-mode (sa puppet-apply i bez da je puppetmaster setup neophodan)
* Master-Agent-mode (sa puppet-agent pristupa Vašoj konfiguraciji preko 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.
U oba slučaja morate eksplicitno pozvati "class nodejs {}" u svom puppet script jer puppet-verdaccio module jedino to definiše kao neophodno, tako da možete biti fleksibilni kada instalirate nodejs. Skrolujte na dole za više detalja o Master-Agent-mode varijanti.
For further information:
Za dalje informacije:
<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).
> Tražimo aktivne saradnike za ovu integraciju, pa ako ste zainteresovani, [pošaljite nam ticket](https://github.com/verdaccio/puppet-verdaccio/issues/11).

View File

@ -4,4 +4,4 @@ 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).
Da biste videli kompletnu listu repozitorijuma, [kliknite ovde](https://github.com/verdaccio/verdaccio/wiki/Repositories).

View File

@ -4,7 +4,7 @@ title: "Reverse Proxy Setup"
---
## Apache
Apache and mod_proxy should not decode/encode slashes and leave them as they are:
Apache i mod_proxy ne treba da decode/encode slashes, tako da je najbolje da ostavite podešavanja takva kakva su:
<VirtualHost *:80>
AllowEncodedSlashes NoDecode
@ -13,7 +13,7 @@ Apache and mod_proxy should not decode/encode slashes and leave them as they are
</VirtualHost>
### Configuration with SSL
### Konfigurisanje sa SSL
config.yaml
@ -21,7 +21,7 @@ config.yaml
url_prefix: https://npm.your.domain.com
```
Apache virtual server configuration
Konfiguracija Apache virtual servera
apacheconfig
<IfModule mod_ssl.c>
@ -51,13 +51,13 @@ Apache virtual server configuration
}
## Run behind reverse proxy with different domain and port
## Pokrenite behind reverse proxy sa različitim domenom i portom
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`
Ako pokrenete verdaccio behind reverse proxy, možda ćete primetiti sve resource fajlove servirane kao relaticve path, na primer `http://127.0.0.1:4873/-/static`
To resolve this issue, you should send real domain and port to verdaccio with `Host` header
Kako biste rešili navedeni problem, trebalo bi da pošaljete real domain i port do verdaccio-a sa `Host` header-om
Nginx configure should look like this:
Nginx konfigurisanje bi trebalo da izgleda ovako:
```nginx
location / {
@ -68,11 +68,11 @@ location / {
}
```
For this case, `url_prefix` should NOT set in verdaccio config
U ovom slučaju, `url_prefix` NE treba da podešava verdaccio config
* * *
or a sub-directory installation:
ili, instalacija pod-direktorijuma:
```nginx
location ~ ^/verdaccio/(.*)$ {
@ -83,6 +83,6 @@ location ~ ^/verdaccio/(.*)$ {
}
```
For this case, `url_prefix` should set to `/verdaccio/`
U ovom slučaju, `url_prefix` treba setuje `/verdaccio/`
> Note: There is a Slash after install path (`https://your-domain:port/verdaccio/`)!
> Napomena: Postoji Slash posle putanje za instalaciju (`https://your-domain:port/verdaccio/`)!

View File

@ -2,70 +2,70 @@
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.
Ovo je najbazičnija konfiguracija za linux server ali nam se čini važnim da dokumentujemo i podelimo sa Vama sve korake kako bi verdaccio stalno radio na serveru. Biće Vam potrebne root (ili sudo) dozvole za navedeno.
## Running as a separate user
## Pokretanje, kao zaseban korisnik
First create the verdaccio user:
Najpre kreirajte verdaccio korisnika:
```bash
$ sudo adduser --disabled-login --gecos 'Verdaccio NPM mirror' verdaccio
```
You create a shell as the verdaccio user using the following command:
Zatim kreirate shell kao verdaccio korisnik, putem sledeće komande:
```bash
$ sudo su verdaccio
$ cd ~
```
The 'cd ~' command send 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.
Komanda 'cd ~' šalje Vas do home direktorijuma verdaccio korinika. Postarajte se da pokrenete verdaccio barem jednom kako biste generisali config fajl. Modifikujte ga prema svojim potrebama.
## Listening on all addresses
## Listening na svim adresama
If you want to listen to every external address set the listen directive in the config to:
Ako želite da osluškujete (listen to) svaku eksternu adresu, podesite listen derectivu u config:
```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.
Ako imate pokrenut `verdaccio` u Amazon EC2 instanci, [moraćete da podesite listen u change your config file](https://github.com/verdaccio/verdaccio/issues/314#issuecomment-327852203) kao što je prikazano u navedenom primeru.
> Apache configure? Please check out the [Reverse Proxy Setup](reverse-proxy.md)
> Konfigurisanje Apache-a? Molimo Vas da pogledate [Reverse Proxy Setup](reverse-proxy.md)
## Keeping verdaccio running forever
## Kako da verdaccio radi neprekidno
We can use the node package called 'forever' to keep verdaccio running all the time. https://github.com/nodejitsu/forever
Možemo koristiti node paket zvani 'forever' kako biste podesili verdaccio da radi neprekidno. https://github.com/nodejitsu/forever
First install forever globally:
Prvo instalirajte forever globalno:
```bash
$ sudo npm install -g forever
```
Make sure you've started 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:
Proverite da li ste pokrenuli verdaccio barem jednom kako biste generisali config fajl i upišete admin korisnika. Posle toga, možete koristiti sledeću komandu kako biste pokrenuli verdaccio:
```bash
$ forever start `which verdaccio`
```
You can check the documentation for more information on how to use forever.
Možete pogledati dokumentaciju za više informacija o tome kako da koristite forever.
## Surviving server restarts
## Preživljavanje resetovanja servera
We can use crontab and forever together to restart verdaccio after a server reboot. When you're logged in as the verdaccio user do the following:
Možemo istovremeno koristiti crontab i forever kako bismo restartovali verdaccio nakon svakog reboot-ovanja servera. Nakon što ste prijavljeni kao verdaccio koristnik, zadajte sledeće:
```bash
$ crontab -e
```
This might ask you to choose an editor. Pick your favorite and proceed. Add the following entry to the file:
Moguće je da ćete dobiti pitanje da odaberete editor. Odaberite svoj omiljeni i nastavite. Unesite sledeći input u fajl:
@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:
Lokacije mogu varirati u zavisnosti od podešavanja servera. Ako želite da saznate gde se nalaze Vaši fajlovi, možete koristiti comandu 'which':
```bash
$ which forever

View File

@ -1,17 +1,17 @@
---
id: ssl
title: "Set up the SSL Certificates"
title: "Podešavanje SSL Sertifikata"
---
Follow this instructions to configure a SSL certificate to serve NPM registry under HTTPS.
Pratite instrukcije kako da konfigurišete SSL sertifikat koji služi u NPM registriju pod HTTPS.
* Update the listen property in your `~/.config/verdaccio/config.yaml`:
* Ažurirajte svojstvo listen u svom `~/.config/verdaccio/config.yaml`:
listen: 'https://your.domain.com/'
Once you update the listen and try to run verdaccio again will ask for certificates.
Jednom kada ažurite listen i probate ponovo da pokrenete verdaccio, pitaće Vas za sertifikate.
* Generate your certificates
* Generišite svoje sertifikate
$ 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
@ -24,22 +24,22 @@ Once you update the listen and try to run verdaccio again will ask for certifica
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 as `server.pfx` format, you can add the following configuration section. The passphrase is optional and only needed, if your certificate is encrypted.
<br />Alternativno, ako imate sertifikat u `server.pfx` formatu, možete dodati sledeću sekciju za konfigurisanje. Ako je Vaš sertifikat enkriptovan, jedino je neophodno uneti passphrase.
https: pfx: /Users/user/.config/verdaccio/server.pfx passphrase: 'secret' ````
More info on the `key`, `cert`, `ca`, `pfx` and `passphrase` arguments on the [Node documentation](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)
Više informacija o `key`, `cert`, `ca`, `pfx` i `passphrase` argumentima u [Node dokumentaciji](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)
* Run `verdaccio` in your command line.
* Pokrenite `verdaccio`u svom command line-u.
* Open the browser and load `https://your.domain.com:port/`
* Otvorite pretraživač i učitajte `https://your.domain.com:port/`
This instructions are mostly valid under OSX and Linux, on Windows the paths will vary but, the steps are the same.
Instrukcije važe uglavnom za OSX i Linux, dok će na Windows-u putanje (paths) biti različite, ali u suštini, koraci su isti.
## Docker
If you are using the Docker image, you have to set the `PROTOCOL` environment variable to `https` as the `listen` argument is provided on the [Dockerfile](https://github.com/verdaccio/verdaccio/blob/master/Dockerfile#L43), and thus ignored from your config file.
Ako koristite Docker image, potrebno je da podesite `PROTOCOL` environment varijablu na `https` posto je `listen` argument obezbeđen kao [Dockerfile](https://github.com/verdaccio/verdaccio/blob/master/Dockerfile#L43), i stoga ignorisan od strane config fajla.
You can also set the `PORT` environment variable if you are using a different port than `4873`.
Takođe možete da podesite `PORT` environment variablu ako koristite različit port od `4873`.

View File

@ -2,30 +2,30 @@
id: unit-testing
title: "Unit Testing"
---
All tests are split in three folders:
Svi testovi su podeljen u tri foldera:
- `test/unit` - Tests that cover functions that transform data in an non-trivial way. These tests simply `require()` a few files and run code in there, so they are very fast.
- `test/functional` - Tests that launch a verdaccio instance and perform a series of requests to it over http. They are slower than unit tests.
- `test/integration` - Tests that launch a verdaccio instance and do requests to it using npm. They are really slow and can hit a real npm registry. **unmaintained test**
- `test/unit` - Testovi koji pokrivaju funkcije koje transformišu podatke na ne-trivijalni način. Da biste testirali, koristite `require()` na nekolliko fajlova i pokrenite kod, brzo se izvršava.
- `test/functional` - Test koji pokreće verdaccio instancu i pokreće seriju zahteva nad http. Ovaj tip testova je sporiji od unit testova.
- `test/integration` - Test koji pokreće verdaccio instancu i zahteva je koristeći npm. Ovaj tip testova je izuzetno spor i može da pogodi pravi npm registry. **unmaintained test**
Unit and functional tests are executed automatically by running `npm test` from the project's root directory. Integration tests are supposed to be executed manually from time to time.
Unit i functional testovi se automatski izvršavaju pokretanjem `npm test` iz root directorijuma projekta. Integration testovi bi trebalo da se pokreću ručno, s vremena na vreme.
We use `jest` for all test.
Koristimo `jest` za sve testove.
## The npm Script
To run the test script you can use either `npm` or `yarn`.
Da biste pokrenuli test skriptu, možete koristiti bilo `npm` ili `yarn`.
yarn run test
That will trigger only two first groups of test, unit and functional.
To će pokrenuti samo prve dve grupe testova, unit i functional.
### Using test/unit
### Korišćenje test/unit
The following is just an example how a unit test should looks like. Basically follow the `jest` standard.
U navedenom primeru možete videti kako bi unit test trebalo da izgleda. Suštinski, samo pratite `jest` standard.
Try to describe what exactly does the unit test in a single sentence in the header of the `test` section.
Pokušajte da u jednoj rečenici u zaglavlju `test` sekcije objasnite tačno šta bi unit test trebalo da radi.
```javacript
const verdaccio = require('../../src/api/index');
@ -48,11 +48,11 @@ describe('basic system test', () => {
});
```
### Using test/functional
### Korišćenje test/functional
Funtional testing in verdaccio has a bit more of complextity that needs a deep explanation in order to success in your experience.
Funkcionalno testiranje u verdaccio-u je nešto kompleksnije i zahteva detaljno objašnjenje.
All starts in the `index.js` file. Let's dive in into it.
Sve počinje od `index.js` fajla. Hajde da se bacimo u rešavanje problema.
```javascript
// we create 3 server instances
@ -107,17 +107,17 @@ All starts in the `index.js` file. Let's dive in into it.
```
### Usage
### Korišćenje
Here we are gonna describe how it looks like an usual functional test, check inline for more detail information.
Ovde ćemo pokazati kako izgleda funkcionalni test, proverite inline i saznajte više detalja.
#### The lib/server.js
The server class is just a wrapper that simulates a `npm` client and provides a simple API for the funtional test.
Server class je samo wrapper koji simulira `npm` client i obezbeđuje jednostavan API za funkcionalni test.
As we mention in the previous section, we are creating 3 process servers that are accessible in each process as `server1`, `server2` and ``server3`.
Kao što smo već opisali u prethodnoj sekciji, kreiramo 3 proces servera koji su dostupni u svakom procesu kao `server1`, `server2` i``server3`.
Using such reference you will be able to send request to any of the 3 instance running.
Koristeći takve reference, moći ćete da šaljete zahtev do bilo koje 3 pokrenute instance.
```javascript
<br />export default function(server) {
@ -131,4 +131,4 @@ Using such reference you will be able to send request to any of the 3 instance r
### Test/integration
These section never has been used, but we are looking for help to make it run properly. **All new ideas are very welcome.**
Ove sekcije nikada nisu korišćene, te stoga tražimo pomoć kako bi radile na ispravan način. **Svaka ideja i svaka pomoć je dobrodošla.**

View File

@ -28,7 +28,7 @@ Možete definisati više uplinks-a, a svaki od njih mora imati jedinstveno ime (
| Svojstvo | Tip | Potrebno | Primer | Podrška | Opis | Podrazumevano |
| ------------------- | ------- | -------- | -------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| url | string | Da | https://registry.npmjs.org/ | potpuna | Url registry-a | npmjs |
| ca | string | Ne | ~./ssl/client.crt' | potpuna | Put to SSL certifikata | Nema ništa zadato |
| ca | string | Ne | ~./ssl/client.crt' | potpuna | Put do SSL sertifikata | Nema ništa zadato |
| timeout | string | Ne | 100ms | potpuna | podesite novi timeout za request | 30s |
| maxage | string | Ne | 10m | potpuna | limitira maksimalni broj neuspelih zahteva | 2m |
| fail_timeout | string | Ne | 10m | potpuna | definiše maksimalno vreme nakon kojeg zahtev postaje neuspešan | 5m |
@ -42,9 +42,16 @@ Možete definisati više uplinks-a, a svaki od njih mora imati jedinstveno ime (
Svojstvo `auth` Vam omogućava da koristite auth token sa uplink. Koristite podrazumevanu environment variablu:
```yaml
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: true # defaults to `process.env['NPM_TOKEN']`
```
ili preko definisane environment variable:
=======
or via a specified environment variable:
```yaml
uplinks:

View File

@ -2,30 +2,30 @@
id: use-cases
title: "Use Cases"
---
## Using private packages
## Korišćenje privatnih paketa
You can add users and manage which users can access which packages.
Možete dodavati korisnike i određivati koji će korisnici imati pristup kojim paketima.
It is recommended that you define a prefix for your private packages, for example "local", so all your private things will look like this: `local-foo`. This way you can clearly separate public packages from private ones.
Zaista se preporučuje da definišete prefiks za svoje privatne pakete, na primer "local". Posle toga, sve što je privatno, izgledaće ovako: `local-foo`. Na ovaj način možete jasno razdvojiti javne pakete od privatnih.
## Using public packages from npmjs.org
## Korišćenje javnih paketa sa 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 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.
Ako neki od paketa ne postoji u memoriji, server će pokušati da ga preuzme (fetch) sa npmjs.org. U slučaju da npmjs.org nije u funkciji, preuzeće se iz cache-a. Verdaccio će preuzeti samo ono što je neophodno (= ono što je klijent zatražio), i ta će informacija biti keširana, tako da u slučaju da klijent ponovo prosledi isti zahtev, preuzeće se bez aktivne potrebe za npmjs.org.
Example: if you successfully request express@3.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@3.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@3.0.1 (= only what's in the cache) is published, but nothing else.
Primer: ako ste jednom poslali zahtev za express@3.0.1sa ovog servera, bićete u mogućnosti da to uradite ponovo (sa svim potrebnim dependencies) kad god je npmjs.org van funkcije. Ali, recimo, express@3.0.0 neće biti preuzet, sve dok ga neko ne potraži. I u slučaju da je npmjs.org offline, server će odgovoriti da je, na primer, samo express@3.0.1 dostupan (= samo onaj koji je u cache) i nijedan drugi.
## Override public packages
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.
Ako želite da koristite modifikovanu verziju nekog javnog paketa `foo`, možete ga jednostavno publikovati na lokalnom serveru, tako da kada ukucate `npm install foo`, počeće da instalira Vašu verziju.
There's two options here:
Ovde postoje dve opcije:
1. You want to create a separate fork and stop synchronizing with public version.
1. Ako želite da kreirate poseban fork i zaustavite sinhronizaciju sa javnom verzijom.
If you want to do that, you should modify your configuration file so verdaccio won't make requests regarding this package to npmjs anymore. Add a separate entry for this package to *config.yaml* and remove `npmjs` from `proxy` list and restart the server.
Ako želite da uradite to, trebalo bi da modifikujetesvoju fajl za konfiguraciju tako da verdaccio prestane da traži zahteve od npmjs koji se odnose na taj paket. Dodajte psoeban unos za ovaj paket u *config.yaml* i uklonite `npmjs` iz `proxy` liste i restartujte server.
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.
Kada publikujete svoj paket lokalno, verovatno bi trebalo da otpočnete sa sa verzijom novijom od postojeće, tako da se izbegne konflikt sa postojećim paketom u cache-u.
2. You want to temporarily use your version, but return to public one as soon as it's updated.
2. Ako želite da svoju verziju samo privremeno, ali da se vratite na javnu čim se pojavi ažurirana.
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. This way your package will be used until its original maintainer updates his public package to 0.1.3.
Kako biste izbegli konflikte sa verzijama, trebalo bi da koristite pre-release suffix sledeće patch verzije. Na primer, ako je javni paket verzije 0.1.2, možete upload-ovati 0.1.3-my-temp-fix. Na taj način paket koji koristite će opstati dok se ne pojavi javna verzija paketa 0.1.3.

View File

@ -6,7 +6,7 @@ title: "Web User Interface"
<p align="center"><img src="https://github.com/verdaccio/verdaccio/blob/master/assets/gif/verdaccio_big_30.gif?raw=true"></p>
Verdaccio has a web user interface to display only the private packages and can be customisable.
Verdaccio poseduje prilagodivi web korisnički interfejs koji prikazuje samo privatne pakete.
```yaml
web:
@ -16,13 +16,13 @@ web:
scope:
```
All access restrictions defined to [protect your packages](protect-your-dependencies.md) will also apply to the Web Interface.
Sve restrikcije koje se odnose na pristup definisane su u okviru i takođe će se aplicirati i na web interfejs.</p>
### Configuration
### Konfigurisanje
| Property | Type | Required | Example | Support | Description |
| -------- | ------- | -------- | ------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| enable | boolean | No | true/false | all | allow to display the web interface |
| title | string | No | Verdaccio | all | HTML head title description |
| logo | string | No | http://my.logo.domain/logo.png | all | a URI where logo is located |
| scope | string | No | \\@myscope | all | If you're using this registry for a specific module scope, specify that scope to set it in the webui instructions header (note: escape @ with \\@) |
| Svojstvo | Tip | Neophodno | Primer | Podrška | Opis |
| -------- | ------- | --------- | ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| enable | boolean | No | true/false | all | dozvoljava prikaz web interfejsa |
| title | string | No | Verdaccio | all | opis naslova HTML zaglavlja |
| logo | string | No | http://my.logo.domain/logo.png | all | URL na kome se nalazi logo |
| scope | string | No | \\@myscope | all | Ako koristite registri za specific module scope, precizirajte taj scope kako biste podesili webui instructions header (note: escape @ with \\@) |

View File

@ -1,52 +1,52 @@
---
id: what-is-verdaccio
title: "What is Verdaccio?"
id: šta-je-verdaccio
title: "Šta je Verdaccio?"
---
Verdaccio is a **lightweight private npm proxy registry** built in **Node.js**
Verdaccio je **lightweight private npm proxy registry** ugrađen u **Node.js**
## What's a registry
## Šta je registry
* 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)**
* Repozitorijum za pakete koji implementira **CommonJS Compliant Package Registry specification** za čitanje informacija o paketu
* Obezbeđuje API kompatibilnost sa npm klijentima, **(yarn/npm/pnpm)**
* Prati semantiku Versioning compatible **(semver)**
$> verdaccio
![registry](/svg/verdaccio_server.gif)
## Using Verdaccio
## Korišćenje Verdaccio-a
Using verdaccio with any node package manager client is quite straightforward.
Korišćenje verdaccio-a sa bilo kojim node package manager client je vrlo jasno određeno.
![registry](/svg/npm_install.gif)
You can use a custom registry either setting globally for all your projects
Možete koristiti prilagođeni registry za sve svoje projekte bilo ako ga podesite na globalno
npm set registry http://localhost:4873
or by command line as argument `--registry` in npm (slightly different in yarn)
ili preko command line kao argument `--registry` u npm (malo se razlikuje u odnosu na yarn)
npm install lodash --registry http://localhost:4873
## Private
All packages that you publish are private and only accessible based in your configuration.
Svi paketi koje publikujete su podešeni kao privatni i dostupni su samo ako su tako konfigurisani.
## Proxy
Verdaccio cache all dependencies by demand and speed up installations in local or private networks.
Verdaccio kešira sve dependencies na zahtev i tako ubrzava instaliranje na lokalne ili privatne mreže.
## Verdaccio in a nutshell
## Verdaccio u kratkim crtama
* It's a web app based on Node.js
* It's a private npm registry
* It's a local network proxy
* It's a Pluggable application
* It's a fairly easy install and use
* We offer Docker and Kubernetes support
* It is 100% compatible with yarn, npm and pnpm
* It was **forked** based on `sinopia@1.4.0` and 100% **backward compatible**.
* Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
* To je web app bazirana na Node.js
* To je privatni npm registry
* To je lokalni network proxy
* To je aplikacija koja podržava plugine
* Prilično jednostavan za instaliranje i korišćenje
* Nudimo Docker i Kubernetes podršku
* 100% Komparibilan sa yarn, npm i pnpm
* Nakon što je **forkovan** na bazi `sinopia@1.4.0` ostvaruje100% **kompatibilnost unazad**.
* Ime Verdaccio označava **zelenu boja koja se koristila za italijansko freskoslikarstvo kasnog srednjeg veka**.

View File

@ -1,51 +1,51 @@
---
id: windows
title: "Installing As a Windows Service"
title: "Instalirajte kao Windows Service"
---
Loosely based upon the instructions found [here](http://asysadmin.tumblr.com/post/32941224574/running-nginx-on-windows-as-a-service). I crafted the following and it provided me with a fully working verdaccio service installation:
Ugrubo bazirano na uputstvima koja se mogu pronaći [ovde](http://asysadmin.tumblr.com/post/32941224574/running-nginx-on-windows-as-a-service). Napravili smo primer verdaccio servis instalacije koja radi kao sat. Švajcarski:
1. Create a directory for verdaccio
1. Kreirajte direktorijum za verdaccio
* mkdir `c:\verdaccio`
* cd `c:\verdaccio`
2. Install verdaccio locally (I ran into npm issues with global installs)
2. Instalirajte verdaccio lokalno (događaju se problemi sa npm ako je instalacija globalna)
* npm install verdaccio
3. Create your `config.yaml` file in this location `(c:\verdaccio\config.yaml)`
3. Kreirajte svoj `config.yaml` falj na ovoj lokaciji `(c:\verdaccio\config.yaml)`
4. Windows Service Setup
## Using NSSM
## Korišćenje NSSM
ALTERNATIVE METHOD: (WinSW package was missing when I tried to download it)
ALTERNATIVNI METOD: (WinSW paket je nedostajao kada je jedan od naših saradnika pokušao da ga preuzme)
* Download [NSSM](https://www.nssm.cc/download/) and extract
* Preuzmite [NSSM](https://www.nssm.cc/download/) i ekstrakujte
* Add the path that contains nssm.exe to the PATH
* Dodajte putanju do nssm.exe u PATH
* Open an administrative command
* Otvorite 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:
* Pokrenite nssm install verdaccio. Kao minimum, morate popuniti polja: Application tab Path, Startup directory i Arguments. Ako pretpostavimo da ste instalirali sa node u system path na lokaciju c:\verdaccio trebalo bi da funkcioniše:
* 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
Možete podesite druga servisna podešavanja u okviru ostalih tabova po sopstvenim željama. Kada završite, kliknite dugme Install service
* Start the service sc start verdaccio
* Pokrenite service sc, pokrenite verdaccio
## Using WinSW
## Korišćenje 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
* Od 2015-10-27, WinSW više nije dostupan na navedenoj lpkaciji. Pratite instrukcije date u Using NSSM.
* Preuzmite [WinSW](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
* Postavite exe (primer, `winsw-1.9-bin.exe`) u ovaj folder (`c:\verdaccio`) i preimenujte u `verdaccio-winsw.exe`
* Napravite fajl za konfigurisanje `c:\verdaccio`, nazvan `verdaccio-winsw.xml` sa sledećom konfiguracijom `xml verdaccio verdaccio verdaccio node c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml roll c:\verdaccio`.
* Instalirajte servis
* `cd c:\verdaccio`
* `verdaccio-winsw.exe install`
* Start your service
* Pokrenite servis
* `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.
Izgleda da su neki od config komplikovaniji nego što smo očekivali, izgleda da se 'working directory' ignoriše, ali raducka i pored toga. Tako verdaccio instanca opstaje između restartovanja servera server, i sama sebe resetuje u slučaju pada nekog procesa vezanog za verdaccio.
## Repositories
## Repozitorijumi
* [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)