Files
stubbfelnix/services/nexus.nix
2025-06-09 15:43:27 +02:00

98 lines
2.7 KiB
Nix

{ config, pkgs, lib, ...}:
let
lAddress = "127.0.0.1";
lPort = 9081;
nexusPkgs = pkgs.nexus.overrideAttrs (oldAttrs: rec {
pname = "nexus";
version = "3.80.0-06";
sourceRoot = "${pname}-${version}";
src = pkgs.fetchurl {
url = "https://download.sonatype.com/nexus/3/nexus-${version}-linux-x86_64.tar.gz";
sha256 = "sha256-+Xr6qmmG1tH2wWv+jyZzkZJMB1hngO51IXLyfwKUfS0=";
};
patches = [
# ./nexus-bin.patch
./nexus-vm-opts.patch
];
postPatch = ''
substituteInPlace bin/nexus.vmoptions \
--replace-fail ../sonatype-work /var/lib/sonatype-work \
--replace-fail =. =$out
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -rfv * $out
rm -fv $out/bin/nexus.bat
wrapProgram $out/bin/nexus \
--set JAVA_HOME ${pkgs.jdk17_headless} \
--set ALTERNATIVE_NAME "nexus" \
--prefix PATH "${lib.makeBinPath [ pkgs.gawk ]}"
runHook postInstall
'';
});
home ="/var/lib/sonatype-work";
package = nexusPkgs;
in
{
services.nginx.virtualHosts."nexus.stubbe.rocks" = {
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://${lAddress}:${toString lPort}";
};
services.nexus= {
enable = true;
listenAddress = lAddress;
listenPort = lPort;
package = nexusPkgs;
jvmOpts = ''
-Xms2703m
-Xmx2703m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=${home}/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=${package}
-Dkaraf.base=${package}
-Dkaraf.etc=${package}/etc/karaf
-Djava.util.logging.config.file=${package}/etc/karaf/java.util.logging.properties
-Dkaraf.data=${home}/nexus3
-Djava.io.tmpdir=${home}/nexus3/tmp
-Djdk.tls.ephemeralDHKeySize=2048
--add-reads=java.xml=java.logging
--add-opens
java.base/java.security=ALL-UNNAMED
--add-opens
java.base/java.net=ALL-UNNAMED
--add-opens
java.base/java.lang=ALL-UNNAMED
--add-opens
java.base/java.util=ALL-UNNAMED
--add-opens
java.naming/javax.naming.spi=ALL-UNNAMED
--add-opens
java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
--add-exports=java.security.sasl/com.sun.security.sasl=ALL-UNNAMED
--add-exports=java.base/sun.security.x509=ALL-UNNAMED
--add-exports=java.base/sun.security.rsa=ALL-UNNAMED
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED
'';
};
programs.nix-ld.enable = true;
}