Nexus - универсальный репозиторий для пакетов и аретфактов.
Устанавливаем 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