Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

Nexus Repository Manager — prywatne repozytorium artefaktów

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS i serwery

Każdy build Java pobiera dziesiątki JAR-ów z Maven Central, build Node.js tysiące pakietów z npmjs.com, build Python — z PyPI. Bez cachowania budowanie offline jest niemożliwe, a przy CI każdy cold start trwa minuty. Nexus Repository Manager rozwiązuje ten problem przez proxy + caching zewnętrznych repozytoriów i hosting prywatnych bibliotek. Jeden Nexus w organizacji zastępuje lokalne cache na każdej maszynie i gwarantuje reprodukowalność buildów. Ten artykuł pokazuje instalację przez Docker, konfigurację repozytoriów Maven, npm i Docker, oraz cleanup policies.

Instalacja Nexus przez Docker

Nexus 3 dostępny jest jako obraz Docker sonatype/nexus3. Wymaga minimum 4 GB RAM ze względu na JVM. Dane persistujemy przez named volume.

# docker-compose.yml
version: "3.9"
services:
  nexus:
    image: sonatype/nexus3:latest
    container_name: nexus
    restart: unless-stopped
    ports:
      - "8081:8081"     # UI i Maven/npm/PyPI
      - "8082:8082"     # Docker registry (proxy)
      - "8083:8083"     # Docker registry (hosted)
    volumes:
      - nexus-data:/nexus-data
    environment:
      - INSTALL4J_ADD_VM_PARAMS=-Xms2g -Xmx4g -XX:MaxDirectMemorySize=4g
    ulimits:
      nofile:
        soft: 65536
        hard: 65536

volumes:
  nexus-data:

# docker compose up -d
# Odczytaj haslo admina:
# docker exec nexus cat /nexus-data/admin.password
# Otwórz http://twoj-ip:8081 → zaloguj sie admin / haslo z powyzszego

Konfiguracja repozytoriów Maven

Nexus używa trzech typów repozytoriów: proxy (lustro zewnętrznego repo), hosted (własne artefakty) i group (agregacja wielu repo za jednym URL). Standardowy setup Maven w Nexus to: proxy Maven Central + hosted releases + hosted snapshots + group łącząca wszystkie trzy.

# W UI Nexus: Administration → Repository → Repositories → Create repository

# 1. maven2 (proxy) — Maven Central
#    Name: maven-central-proxy
#    Remote storage: https://repo1.maven.org/maven2/
#    Blob store: default

# 2. maven2 (hosted) — prywatne release
#    Name: maven-releases
#    Version policy: Release

# 3. maven2 (hosted) — snapshoty
#    Name: maven-snapshots
#    Version policy: Snapshot

# 4. maven2 (group) — wszystko razem
#    Name: maven-public
#    Members: maven-releases, maven-snapshots, maven-central-proxy

# ~/.m2/settings.xml — konfiguracja Maven
<settings>
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://nexus.example.com:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <servers>
    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>haslo-nexus</password>
    </server>
  </servers>
</settings>

Konfiguracja npm i PyPI proxy

# npm proxy w Nexus:
# Repository → npm (proxy)
# Name: npm-proxy
# Remote storage: https://registry.npmjs.org

# Konfiguracja lokalnego npm klienta:
npm config set registry http://nexus.example.com:8081/repository/npm-proxy/
# Z autentykacja:
npm config set //nexus.example.com:8081/repository/npm-proxy/:username admin
npm config set //nexus.example.com:8081/repository/npm-proxy/:_password BASE64_HASLO

# Lub .npmrc w projekcie:
# registry=http://nexus.example.com:8081/repository/npm-proxy/

# PyPI proxy w Nexus:
# Repository → pypi (proxy)
# Name: pypi-proxy
# Remote storage: https://pypi.org

# Konfiguracja pip:
# ~/.pip/pip.conf
[global]
index-url = http://nexus.example.com:8081/repository/pypi-proxy/simple/
trusted-host = nexus.example.com

# Lub przez argument:
# pip install requests --index-url http://nexus.example.com:8081/repository/pypi-proxy/simple/

Docker Registry w Nexus

# Nexus jako Docker Registry wymaga osobnych portów per repo!
# Repository → docker (proxy)
# Name: docker-hub-proxy
# HTTP port: 8082
# Remote storage: https://registry-1.docker.io
# Use Docker Hub: tak

# Repository → docker (hosted)
# Name: docker-private
# HTTP port: 8083

# Na hoście klienta Docker (/etc/docker/daemon.json):
{
  "insecure-registries": ["nexus.example.com:8082", "nexus.example.com:8083"]
}

# Uzycie
docker login nexus.example.com:8083
docker tag myapp:latest nexus.example.com:8083/myapp:latest
docker push nexus.example.com:8083/myapp:latest

# Pull przez proxy Docker Hub (bez rate limitu)
docker pull nexus.example.com:8082/library/nginx:alpine

Cleanup policies i zarządzanie miejscem

Kryterium Opis Typowa wartość
Last downloaded before Usuń jeśli nie pobierany od N dni 30–90 dni dla proxy
Last modified before Usuń jeśli nie zmieniony od N dni 180 dni dla snapshots
Release type Tylko Releases lub tylko Snapshots Snapshots = agresywniej
Asset name regex Usuń pasujące do wzorca nazwy np. .*-SNAPSHOT.jar
Retain N newest Zachowaj N najnowszych wersji (Pro) 3–5 wersji

Cleanup policies przypisujesz do repozytoriów w ustawieniach Cleanup Policy. Uruchamiane są przez scheduled task Cleanup service — możesz go skonfigurować w Administration → Tasks. Po uruchomieniu cleanup, usuń fizycznie komponenty przez task Compact blob store — inaczej miejsce na dysku się nie zwolni.

Najczęstsze pytania

Do czego służy Nexus Repository Manager? +
Nexus Repository Manager (Sonatype) to prywatny menedżer artefaktów obsługujący Maven/Gradle (Java), npm (JavaScript/TypeScript), PyPI (Python), Docker, Helm, NuGet (.NET), Go i inne. Pozwala cachować zewnętrzne repozytoria (Maven Central, npmjs.com), hostować prywatne biblioteki i zarządzać cyklem życia artefaktów. Nexus OSS jest bezpłatny, Nexus Pro dodaje HA, zaawansowane polityki i staging.
Czym różni się Nexus od Artifactory? +
Oba narzędzia pełnią tę samą funkcję — prywatny menedżer artefaktów. Nexus OSS jest bezpłatny i open-source z szerokim wsparciem formatów. JFrog Artifactory Open Source jest też bezpłatny, ale ma mniejszy zestaw darmowych formatów (Maven, Gradle, Ivy, Generic). Artifactory Pro jest droższy niż Nexus Pro, ale oferuje bardziej zaawansowane funkcje CI/CD. Nexus dominuje w ekosystemie Java/Maven; oba mają podobne możliwości dla npm i PyPI.
Jak skonfigurować Maven do używania Nexus proxy? +
W pliku ~/.m2/settings.xml dodajesz mirror wskazujący na Nexus jako proxy dla Maven Central. Następnie w settings.xml definiujesz serwer z credentials do Nexus (username/password lub token). Dzięki temu mvn install pobiera zależności z Nexus, który je cachuje — kolejne buildy są szybsze i działają offline. W projekcie w pom.xml możesz też bezpośrednio wskazać Nexus jako repozytorium snapshotów i release.
Co to są cleanup policies w Nexus? +
Cleanup policies to reguły automatycznego usuwania starych artefaktów według kryteriów: wiek (np. nie pobierany od 30 dni), wersja (snapshot starsze niż N dni), regex nazwy. Zapobiegają niekontrolowanemu wzrostowi dysku. W Nexus Pro dostępny jest też Retention Policy — bardziej granularny. Cleanup policies trzeba przypisać do konkretnych repozytoriów i uruchamiają się jako zaplanowane zadania (Tasks → Cleanup Service).

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.