about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/nosql/neo4j/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/nosql/neo4j/default.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
new file mode 100644
index 000000000000..a3a8b49242cf
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, lib, fetchurl, nixosTests, makeWrapper, openjdk17, which, gawk }:
+
+stdenv.mkDerivation rec {
+  pname = "neo4j";
+  version = "5.18.0";
+
+  src = fetchurl {
+    url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
+    hash = "sha256-XPpX6alLb81o5IBX16eHHkJMi8V/R/2YXWOCxEHKdU0=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p "$out/share/neo4j"
+    cp -R * "$out/share/neo4j"
+
+    mkdir -p "$out/bin"
+    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 [ openjdk17 which gawk ]}" \
+            --set JAVA_HOME "${openjdk17}"
+    done
+
+    patchShebangs $out/share/neo4j/bin/neo4j-admin
+
+    # user will be asked to change password on first login
+    # password must be at least 8 characters long
+    $out/bin/neo4j-admin dbms set-initial-password neo4jadmin
+  '';
+
+  passthru.tests.nixos = nixosTests.neo4j;
+
+  meta = with lib; {
+    description = "A highly scalable, robust (fully ACID) native graph database";
+    homepage = "https://neo4j.com/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jonringer offline ];
+    platforms = platforms.unix;
+  };
+}