Nexus


This page explains how to setup and configure NEXUS Maven repositories.

For Nexus clients see Nexus Maven configuration


Requirements

a) You need to setup Maven


Installation

Create user / group

# Create group
addgroup --system "nexus"
 
# Create Nexus user (home directory must be Nexus)
adduser --home /opt/nexus --disabled-login --disabled-password nexus


Prepare work folder

You need to create a root folder to host all the artifacts. !!! This will be bigger and bigger over time !!!

mkdir -p /home/nexus
chmod -R 777 /home/nexus
chown -R nexus:nexus /home/nexus


Get binaries

Download Nexus OSS as Nexus Open-Source Server - take the ZIP format

cd /opt
wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz
tar xzvf nexus-latest-bundle.tar.gz
rm nexus-latest-bundle.tar.gz
ln -s /opt/nexus-2.11.4-01/ /opt/nexus


Set rights

chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/nexus-2.11.4-01


Set nexus parameters

Adjust the port number and root context path, if required

vim /opt/nexus/conf/nexus.properties


Set:

application-port=9081
application-host=127.0.0.1
nexus-webapp-context-path=/nexus

## Nexus section
## nexus-work ==>> folders where the artifacts are going to be saved. You must choose a folder with a lot of disk!
nexus-work=/home/nexus
runtime=${bundleBasedir}/nexus/WEB-INF


Log symlink

ln -s /opt/nexus/logs/wrapper.log /var/log/nexus.log


Set Nexus user and rights

vim /opt/nexus/bin/nexus


# Set the correct home
NEXUS_HOME="/opt/nexus"

#uncomment and adjust
RUN_AS_USER="nexus"
#The PID directory must be a directory where you the runtime user can Read/Write
PIDDIR="/opt/nexus"


Start / stop server

To start|stop the server:

/opt/nexus/bin/nexus start


ERROR Fix

If you encounter the Failed to start Nexus OSS error, then you need to:

chown -R nexus:nexus /opt/sonatype-work


Run Nexus from anywhere

Set the NEXUS_HOME into the start script. Without it you cannot run Nexus as a service!

ln -s /opt/nexus/bin/nexus /usr/bin/nexus
ln -s /opt/nexus/bin/nexus /etc/init.d/nexus

vim /opt/nexus/bin/nexus


Start Nexus on boot

vim /opt/nexus/bin/nexus


Add the following declaration after the first line #!/bin/sh :

### BEGIN INIT INFO
# Provides:             Nexus
# Required-Start:       $all
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Nexus
### END INIT INFO


Register the program to the boot sequence:

cd /etc/init.d/
update-rc.d nexus defaults



Apache2 proxy

Put the following lines into your Apache2 proxy configuration:


   ## Proxy to NEXUS
   <Location /nexus/ >
       ProxyPass http://localhost:9081/nexus/
       ProxyPassReverse http://localhost:9081/nexus/
       Require all granted
       satisfy any
   </Location>


Nexus server access

You can access your server on http://myServer/nexus/ (Don't forget the end '/')

The default users and passwords are:


login password
admin admin123
deployment deployment123
anonymous


To change the password go to NEXUS > log-in > Security menu (left) > Users