Быть в курсе
Аватарка автора Редакция Рег.облако
ИнструкцииОблако

Установка и использование Nexus Repository для хранения артефактов

15 мая 2026

14 минут

Телеграм

ВКонтакте

Когда проект растет, появляется все больше артефактов: бинарных файлов, Docker‑образов, пакетов Maven, npm и прочего. Без общего хранилища ими неудобно управлять и делиться с командой. Решить проблему поможет Nexus Repository.

Что такое Nexus Repository и зачем он нужен

Sonatype Nexus Repository — это менеджер репозиториев для хранения артефактов: библиотек, пакетов, Docker-образов, сборок приложений и других файлов, которые используются в разработке.

Всё актуальное — в наших соцсетях. Подписывайтесь!

Nexus Repository используют, чтобы:

  • хранить собственные артефакты,
  • кэшировать внешние зависимости,
  • ускорять сборку проектов,
  • снизить зависимость от внешних репозиториев,
  • управлять доступами и версиями пакетов,
  • разделять промежуточные и финальные сборки.

Nexus часто подключают к Maven, Gradle, npm, Docker, NuGet и PyPI. Это удобно для CI/CD: сборки быстрее получают нужные зависимости, а готовые артефакты хранятся в одном централизованном хранилище.

Версии Nexus Repository

У Nexus Repository есть несколько версий:

  1. Community Edition — бесплатная редакция для команд, которым нужно базовое хранилище артефактов. 
  2. Pro Edition — коммерческая редакция для распределенных команд и более сложной инфраструктуры. 
  3. Nexus Repository + Repository Firewall — вариант, который блокирует небезопасные компоненты еще до того, как они попадут в репозиторий или сборку.

Системные требования и подготовка к установке

Для Nexus Repository нужна серверная инфраструктура — там будут храниться артефакты, зависимости и Docker‑образы. Быстро запустить его поможет облачный сервер от Рег.облака: его можно легко развернуть под тестовый или рабочий Nexus, а при росте нагрузки — увеличить ресурсы без переноса системы.

Перед установкой подготовьте:

  • ОС: Linux-сервер, например Ubuntu, Debian, AlmaLinux или Rocky Linux. Nexus Repository также поддерживает Windows и macOS, но для серверной установки чаще выбирают Linux; 
  • процессор: от 2 vCPU;
  • оперативная память: от 8 ГБ RAM. Часть памяти нужно оставить системе, не выделяя все под Nexus;
  • диск: от 20 ГБ для тестового стенда. Для рабочей среды объем лучше рассчитывать с запасом; 
  • Java: для актуальных версий требуется Java 21, но в официальные пакеты Nexus Repository уже входит рекомендуемая JVM. 

Установка Nexus Repository на Linux

  1. Сначала создайте отдельного пользователя для Nexus:
  1. Создайте директорию для установки:
  1. Скачайте архив Nexus Repository. В руководстве мы будем устанавливать версию 3.91.1-04 для Linux x86-64:
  1. Распакуйте архив в каталог /opt/sonatype:
  1. Создайте символическую ссылку /opt/sonatype/nexus, чтобы в дальнейшем не привязывать команды к конкретному номеру версии:
  1. Назначьте владельцем каталогов пользователя nexus:
  1. Укажите пользователя, от имени которого будет запускаться Nexus Repository. В версиях 3.80 и новее файл nexus.rc может отсутствовать в архиве, поэтому его можно создать вручную:
  1. Создайте unit-файл:
  1. Запустите службу:
  1. Проверьте статус:

Веб-интерфейс Nexus Repository будет доступен по адресу:

Первичный пароль администратора хранится в файле admin.password в каталоге данных Nexus. После первого входа его нужно заменить.

Если веб-интерфейс не открывается, проверьте, запущена ли служба, открыт ли порт 8081 и нет ли ошибок в журнале.

Установка Nexus Repository через Docker

Официальный образ доступен в Docker Hub. По умолчанию веб-интерфейс работает на порту 8081. 

Для быстрого запуска Nexus можно использовать готовое Docker-окружение. В Рег.облаке Docker доступен как готовый образ для облачного сервера. Это позволяет быстрее развернуть контейнерную инфраструктуру и перейти к настройке самого Nexus.

  1. Создайте постоянный том Docker для данных Nexus:
  1. Запустите контейнер:

Каталог /nexus-data используется для настроек, логов и хранилища артефактов. Sonatype рекомендует использовать постоянное хранилище для Nexus, а не держать данные только внутри контейнера.

  1. Проверьте, что контейнер запущен:

Посмотреть логи можно командой:

  1. Первый запуск может занять несколько минут. После старта веб-интерфейс будет доступен по адресу:

Базовый логин — admin. Первый пароль администратора создается автоматически. Его можно запросить командой:

Чтобы остановить контейнер, лучше дать Nexus больше времени на корректное завершение работы базы данных:

Для повторного запуска используйте:

Установка Nexus Repository на Windows

Nexus Repository можно установить на Windows из ZIP-архива. Sonatype не рекомендует размещать Nexus в Program Files, а установщик службы не поддерживает пробелы в пути. 

  1. Скачайте архив Nexus Repository для Windows с сайта Sonatype и распакуйте его в C:\nexus

Пример через PowerShell (обязательно открывайте от имени администратора!):

  1. Перейдите в каталог bin распакованного Nexus:
  1. Установите Nexus Repository как службу Windows:
  1. Запустите службу:

Веб-интерфейс будет доступен по адресу:

Если Nexus установлен на удаленном сервере, вместо localhost укажите IP-адрес или доменное имя сервера.

Войдя в интерфейс, используйте логин admin и укажите временный пароль из файла:

Если команда использует контейнеры, Nexus можно связать с Kubernetes-инфраструктурой: хранить Docker-образы в Nexus и затем использовать их в пайплайнах развертывания. Кластеры Kubernetes в Рег.облаке помогают быстрее создавать и масштабировать контейнерные окружения без ручной настройки всей инфраструктуры с нуля.

Начальная настройка Nexus Repository

Когда вы впервые войдете в веб-интерфейс, Nexus запустит мастер первичной настройки:

Сначала задайте новый пароль для пользователя admin. Используйте надежный пароль и сохраните его в безопасном месте:

Затем нажмите Next в информационном окне и перейдите к следующему шагу:

Примите лицензионное соглашение: нажмите Agree, чтобы продолжить настройку:

Далее Nexus предложит выбрать режим анонимного доступа:

  • Enable anonymous access — пользователи смогут искать, просматривать и скачивать артефакты без логина и пароля;
  • Disable anonymous access — для работы с репозиториями потребуется авторизация.

Лучше отключить анонимный доступ. Так вы сможете контролировать, кто скачивает и публикует артефакты.

Готово. Nexus покажет сообщение об успешном завершении настройки:

Типы репозиториев

В Nexus Repository можно создавать разные типы репозиториев:

  1. Hosted — локальный репозиторий внутри Nexus. В него загружают собственные артефакты компании. 
  2. Proxy — прокси-репозиторий для внешних источников. Nexus обращается к внешнему репозиторию, скачивает нужный артефакт и сохраняет его в локальном кэше. 
  3. Group — группа репозиториев, которая объединяет несколько хостинговые и прокси-репозитории под одним URL. 

Создание репозиториев 

Откройте раздел Settings:

Перейдите в Repository → Repositories и нажмите Create repository:

Nexus покажет список доступных форматов и типов репозиториев: Maven, npm, Docker, PyPI, NuGet и другие:

При создании hosted-репозитория укажите:

  • Name — понятное имя репозитория, например maven-releases;
  • Version policy — тип версий: Release или Snapshot;
  • Deployment policy — можно ли загружать артефакты повторно;
  • Blob store — хранилище, где будут лежать файлы репозитория.

Для proxy-репозитория дополнительно укажите адрес внешнего источника. Nexus будет скачивать зависимости оттуда и сохранять их в локальном кэше:

Для group-репозитория выберите, какие репозитории войдут в группу:

Например, для Maven часто создают три репозитория:

  1. maven-releases — hosted-репозиторий для стабильных версий.
  2. maven-snapshots — hosted-репозиторий для промежуточных сборок.
  3. maven-public — group-репозиторий, который объединяет локальные и внешние источники.

Заполнив параметры, нажмите Create repository. Новый репозиторий появится в списке:

Его URL можно скопировать из карточки репозитория и указать в Maven, Gradle, npm, Docker или другом инструменте сборки.

Как загружать артефакты в Nexus

Перейдите в Browse и выберите нужный hosted-репозиторий. Нажмите Upload component:

Укажите файл артефакта и его параметры:

Для Maven-артефактов нужно указать:

  • Group ID — группа проекта, например ru.example;
  • Artifact ID — имя артефакта, например demo-app;
  • Version — версия, например 1.0.0;
  • Packaging — тип файла, например .jar;
  • сам файл артефакта.

Нажмите Upload, чтобы загрузить файл.

Очистка и управление артефактами

Со временем в Nexus Repository накапливаются старые сборки, snapshot‑версии, неиспользуемые пакеты и Docker‑образы — это приводит к быстрому росту занимаемого места. Чтобы избежать проблемы, настройте правила очистки:

  1. Перейдите в SettingsRepositoryCleanup Policies. Нажмите Create Cleanup Policy, чтобы создать политику очистки:
  1. Задайте имя, формат и условия: например, для промежуточных сборок — удаление компонентов, которые не загружались 30 дней, а для Docker‑образов — удаление неиспользуемых тегов. Сохраните изменения: 
  1. Привяжите политику к репозиторию: в Repository → Repositories откройте нужный репозиторий, в настройках выберите поле Cleanup policies и укажите созданное правило. Затем сохраните изменения:
  1. Настройте регулярное выполнение очистки: в System → Tasks создайте задачу Cleanup repositories using their associated policies и задайте расписание (например, раз в день ночью или раз в неделю в период минимальной нагрузки).
  2. Освободите место в blob‑хранилище: в разделе Tasks запустите задачу Compact blob store — она окончательно удалит из хранилища данные, уже исключенные из репозиториев.

Резервные копии Nexus, архивы логов и выгрузки удобно хранить отдельно от основного сервера. Для этого можно использовать объектное хранилище S3 от Рег.облака: оно подходит для хранения данных в виде объектов, поддерживает работу с бакетами и совместимо с привычными S3-инструментами.

Безопасность и контроль доступа

Откройте Settings → Security:

Сначала лучше создать отдельные роли, а затем назначать их пользователям. Так проще управлять правами, особенно если с Nexus работает несколько команд.

Основные разделы настройки доступа:

  • Privileges — отдельные разрешения на чтение, публикацию, удаление и администрирование;
  • Roles — настройка ролей и наборов прав;
  • Users — создание и редактирование пользователей;
  • Anonymous Access — управление доступом без авторизации.

Взглянем на них по отдельности. 

Privileges 

Как правило, создавать привилегии вручную не нужно: Nexus уже формирует набор прав для репозиториев. Например, для репозитория maven-snapshots можно найти права на чтение, публикацию и удаление.

Roles 

Чтобы создать роль, нажмите Create role

Выберите Nexus role, укажите идентификатор роли (например developers-snapshots) и понятное название: 

Добавьте нужные привилегии — например, для разработчиков, которые должны загружать snapshot-версии, можно добавить права для репозитория maven-snapshots: просмотр (browse), чтение (read) и добавление (add).

Права на редактирование (edit) и удаление (delete) лучше не добавлять без необходимости. Так пользователи смогут публиковать новые промежуточные версии, но не смогут менять или удалять уже загруженные артефакты.

Users 

Чтобы создать пользователя, нажмите Create local user:

Укажите логин, имя, электронную почту, пароль и статус пользователя. Затем назначьте ему одну или несколько ролей:

Anonymous Access 

Если Nexus хранит приватные артефакты, анонимный доступ лучше отключить. Для этого снимите флажок Allow anonymous users to access the server и сохраните настройки. Возможно, вы уже сделали это при начальной настройке.

Настройка HTTPS

Для боевой среды Nexus Repository лучше открывать по HTTPS. Самый удобный вариант — поставить перед Nexus reverse proxy, например Nginx. В этом случае Nexus продолжает работать на внутреннем порту 8081, а пользователи обращаются к нему по стандартному HTTPS-порту 443. 

Установите Nginx:

Создайте конфигурацию для Nexus:

Добавьте настройки:

Вместо nexus.example.ru укажите домен, который будет использоваться для доступа к Nexus.

Активируйте конфигурацию и проверьте ее:

Выпустите SSL-сертификат, например через Certbot:

Certbot добавит HTTPS-настройки в конфигурацию Nginx и настроит переадресацию с HTTP на HTTPS. После выпуска сертификата Nexus будет доступен по адресу:

Если вы используете Nexus для Docker‑репозиториев, обязательно включите HTTPS: Docker‑клиенты по умолчанию требуют защищенное соединение. Для нескольких репозиториев Sonatype советует настроить обратный прокси — с разными портами или поддоменами.

Все настроив, проверьте вход в веб-интерфейс, загрузку артефактов и работу инструментов сборки. В конфигурациях Maven, Gradle, npm, Docker и CI/CD замените старый адрес http://<IP>:8081 на новый HTTPS-адрес.

Вывод: как эффективно использовать Nexus

Nexus Repository помогает хранить артефакты, кэшировать зависимости и управлять пакетами в DevOps. Но чтобы использовать его эффективно, продумайте структуру репозиториев: разделите промежуточные и финальные сборки, используйте прокси‑репозитории для внешних зависимостей и объединяйте их в групповые репозитории. Настройте роли и сервисные аккаунты для CI/CD, задайте политики очистки и регулярные задачи обслуживания. Так система останется удобной, безопасной и не займет слишком много места на диске.

Частые вопросы

Что такое Nexus Repository и зачем он нужен?

Nexus Repository — это хранилище артефактов: библиотек, пакетов, Docker-образов и сборок приложений. Он нужен, чтобы хранить зависимости и результаты сборки в одном месте, ускорять CI/CD и меньше зависеть от внешних репозиториев.

Чем Nexus отличается от Git-репозитория?

Git хранит исходный код и историю его изменений. Nexus хранит готовые артефакты: собранные JAR, WAR, NPM-пакеты, Docker-образы, архивы и другие файлы, которые используются после сборки.

Можно ли использовать Nexus бесплатно?

Да, Community Edition доступен бесплатно и подходит для базового хранения артефактов и интеграции с CI/CD.

Какие порты использует Nexus?

По умолчанию веб-интерфейс Nexus работает на порту 8081. При настройке HTTPS через обратный прокси обычно используют стандартные порты 80 и 443. Для Docker-репозиториев можно назначать отдельные порты.

Можно ли хранить Docker-образы в Nexus?

Да, Nexus Repository можно использовать как Docker Registry: хранить собственные образы, проксировать запросы к внешним реестрам и объединять репозитории.

Можно ли использовать Nexus в облаке?

Да, вы можете развернуть Nexus на облачном сервере. 

Новые статьи