Nexus - универсальный репозиторий для пакетов и аретфактов.

Setup Nexus on Ubuntu 18.04

Устанавливаем JVM и nginx:

sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install openjdk-8-jre nginx

Создаем пользователя, от имени которого будет работать Nexus:

sudo useradd -M -r -s /dev/null nexus

Создаем директорию, где будет лежать Nexus:

sudo mkdir /opt/nexus

Скачиваем Nexus (возможно лучше скачать с сайта)

wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.19.1-01-unix.tar.gz

Переносим в нее архив и распаковываем:

sudo mv ./nexus-3.19.1-01-unix.tar.gz /opt/nexus/
cd /opt/nexus
sudo tar -xvf ./nexus-3.19.1-01-unix.tar.gz

Указываем в конфигурации Nexus от имени какого пользователя он будет работать:

echo 'run_as_user="nexus"' > /opt/nexus/nexus-3.19.1-01/bin/nexus.rc

даем права пользователю nexus на файлы в папках:

sudo chown nexus:nexus /opt/nexus/ -R

Создаем файл для запуска Nexus как сервиса:

cat <<EOF | sudo tee /lib/systemd/system/nexus.service
[Unit]
Description=nexus service
After=network.target
  
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/nexus-3.19.1-01/bin/nexus start
ExecStop=/opt/nexus/nexus-3.19.1-01/bin/nexus stop
User=nexus
Restart=on-abort
  
[Install]
WantedBy=multi-user.target
EOF

Включаем и стартуем сервис:

sudo systemctl daemon-reload
sudo systemctl enable nexus.service
sudo systemctl start nexus.service
sudo systemctl status nexus.service

Создаем конфигурацию сайта в nginx:

cat <<EOF | sudo tee ls /etc/nginx/sites-available/default
  server {
    listen   *:80;
    #server_name  www.example.com;

    # allow large uploads of files
    client_max_body_size 1G;

    # optimize downloading files larger than 1G
    #proxy_max_temp_file_size 2G;

    location / {
      # Use IPv4 upstream address instead of DNS name to avoid attempts by nginx to use IPv6 DNS lookup
      proxy_pass http://127.0.0.1:8081/;
      proxy_set_header Host \$host;
      proxy_set_header X-Real-IP \$remote_addr;
      proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
    }
  }
EOF

И перезагружаем конфигурацию nginx:

sudo service nginx reload