Nexus: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
<source lang="bash">
scp /Users/chorke/Downloads/nexus-3.22.1-02-unix.tar.gz [email protected]:~
cd /usr/local/
sudo tar -xvzf /home/pi/nexus-3.22.1-02-unix.tar.gz
sudo ln -s nexus-3.22.1-02 nexus
cd nexus/bin/
./nexus status
</source>
==CentOS==
<source lang="bash">
cd /opt; tar -xvzf nexus-3.22.1-02-unix.tar.gz
ln -s /opt/nexus-3.22.1-02 /var/nexus
mkdir /var/sonatype-work
vim /var/nexus/bin/nexus.rc
useradd nexus --shell=/sbin/nologin
chown -R nexus:nexus /var/sonatype-work
chown -R nexus:nexus /var/nexus
vim /var/nexus/bin/nexus.vmoptions
vim /etc/systemd/system/nexus.service
</source>
<source lang="ini">
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
User=nexus
Group=nexus
ExecStart=/var/nexus/bin/nexus start
ExecStop=/var/nexus/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
</source>
<source lang="bash">
chkconfig nexus on
systemctl enable nexus
systemctl enable nexus.service
systemctl start nexus
</source>
==Docker==
===Config===
{|
{|
| valign="top" |
| valign="top" |
Line 59: Line 8:
  export NEXUS_HOME=$HOME/nexus
  export NEXUS_HOME=$HOME/nexus
|}
|}
 
{| class="wikitable sortable"
===Volume===
|-
! Local location !! Container location  !! Usage
|-
| <code>$NEXUS_HOME/nexus3/nexus-data</code> || <code>/nexus-data</code> || Nexus data
|}
<source lang="bash">
<source lang="bash">
docker run -it --rm \
docker run -it --rm \
Line 73: Line 26:
  chown -R 200:200 $NEXUS_HOME/nexus3/nexus-data/
  chown -R 200:200 $NEXUS_HOME/nexus3/nexus-data/


{| class="wikitable sortable"
|-
! Local location !! Container location  !! Usage
|-
| <code>$NEXUS_HOME/nexus3/nexus-data</code> || <code>/nexus-data</code> || For storing nexus data
|}
===Install===
<source lang="bash">
docker pull sonatype/nexus3:3.26.0
docker run -d -p 8081:8081 --name nexus sonatype/nexus3:3.26.0
docker run -d -p 8081:8081 --name nexus -e NEXUS_CONTEXT=nexus sonatype/nexus3:3.26.0
</source>


<source lang="bash">
==Docker==
<source lang="bash" highlight="7,8">
docker run --detach \
docker run --detach \
--env NEXUS_CONTEXT=nexus \
--env NEXUS_CONTEXT=nexus \
Line 100: Line 41:


<source lang="bash">
<source lang="bash">
docker logs nexus
docker exec -it nexus bash
docker exec -it nexus bash
echo $(cat /nexus-data/admin.password)
echo $(cat /nexus-data/admin.password)
Line 107: Line 47:
docker start nexus
docker start nexus
docker stop nexus
docker stop nexus
docker logs nexus
</source>
</source>


==Proxy for Https==
==Apache==
<source lang="apache" highlight="6">
<source lang="apache" highlight="6">
<Location /nexus>
<Location /nexus>
Line 120: Line 61:
</source>
</source>


==Proxy for Docker==
<source lang="bash">
<source lang="bash">
touch /etc/apache2/sites-enabled/01-{hub,reg}.chorke.org.conf
touch /etc/apache2/sites-enabled/01-{hub,reg}.chorke.org.conf
Line 127: Line 67:
</source>
</source>


===Group===
==Group==
'''HTTP:'''
===HTTP===
----
----
<source lang="apache" highlight="3-5,27-30">
<source lang="apache" highlight="3-5,27-30">
Line 165: Line 105:
</source>
</source>


'''HTTPS:'''
===HTTPS===
----
----
<source lang="apache" highlight="4-7,12,29-35,37-40">
<source lang="apache" highlight="4-7,12,29-35,37-40">
Line 213: Line 153:
</source>
</source>


===Hosted===
==Private==
'''HTTP:'''
===HTTP===
----
----
<source lang="apache" highlight="3-5,27-30">
<source lang="apache" highlight="3-5,27-30">
Line 250: Line 190:
EOF
EOF
</source>
</source>
'''HTTPS:'''
 
===HTTPS===
----
----
<source lang="apache" highlight="4-7,12,29-35,37-40">
<source lang="apache" highlight="4-7,12,29-35,37-40">

Revision as of 18:36, 25 August 2020

Linux:
export NEXUS_HOME=/srv/nexus
MacOS:
export NEXUS_HOME=$HOME/nexus
Local location Container location Usage
$NEXUS_HOME/nexus3/nexus-data /nexus-data Nexus data
docker run -it --rm \
--env NEXUS_CONTEXT=nexus \
--publish 8081:8081 \
sonatype/nexus3:3.22.0 \
bin/bash
id; exit
mkdir -p $NEXUS_HOME/nexus3/nexus-data/
chown -R 200:200 $NEXUS_HOME/nexus3/nexus-data/


Docker

docker run --detach \
--env NEXUS_CONTEXT=nexus \
--publish 8081:8081 \
--publish 8082:8082 \
--publish 8083:8083 \
--name nexus \
--restart always \
--volume $NEXUS_HOME/nexus3/nexus-data:/nexus-data \
sonatype/nexus3:3.26.0
docker exec -it nexus bash
echo $(cat /nexus-data/admin.password)
exit

docker start nexus
docker stop nexus
docker logs nexus

Apache

<Location /nexus>
    Order Allow,Deny
    Allow from all
    ProxyPass http://localhost:8081/nexus nocanon
    ProxyPassReverse http://localhost:8081/nexus
    RequestHeader set X-Forwarded-Proto "https"
</Location>
touch /etc/apache2/sites-enabled/01-{hub,reg}.chorke.org.conf
touch /etc/apache2/sites-enabled/01-{hub,reg}.chorke.org-le-ssl.conf
mkdir -p /var/chorke/www/{hub,reg}.chorke.org/html/.well-known/acme-challenge/

Group

HTTP


cat <<EOF >> /etc/apache2/sites-enabled/01-hub.chorke.org.conf
<VirtualHost *:80>
    ProxyRequests Off
    ProxyPreserveHost On
    AllowEncodedSlashes Off

    ServerAlias hub.chorke.org
    ServerAdmin [email protected]
    ServerName www.hub.chorke.org
    DocumentRoot /var/chorke/www/hub.chorke.org/html
    ErrorLog /var/chorke/www/hub.chorke.org/error.log
    CustomLog /var/chorke/www/hub.chorke.org/requests.log combined

    <Directory "/var/chorke/www/hub.chorke.org/">
        AllowOverride None
        Require all granted
    </Directory>

    <Directory "/var/chorke/www/hub.chorke.org/html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>

    #RewriteEngine on
    #RewriteCond %{SERVER_NAME} =www.hub.chorke.org [OR]
    #RewriteCond %{SERVER_NAME} =hub.chorke.org
    #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
EOF

HTTPS


cat <<EOF >> /etc/apache2/sites-enabled/01-hub.chorke.org-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    SSLProxyEngine On
    ProxyRequests Off
    ProxyPreserveHost On
    AllowEncodedSlashes Off

    ServerAlias hub.chorke.org
    ServerAdmin [email protected]
    ServerName www.hub.chorke.org
    DocumentRoot /var/chorke/www/hub.chorke.org/html
    ErrorLog /var/chorke/www/hub.chorke.org/error.log
    CustomLog /var/chorke/www/hub.chorke.org/requests.log combined

    <Directory "/var/chorke/www/hub.chorke.org/">
        AllowOverride None
        Require all granted
    </Directory>

    <Directory "/var/chorke/www/hub.chorke.org/html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>

    <Location />
        Order Allow,Deny
        Allow from all
        ProxyPass http://localhost:8082/ nocanon
        ProxyPassReverse http://localhost:8082/
        RequestHeader set X-Forwarded-Proto "https"
    </Location>

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/hub.chorke.org/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/hub.chorke.org/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/hub.chorke.org/chain.pem
</VirtualHost>
</IfModule>
EOF

Private

HTTP


cat <<EOF >> /etc/apache2/sites-enabled/01-reg.chorke.org.conf
<VirtualHost *:80>
    ProxyRequests Off
    ProxyPreserveHost On
    AllowEncodedSlashes Off

    ServerAlias reg.chorke.org
    ServerAdmin [email protected]
    ServerName www.reg.chorke.org
    DocumentRoot /var/chorke/www/reg.chorke.org/html
    ErrorLog /var/chorke/www/reg.chorke.org/error.log
    CustomLog /var/chorke/www/reg.chorke.org/requests.log combined

    <Directory "/var/chorke/www/reg.chorke.org/">
        AllowOverride None
        Require all granted
    </Directory>

    <Directory "/var/chorke/www/reg.chorke.org/html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>

    #RewriteEngine on
    #RewriteCond %{SERVER_NAME} =www.reg.chorke.org [OR]
    #RewriteCond %{SERVER_NAME} =reg.chorke.org
    #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
EOF

HTTPS


cat <<EOF >> /etc/apache2/sites-enabled/01-reg.chorke.org-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    SSLProxyEngine On
    ProxyRequests Off
    ProxyPreserveHost On
    AllowEncodedSlashes Off

    ServerAlias reg.chorke.org
    ServerAdmin [email protected]
    ServerName www.reg.chorke.org
    DocumentRoot /var/chorke/www/reg.chorke.org/html
    ErrorLog /var/chorke/www/reg.chorke.org/error.log
    CustomLog /var/chorke/www/reg.chorke.org/requests.log combined

    <Directory "/var/chorke/www/reg.chorke.org/">
        AllowOverride None
        Require all granted
    </Directory>

    <Directory "/var/chorke/www/reg.chorke.org/html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>

    <Location />
        Order Allow,Deny
        Allow from all
        ProxyPass http://localhost:8083/ nocanon
        ProxyPassReverse http://localhost:8083/
        RequestHeader set X-Forwarded-Proto "https"
    </Location>

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/reg.chorke.org/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/reg.chorke.org/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/reg.chorke.org/chain.pem
</VirtualHost>
</IfModule>
EOF

Distribution

<settings>
    [...]
    <profiles>
        <profile>
        <id>nex</id>
        <properties>
            <altSnapshotDeploymentRepository>snapshots::default::https://nex.chorke.org/repository/maven/snapshots</altSnapshotDeploymentRepository>
            <altReleaseDeploymentRepository>releases::default::https://nex.chorke.org/repository/maven/releases</altReleaseDeploymentRepository>
        </properties>
        </profile>
    </profiles>
</settings>

References

  1. RubyGems
  2. Composer
  3. Conan
  4. Docker
  5. Maven
  6. NuGet
  7. PyPI
  8. apt
  9. npm
  10. yum