2017-12-16 13:31:13 +01:00
---
id: uplinks
2018-02-16 19:32:53 +01:00
title: "Uplinks"
2017-12-16 13:31:13 +01:00
---
An *uplink* is a link with an external registry that provides acccess to external packages.
2018-01-21 00:04:36 +01:00
![Uplinks ](/img/uplinks.png )
2017-12-16 13:31:13 +01:00
### Usage
```yaml
uplinks:
npmjs:
url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
server3:
url: http://mirror2.local.net:9000/
baduplink:
url: http://localhost:55666/
```
### Configuration
You can define mutiple uplinks and each of them must have an unique name (key). They can have two properties:
2018-01-21 00:04:36 +01:00
| 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 |
| 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 | avoid cache tarballs | true |
| auth | list | No | type: [bearer,basic], [token: "token",token_env: [true,\<get name process.env\>]] | >= 2.5 | assigns the header 'Authorization' see: http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules | disabled |
| headers | list | No | authorization: "Basic YourBase64EncodedCredentials==" | all | list of custom headers for the uplink | disabled |
2017-12-16 13:31:13 +01:00
### You Must know
2018-01-21 00:04:36 +01:00
* 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 ).
2017-12-16 13:31:13 +01:00
* 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 )