--- id: configuration title: "Файл конфигурации" --- Этот файл является краеугольным камнем verdaccio. В нём вы можете изменить стандартное поведение, включить плагины и расширенные возможности. Стандартный файл конфигурации создаётся при самом первом запуске `verdaccio`. ## Стандартная конфигурация Стандартная конфигурация поддерживает **область видимости (scope)** пакетов и позволяет любым пользователям получить доступ ко всем пакетам, но **только авторизованные пользователи могут публиковать пакеты**. ```yaml storage: ./storage auth: htpasswd: file: ./htpasswd uplinks: npmjs: url: https://registry.npmjs.org/ packages: '@*/*': access: $all publish: $authenticated proxy: npmjs '**': proxy: npmjs logs: - {type: stdout, format: pretty, level: http} ``` ## Разделы Следующие разделы пояснят что означает каждое свойство и его различные опции. ### Хранилище Местоположение хранилища по умолчанию. **По умолчанию Verdaccio определит исходя из локальной файловой системы**. ```yaml storage: ./storage ``` ### Плагины Местоположения директории с плагинами. Полезно при развёртывании при помощи Docker/Kubernetes. ```yaml plugins: ./plugins ``` ### Аутентификация Настройка аутентификация делается здесь. По умолчанию аутентификация основана на `htpasswd` и является встроенной. Вы можете изменить это при помощи [плагинов](plugins.md). Читайте об этом в разделе [Аутентификация](auth.md). ```yaml auth: htpasswd: file: ./htpasswd max_users: 1000 ``` ### Веб интерфейс Эти свойства позволят вам изменить внешний вид веб интерфейса. Читайте об это в разделе [Веб интерфейса](web.md). ```yaml web: enable: true title: Verdaccio logo: logo.png scope: ``` ### Подключения Каналы — это способность системы получать пакетов из удаленных реестров, если эти пакеты не доступны локально. Читайте об этом в разделе [Каналы](uplinks.md). ```yaml uplinks: npmjs: url: https://registry.npmjs.org/ ``` ### Пакеты Секция пакеты позволяет пользователю контролировать доступ к пакетам. Читайте об этом в разделе [Пакеты](packages.md). ```yaml packages: '@*/*': access: $all publish: $authenticated proxy: npmjs ``` ## Расширенные настройки ### Публикация без подключения к сети По умолчанию `verdaccio` не позволяет публиковать пакеты, если у клиента не подключения к сети. Это может быть изменено устновкой данного параметрв в *true*. ```yaml publish: allow_offline: false ``` Начиная с: verdaccio@2.3.6 в связи #223 ### URL приствка ```yaml url_prefix: https://dev.company.local/verdaccio/ ``` Начиная с: `verdaccio@2.3.6` в связи [#197](https://github.com/verdaccio/verdaccio/pull/197) ### Максимальный размер По умолчанию максимальный размер JSON документа `10 Мб`, если вы получаете ошибки типа `"request entity too large"`, то вы можете увеличить это значение. ```yaml max_body_size: 10mb ``` ### Рабочий порт `verdaccio` по умолчанию запускается на порту `4873`. Изменить порт можно при помощи [Интерфейса командной строки](cli.md) или в файле конфигурации. Следующие значения являются правильными. ```yaml listen: # - localhost:4873 # значение по умолчанию # - http://localhost:4873 # тоже самое # - 0.0.0.0:4873 # работа на всех адресах (INADDR_ANY) # - https://example.org:4873 # если нужно использовать https # - "[::1]:4873" # ipv6 # - unix:/tmp/verdaccio.sock # unix socket ``` ### HTTPS Для включения `https` в `verdaccio` достаточно устанновить опцию `listen` в значение с протоколом *https://*. Читайте об этом в разделе [SSL](ssl.md). ```yaml https: key: ./path/verdaccio-key.pem cert: ./path/verdaccio-cert.pem ca: ./path/verdaccio-csr.pem ``` ### Проксирование Прокси сервера, это специально предназначенные сервера для передачи от удалённых серверов к локальным клиентам. #### http_proxy и https_proxy Если в вашей сети используется прокси, вы можете установить `X-Forwarded-For` заголовок использую следующие свойства. ```yaml http_proxy: http://something.local/ https_proxy: https://something.local/ ``` #### no_proxy Это свойство должно содержать разделённый через запятую список доменов, для которых прокси не будет использоваться. ```yaml no_proxy: localhost,127.0.0.1 ``` ### Уведомления Уведомления для сторонних инструментов включаются очень просто через web hooks. Читайте об этом в разделе [Уведомления](notifications.md). ```yaml notify: method: POST headers: [{'Content-Type': 'application/json'}] endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' ``` > Для более детальной настройки, пожалуйста [загляните в исходнй код](https://github.com/verdaccio/verdaccio/tree/master/conf). ### Аудит Начиная с: verdaccio@3.0.0 `npm audit` это новая команда, добавленная в [npm 6.x](https://github.com/npm/npm/releases/tag/v6.1.0). Verdaccio имеет встроенный плагин для обработки этой команды. > Если это у вас вновь созданная конфигурация, то значение будет установлено по умолчанию. Если нет, вам необходимо добавить эти опции в ваши файл конфигурации ```yaml middlewares: audit: enabled: true ```