Salta al contenuto principale

File di configurazione

Questo file è il fondamento di verdaccio nel quale è possibile modificare il comportamento predefinito, attivare i plugin ed estendere le funzionalità.

La prima volta in assoluto che si esegue verdaccio viene creato un file di configurazione config.yaml predefinito.

Configurazione Predefinita

La configurazione predefinita dispone del supporto per pacchetti ** scoped** e permette a qualsiasi utente di accedere a tutti i pacchetti ma solo agli utenti autenticati di pubblicare.

storage: ./storage
auth:
htpasswd:
file: ./htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
'**':
proxy: npmjs
logs:
- {type: stdout, format: pretty, level: http}

Sezioni

Le sezioni seguenti spiegano cosa significa ogni proprietà e le diverse opzioni possibili.

Archiviazione

È il percorso di archiviazione predefinito. Verdaccio è di default basato sul file locale di sistema.

storage: ./storage

Estensioni

È il percorso della directory dei plugin. Utile per distribuzioni basate su Docker/Kubernetes.

plugins: ./plugins

Autenticazione

La configurazione d'autenticazione è effettuata qui. L'impostazione dell'autenticazione viene fatta qui, l'autenticazione predefinita è basata su htpasswd ed è incorporata. È possibile modificare questa condotta tramite plugin. Per ulteriori informazioni su questa sezione leggere la pagina dell'autenticazione.

auth:
htpasswd:
file: ./htpasswd
max_users: 1000

Sicurezza

A partire da: verdaccio@4.0.0 #168

Il blocco di sicurezza consente di personalizzare la firma del token. Per abilitare la nuova firma di JWT (json web token) è necessario aggiungere il blocco jwt alla sezione api, web utilizza di default jwt.

La configurazione è divisa in due sezioni, api e web. Per utilizzare JWT sull'api, è necessario definirlo, altrimenti si utilizzerà la firma del token ereditato (aes192). Per JWT è possibile personalizzare la firma e la verifica del token con le proprie configurazioni.

security:
api:
legacy: true
jwt:
sign:
expiresIn: 29d
verify:
someProp: [value]
web:
sign:
expiresIn: 7d # 7 days by default
verify:
someProp: [value]

Consigliamo caldamente di migrare su JWT poiché la firma ereditata (aes192) è deprecata e non sarà presente nelle versioni future.

Server

Un insieme di proprietà per modificare il comportamento dell'applicazione del server, specificamente l'API (Express.js).

È possibile specificare il timeout del server HTTP/1.1 keep alive in secondi per le connessioni entranti. Un valore pari a 0 rende il comportamento del server http simile a quello delle versioni di Node.js precedenti alla 8.0.0, le quali non avevano un timeout keep-alive. WORKAROUND: Tramite la configurazione specificata è possibile risolvere i seguenti problemi https://github.com/verdaccio/verdaccio/issues/301. Impostare su 0 in caso 60 non sia sufficiente.

server:
keepAliveTimeout: 60

Interfaccia Utente Web

Questa proprietà consente di modificare le caratteristiche dell'interfaccia utente web. Per ulteriori informazioni su questa sezione leggere la pagina dell'interfaccia utente web.

web:
enable: true
title: Verdaccio
logo: logo.png
scope:

Uplink è la capacità del sistema di recuperare i pacchetti da registri remoti quando quei pacchetti non sono disponibili localmente. Per ulteriori informazioni su questa sezione leggere la pagina degli uplink.

uplinks:
npmjs:
url: https://registry.npmjs.org/

Pacchetti

La funzione "Pacchetti" consente all'utente di controllare come i pacchetti vengono resi accessibili. Per ulteriori informazioni su questa sezione leggere la pagina dei pacchetti.

packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs

Impostazioni Avanzate

Pubblicazione Non in Linea

Per impostazione predefinita verdaccio non consente di pubblicare quando il client è offline, questa condotta può essere modificata impostandola su true. Questo è sovrascrivibile impostando questo valore a true.

publish:
allow_offline: false
A partire da: verdaccio@2.3.6 paragrafo #223

Prefisso URL

Il prefisso è inteso da esser usato quando il server è eseguito dietro al proxy e non funzionerà propriamente se usato senza una proxy inverso, controlla la pagina di configurazione del proxy inverso per ulteriori dettagli.

url_prefix: /verdaccio/

Verdaccio 5 ha un comportamento del prefisso migliorato e VERDACCIO_PUBLIC_URL è disponibile all'uso, impara come qui.

Dimensione Massima del Corpo

Di default la dimensione massima del corpo per un documento JSON è 10Mb, se incontri errori che dichiarano "entità richiesta troppo grande", potresti aumentare questo valore.

max_body_size: 10mb

Porta in ascolto

verdaccio viene eseguito per impostazione predefinita nella porta 4873. È possibile cambiare la porta tramite cli o nel file di configurazione, le seguenti opzioni sono valide. Le seguenti opzioni sono valide:

listen:
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket

HTTPS

Per abilitare https in verdaccio è sufficiente impostare il listen flag con il protocollo https\://. Per ulteriori informazioni su questa sezione leggere la pagina del ssl.

https:
key: ./path/verdaccio-key.pem
cert: ./path/verdaccio-cert.pem
ca: ./path/verdaccio-csr.pem

Proxy

Se si ha un proxy nella propria rete è possibile impostare un'intestazione di X-Forwarded-For utilizzando le seguenti proprietà.

http_proxy e https_proxy

Questa variabile deve contenere un elenco di estensioni di dominio separate da virgole per cui il proxy non deve essere utilizzato.

http_proxy: http://something.local/
https_proxy: https://something.local/

no_proxy

Questa variabile dovrebbe contenere un elenco separato da virgole di estensioni del dominio per cui il proxy non dovrebbe esser usato.

no_proxy: localhost,127.0.0.1

Notifiche

Abilitare le notifiche di strumenti di terze parti tramite web hook è abbastanza facile. Per ulteriori informazioni su questa sezione leggi la pagina delle notifiche.

notify:
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'

Per impostazioni di configurazione più dettagliate, si prega di controllare il codice sorgente.

Controllo

A partire da: verdaccio@3.0.0

npm audit è un nuovo comando rilasciato con npm 6.x. Verdaccio include un plugin di middleware incorporato per gestire questo comando.

Se disponi di una nuova installazione è di default, altrimenti devi aggiungere le seguenti proprietà al tuo file di configurazione

middlewares:
audit:
enabled: true

Esperimenti

Questa release include una nuova proprietà chiamata esperimenti, posizionabile nel config.yaml e completamente opzionale.

Vogliamo poter spedire nuove cose senza influenzare gli ambienti di produzione. This flag allows us to add new features and get feedback from the community that wants to use them.

Le funzionalità sotto questo flag potrebbero esser instabili o esser rimosse nelle release future.

Ecco un esempio:

esperimenti:
changePassword: false

Per disabilitare l'avviso degli esperimenti nella console, devi commentare l'intera sezione degli esperimenti.