CI-пайплайн тратит 15 минут на скачивание Maven-зависимостей из внешних репозиториев. Docker Hub режет rate limits, а npm registry падает под нагрузкой. Знакомо? Nexus Repository Manager решает все три проблемы одним инструментом. Он кеширует артефакты после первого запроса, обеспечивает приватный Docker Registry и единую точку входа для всех пакетных менеджеров. Экономия на трафике — до $200 в месяц для средней команды, ускорение сборок — в 90 раз.
Свяжитесь с нами для аудита — оценим вашу инфраструктуру. Наши инженеры имеют 5+ лет опыта в администрировании Nexus в кластерах Kubernetes и на bare-metal.
Как Nexus ускоряет сборку?
Nexus кеширует зависимости после первого скачивания. При повторной сборке артефакты отдаются из локального хранилища. Задержка падает с 15 минут до 10 секунд. Это особенно заметно при частых перезапусках контейнеров в CI.
Типы репозиториев и что когда использовать
Nexus работает с тремя видами репозиториев:
| Тип | Назначение | Пример URL |
|---|---|---|
Proxy |
Зеркалирует внешний источник | maven-central → https://repo1.maven.org/maven2/ |
Hosted |
Хранит ваши артефакты | maven-releases, docker-internal |
Group |
Объединяет proxy и hosted в один endpoint | maven-public (включает releases, snapshots, central) |
Типичная конфигурация для Maven:
maven-public (group)
├── maven-releases (hosted)
├── maven-snapshots (hosted)
└── maven-central (proxy → https://repo1.maven.org/maven2/)В ~/.m2/settings.xml разработчик прописывает только http://nexus.company.com/repository/maven-public/.
Почему стоит выбрать Nexus вместо Artifactory?
Nexus Open Source — бесплатен и не требует лицензирования. Он проще в настройке: для базового сценария нужно в 2 раза меньше времени, чем с Artifactory. При этом функционала достаточно для большинства средних компаний. Поддерживает Maven, npm, Docker, PyPI и другие.
Сравнение лицензий: Artifactory Pro стоит от $12,000 в год за 5 пользователей, Nexus OSS — $0. Разница в производительности незначительна при одинаковых ресурсах.
Установка и минимальная конфигурация
Nexus OSS распространяется как tar.gz и как Docker-образ. Для production рекомендуем Docker с внешним volume под данные:
version: "3"
services:
nexus:
image: sonatype/nexus3:3.68.0
volumes:
- nexus-data:/nexus-data
ports:
- "8081:8081"
- "8082:8082" # Docker registry port
environment:
- INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m
restart: unless-stopped
volumes:
nexus-data:Параметры JVM критичны. Согласно документации Sonatype, рекомендуется выделять Nexus не менее 2/3 доступной RAM — при 8 ГБ на хосте ставим -Xmx4g. Недостаток памяти проявляется в OutOfMemoryError: Direct buffer memory при интенсивной работе с Docker registry.
Начальный пароль после первого запуска находится в /nexus-data/admin.password.
Настройка Docker Registry
Nexus может выступать как Docker registry — hosted для своих образов и proxy для Docker Hub (обходим rate limits):
docker-hub (proxy → https://registry-1.docker.io) → порт 8083
docker-internal (hosted) → порт 8082
docker-all (group) → порт 8084Каждый Docker-репозиторий требует отдельного HTTP-порта — это ограничение протокола Docker Registry v2. В Nginx добавляем location для каждого порта или используем поддомены.
Авторизация в CI:
docker login nexus.company.com:8082 -u ci-user -p $NEXUS_PASSWORD docker push nexus.company.com:8082/myapp:1.0.0 Безопасность и роли
По умолчанию Nexus создаёт роли nx-admin, nx-anonymous, nx-deploy. Для production минимально нужно:
- Отключить anonymous access (Administration → Security → Anonymous Access).
- Создать отдельные роли для CI (
nx-deploy-roleс правами на конкретные репозитории) и разработчиков (read-only на proxy-репозитории). - Настроить LDAP-интеграцию для корпоративной аутентификации.
Права назначаются на уровне репозитория через Repository Content Selectors — можно ограничить CI-пользователя только определёнными группами пакетов.
Сравнение Nexus OSS и Pro
| Функция | OSS | Pro |
|---|---|---|
| Цена | Бесплатно | От $12,000/год |
| Хранилище артефактов | Maven, npm, Docker, PyPI, NuGet | Всё, что в OSS + RAW, APT, YUM |
| Роли и безопасность | LDAP, RBasic | LDAP, SAML, SSO, Crowd |
| Cleanup Policies | Вручную через UI | Автоматические политики + расписание |
| Storage Quotas | Нет | Есть (лимиты на проект) |
Для большинства компаний OSS-версии достаточно. Pro оправдан при строгих compliance-требованиях или необходимости интеграции с SAML.
Очистка артефактов и Cleanup Policies
Без политик очистки Nexus неограниченно растёт. Создаём Cleanup Policy:
-
maven-snapshots-cleanup: удалять SNAPSHOT-артефакты старше 30 дней, к которым не обращались более 7 дней. -
docker-cleanup: удалять Docker-образы без тегов (untagged) старше 7 дней.
Политики применяются к репозиториям в Administration → Repository → Cleanup Policies. Задача Cleanup service запускается по расписанию (по умолчанию — раз в сутки).
После cleanup обязательно запускать Compact Blob Store — иначе диск не освободится, данные просто помечаются как удалённые.
План настройки Nexus
- Выбрать версию Nexus (OSS или Pro).
- Развернуть контейнер с помощью Docker.
- Настроить транспорт: HTTP порты, TLS.
- Создать proxy-репозиторий для целевого пакетного реестра.
- Создать hosted и group репозитории.
- Настроить пользователей и роли.
- Применить Cleanup Policies.
Что входит в настройку под ключ
- Установка и базовая конфигурация Nexus (Docker, volume, JVM).
- Настройка proxy-репозиториев для Maven, npm, Docker, PyPI.
- Настройка hosted-репозиториев для ваших артефактов.
- Настройка группы для единого endpoint.
- Docker Registry (hosted, proxy, group) с отдельными портами.
- Интеграция LDAP для корпоративной аутентификации.
- Создание ролей и политик безопасности.
- Cleanup policies и автоматическая очистка.
- Документация и обучение команды (1–2 часа).
Мы гарантируем стабильную работу и сопровождение после внедрения. Закажите настройку Nexus — получите консультацию инженера.
Пример `.m2/settings.xml` для Maven
<settings>
<mirrors>
<mirror>
<id>nexus-maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus.company.com/repository/maven-public/</url>
</mirror>
</mirrors>
</settings> Сроки
| Задача | Срок |
|---|---|
| Установка + базовая конфигурация | 4-8 часов |
| Настройка Maven/npm proxy и hosted | 4-8 часов |
| Docker registry с Nginx | 4-8 часов |
| LDAP интеграция + роли | полдня |
| Cleanup policies + мониторинг | полдня |
Полный setup под production — 1-3 дня. Стоимость рассчитывается после аудита инфраструктуры.







