about summary refs log tree commit diff
path: root/pkgs/tools/security/vaultwarden
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2021-07-01 12:14:51 +0300
committerK900 <me@0upti.me>2021-07-01 12:31:20 +0300
commitdc1b56c714095d787f52c45c83723944dfeef779 (patch)
tree7c065a0e7f7fc17472c3eed82070808316d3b653 /pkgs/tools/security/vaultwarden
parentf83eb93af7fee27f6155d4b83fa00fa881c56293 (diff)
vaultwarden: update to 1.22.1, rename from bitwarden_rs
I tried to make this as non-breaking as possible, but it will still
break things slightly for people expecting certain file names in the
packages themselves.
Diffstat (limited to 'pkgs/tools/security/vaultwarden')
-rw-r--r--pkgs/tools/security/vaultwarden/default.nix47
-rw-r--r--pkgs/tools/security/vaultwarden/vault.nix28
2 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/tools/security/vaultwarden/default.nix b/pkgs/tools/security/vaultwarden/default.nix
new file mode 100644
index 0000000000000..4342c8f3ac955
--- /dev/null
+++ b/pkgs/tools/security/vaultwarden/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, fetchurl, nixosTests
+, pkg-config, openssl
+, libiconv, Security, CoreServices
+, dbBackend ? "sqlite", libmysqlclient, postgresql }:
+
+let
+  featuresFlag = "--features ${dbBackend}";
+
+in rustPlatform.buildRustPackage rec {
+  pname = "vaultwarden";
+  version = "1.22.1";
+
+  src = fetchFromGitHub {
+    owner = "dani-garcia";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-aXbnNO3mTAgE1yNx7YVDo1vPpO8ACZpBGHQ633fNZ3k=";
+  };
+
+  cargoSha256 = "sha256-SFzq3OU0a0s3zlEzUkqGdZb/knYafqDamLy4ghH4i8I=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = with lib; [ openssl ]
+    ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ]
+    ++ optional (dbBackend == "mysql") libmysqlclient
+    ++ optional (dbBackend == "postgresql") postgresql;
+
+  RUSTC_BOOTSTRAP = 1;
+
+  cargoBuildFlags = [ featuresFlag ];
+
+  checkPhase = ''
+    runHook preCheck
+    echo "Running cargo cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
+    cargo test ${featuresFlag} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    runHook postCheck
+  '';
+
+  passthru.tests = nixosTests.vaultwarden;
+
+  meta = with lib; {
+    description = "Unofficial Bitwarden compatible server written in Rust";
+    homepage = "https://github.com/dani-garcia/vaultwarden";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ msteen ];
+  };
+}
diff --git a/pkgs/tools/security/vaultwarden/vault.nix b/pkgs/tools/security/vaultwarden/vault.nix
new file mode 100644
index 0000000000000..49e7cc4f3ba13
--- /dev/null
+++ b/pkgs/tools/security/vaultwarden/vault.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "vaultwarden-vault";
+  version = "2.19.0";
+
+  src = fetchurl {
+    url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
+    sha256 = "sha256:0yrk2b2d5sld4z60siacafdz95gqikcv4snzd6hwhq1l6kz151az";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/share/vaultwarden/
+    cd $out/share/vaultwarden/
+    tar xf $src
+    mv web-vault vault
+  '';
+
+  passthru.tests = nixosTests.vaultwarden;
+
+  meta = with lib; {
+    description = "Integrates the web vault into vaultwarden";
+    homepage = "https://github.com/dani-garcia/bw_web_builds";
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ msteen mic92 ];
+  };
+}