diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix index d1be4034ddac..61f7cf6cc253 100644 --- a/nixos/modules/services/databases/neo4j.nix +++ b/nixos/modules/services/databases/neo4j.nix @@ -36,24 +36,29 @@ let serverConfig = pkgs.writeText "neo4j.conf" '' # General dbms.allow_upgrade=${boolToString cfg.allowUpgrade} - dbms.connectors.default_listen_address=${cfg.defaultListenAddress} + dbms.default_listen_address=${cfg.defaultListenAddress} dbms.read_only=${boolToString cfg.readOnly} ${optionalString (cfg.workerCount > 0) '' dbms.threads.worker_count=${toString cfg.workerCount} ''} - # Directories + # Directories (readonly) dbms.directories.certificates=${cfg.directories.certificates} - dbms.directories.data=${cfg.directories.data} - dbms.directories.logs=${cfg.directories.home}/logs dbms.directories.plugins=${cfg.directories.plugins} + dbms.directories.lib=${cfg.package}/share/neo4j/lib ${optionalString (cfg.constrainLoadCsv) '' dbms.directories.import=${cfg.directories.imports} - ''} + ''} + + # Directories (read and write) + dbms.directories.home=${cfg.directories.home} + dbms.directories.data=${cfg.directories.data} + dbms.directories.logs=${cfg.directories.home}/logs + dbms.directories.run=${cfg.directories.home}/run # HTTP Connector ${optionalString (cfg.http.enable) '' - dbms.connector.http.enabled=${boolToString cfg.http.enable} + dbms.connector.http.enabled=${boolToString cfg.https.enable} dbms.connector.http.listen_address=${cfg.http.listenAddress} ''} ${optionalString (!cfg.http.enable) '' @@ -67,17 +72,12 @@ let # HTTPS Connector dbms.connector.https.enabled=${boolToString cfg.https.enable} dbms.connector.https.listen_address=${cfg.https.listenAddress} - https.ssl_policy=${cfg.https.sslPolicy} # BOLT Connector dbms.connector.bolt.enabled=${boolToString cfg.bolt.enable} dbms.connector.bolt.listen_address=${cfg.bolt.listenAddress} - bolt.ssl_policy=${cfg.bolt.sslPolicy} dbms.connector.bolt.tls_level=${cfg.bolt.tlsLevel} - # neo4j-shell - dbms.shell.enabled=${boolToString cfg.shell.enable} - # SSL Policies ${concatStringsSep "\n" sslPolicies} @@ -95,8 +95,10 @@ let dbms.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true dbms.jvm.additional=-Dunsupported.dbms.udc.source=tarball - # Usage Data Collector - dbms.udc.enabled=${boolToString cfg.udc.enable} + #dbms.memory.heap.initial_size=12000m + #dbms.memory.heap.max_size=12000m + #dbms.memory.pagecache.size=4g + #dbms.tx_state.max_off_heap_memory=8000m # Extra Configuration ${cfg.extraServerConfig} @@ -114,6 +116,8 @@ in { (mkRemovedOptionModule [ "services" "neo4j" "port" ] "Use services.neo4j.http.listenAddress instead.") (mkRemovedOptionModule [ "services" "neo4j" "boltPort" ] "Use services.neo4j.bolt.listenAddress instead.") (mkRemovedOptionModule [ "services" "neo4j" "httpsPort" ] "Use services.neo4j.https.listenAddress instead.") + (mkRemovedOptionModule [ "services" "neo4j" "shell" "enabled" ] "shell.enabled was removed upstream") + (mkRemovedOptionModule [ "services" "neo4j" "udc" "enabled" ] "udc.enabled was removed upstream") ]; ###### interface @@ -568,19 +572,6 @@ in { ''; }; - udc = { - enable = mkOption { - type = types.bool; - default = false; - description = lib.mdDoc '' - Enable the Usage Data Collector which Neo4j uses to collect usage - data. Refer to the operations manual section on the - [Usage Data Collector](https://neo4j.com/docs/operations-manual/current/configuration/usage-data-collector/) - for more information. - ''; - }; - }; - }; ###### implementation @@ -612,7 +603,7 @@ in { wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; environment = { - NEO4J_HOME = "${cfg.package}/share/neo4j"; + NEO4J_HOME = "${cfg.directories.home}"; NEO4J_CONF = "${cfg.directories.home}/conf"; }; serviceConfig = { @@ -653,6 +644,6 @@ in { }; meta = { - maintainers = with lib.maintainers; [ patternspandemic ]; + maintainers = with lib.maintainers; [ patternspandemic jonringer ]; }; } diff --git a/nixos/tests/neo4j.nix b/nixos/tests/neo4j.nix index 8329e5630d7a..936d23ee1b70 100644 --- a/nixos/tests/neo4j.nix +++ b/nixos/tests/neo4j.nix @@ -7,6 +7,9 @@ import ./make-test-python.nix { { services.neo4j.enable = true; + # require tls certs to be available + services.neo4j.https.enable = false; + services.neo4j.bolt.enable = false; }; }; diff --git a/pkgs/servers/nosql/neo4j/default.nix b/pkgs/servers/nosql/neo4j/default.nix index 9147de6d4a1e..f6ffb74a12db 100644 --- a/pkgs/servers/nosql/neo4j/default.nix +++ b/pkgs/servers/nosql/neo4j/default.nix @@ -1,14 +1,12 @@ -{ lib, stdenv, fetchurl, makeWrapper, jre, which, gawk }: - -with lib; +{ stdenv, lib, fetchurl, makeWrapper, openjdk11, which, gawk }: stdenv.mkDerivation rec { pname = "neo4j"; - version = "3.5.14"; + version = "4.1.1"; src = fetchurl { url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz"; - sha256 = "1zjb6cgk2lpzx6pq1cs5fh65in6b5ccpl1cgfiglgpjc948mnhzv"; + sha256 = "0w8jgbk1fxwivjvasj5l63123wrsz4yfnbwpn78dyh7c1d93lrjg"; }; nativeBuildInputs = [ makeWrapper ]; @@ -18,21 +16,25 @@ stdenv.mkDerivation rec { cp -R * "$out/share/neo4j" mkdir -p "$out/bin" - for NEO4J_SCRIPT in neo4j neo4j-admin neo4j-import cypher-shell + for NEO4J_SCRIPT in neo4j neo4j-admin cypher-shell do + chmod +x "$out/share/neo4j/bin/$NEO4J_SCRIPT" makeWrapper "$out/share/neo4j/bin/$NEO4J_SCRIPT" \ "$out/bin/$NEO4J_SCRIPT" \ - --prefix PATH : "${lib.makeBinPath [ jre which gawk ]}" \ - --set JAVA_HOME "${jre}" + --prefix PATH : "${lib.makeBinPath [ openjdk11 which gawk ]}" \ + --set JAVA_HOME "${openjdk11}" done + + patchShebangs $out/share/neo4j/bin/neo4j-admin + # user will be asked to change password on first login + $out/bin/neo4j-admin set-initial-password neo4j ''; meta = with lib; { description = "A highly scalable, robust (fully ACID) native graph database"; homepage = "http://www.neo4j.org/"; license = licenses.gpl3; - - maintainers = [ maintainers.offline ]; - platforms = lib.platforms.unix; + maintainers = with maintainers; [ jonringer offline ]; + platforms = platforms.unix; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0ef5f9654bdb..d3c097f739ca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23000,9 +23000,7 @@ with pkgs; check_zfs = callPackage ../servers/monitoring/nagios/plugins/zfs.nix { }; - neo4j = callPackage ../servers/nosql/neo4j { - jre = jre8_headless; - }; + neo4j = callPackage ../servers/nosql/neo4j { }; neo4j-desktop = callPackage ../applications/misc/neo4j-desktop { };